Kami adalah konsultan perangkat lunak dengan banyak proyek untuk pelanggan yang berbeda. Kami biasanya menggunakan Subversion, tetapi saat ini sedang mempertimbangkan untuk pindah ke Git.
Sebagian besar dari dokumen yang kami hasilkan dibagikan kepada pelanggan kami (persyaratan, desain global, spesifikasi pengujian, dll), dan kami menggunakan MS Office untuk menghasilkan ini. Di Subversion, kita dapat menggunakan fitur "Kunci" untuk memastikan bahwa tidak ada yang mengedit dokumen yang sama secara bersamaan. Di Git, Anda tidak dapat melakukan itu karena sifatnya yang terdistribusi, git tidak memiliki kunci.
Kunci benar-benar sedikit lebih dari mekanisme komunikasi, tetapi mereka sangat efektif.
Saat ini, kode kami dan dokumen yang dihadapi pelanggan biasanya dalam berbagai subfolder dari repositori svn yang berbeda. Saat pindah ke git, apa yang akan Anda rekomendasikan agar kami lakukan? Saya melihat serangkaian opsi:
Kami memindahkan repositori svn ke git 1-on-1. Alih-alih menggunakan kunci pada file Office, kami melakukan apa yang disarankan orang git dan entah bagaimana mencoba mengubah alur kerja kami untuk memperbaikinya. Ini bisa berfungsi di cabang pada edit dokumen apa pun, dan menggabungkannya dengan ulasan. Pendekatan ini memecah misalnya lembar Excel yang berisi informasi manajemen proyek; mereka mudah diedit oleh anggota tim (dan kami menganjurkan hal ini dilakukan), tetapi tidak tunduk pada proses peninjauan formal
Kami menggunakan git untuk kode dan svn untuk dokumen dan manajemen proyek. Ini memiliki kelemahan bahwa beberapa dokumen desain-ish tertentu tidak akan "dekat" dengan kode yang ditentukannya, meningkatkan kemungkinan orang lupa untuk memperbaruinya. Selain itu, setiap orang harus menggunakan dan memahami dua set alat. Yang mengatakan, mungkin ini adalah kesempatan besar untuk pindah ke alat dokumen berbasis teks (lateks, penurunan harga, HTML, apa pun) untuk dokumen desain yang tidak menghadap pelanggan.
Seperti 1, tetapi kita meretas
git lock
perintah yang melakukan apa yang dilakukan kunci svn untuk kita (mengganti tanda baca-saja dengan tepat dan menyinkronkan dengan server melalui beberapa cara).
Saya tidak membeli argumen bahwa kunci tidak berfungsi dalam DVCS karena sistem seharusnya bekerja ketika Anda sepenuhnya offline. Kunci Svn dapat diganti juga; mereka adalah mekanisme komunikasi . Tanpa semacam koneksi jaringan, komputer Anda tidak akan banyak berkomunikasi.
Kita tidak bisa menjadi satu-satunya toko yang sangat senang dengan svn lock
kesesuaian alur kerja kita, bukan?
Ada ide atau tips?
Saya menemukan /programming/119444/locking-binary-files-using-git-version-control-system tetapi pembahasannya agak teknis; Saya sedang mencari cara untuk memecahkan atau menghindari masalah praktis dari dua anggota tim yang mengedit file biner yang sama secara bersamaan.
Jawaban:
Saya akan menyarankan Anda untuk tetap dengan SVN untuk dokumen MS Office karena dua alasan:
Ada pepatah yang saya suka mengatakan sesuatu seperti ini: "Ketika Anda Memegang Palu, Segalanya Tampak Seperti Kuku". Hanya karena Anda pindah ke Git untuk menyimpan kode Anda, itu tidak berarti Anda harus menggunakannya untuk menyimpan dokumen Anda.
sumber
Kontrol versi kode bukan alat terbaik untuk bekerja pada file Office, karena mereka biner dan alat ini berfungsi pada modifikasi tingkat file.
Gunakan alat kolaborasi, seperti MediaWiki (gratis) atau Atlassian Confluence (berbayar), dari mana Anda dapat dengan mudah mengekstrak dokumen Word. Atau gunakan LaTex untuk menghasilkan file Office.
Biarkan saya memperluas ...
Jika Anda perlu berkolaborasi, Anda harus mengadopsi model yang menyoroti modifikasi (misalnya mengubah kata, diulang, atau hanya mengubah font) ke unit, misalnya file.
SVN dan Git, meskipun dipikirkan kode, adalah alat tingkat rendah yang membandingkan file mereka dengan konten tekstual. Tetapi masalahnya adalah mereka hanya dapat bekerja pada file teks, karena mereka tidak peduli tentang sifat / isi file untuk mengekstraksi model modifikasi tingkat tinggi.
Contoh yang jelas adalah file gambar . Meskipun TortoiseMerge adalah alat yang membantu pengguna SVN dengan membandingkan gambar untuk modifikasi mereka yang sebenarnya, biasanya
VCS
dijalankan oleh tambalan konten di atas file. Biarkan saya jelaskan. Alat seperti TortoiseMerge dapat memberi tahu Anda bahwa versi baru file gambar diubah hanya dengan beberapa piksel, atau pencahayaan jika menerapkan analisis HSV yang lebih kompleks dari kedua file tersebut. Anda dapat menambahkan tanda air atau mengubah level warna, alat yang membandingkan file gambar akan menyoroti perbedaan Anda jika menerapkan algoritma perbandingan yang baik. Tetapi untuk memeriksa file baru di klien Anda harusmenghasilkan delta. Delta adalah serangkaian garis yang dihapus dan garis yang ditambahkan ke file. File biner tidak memiliki line break jika mereka tidak terjadi untuk memiliki\r\n
, atau serupa, dalam payload mereka, dan dalam delta jika Anda mengubah satu karakter Anda mengganti seluruh baris.Jadi inilah masalahnya. File biner tidak baik untuk kontrol versi karena Anda bisa hampir mengganti seluruh file untuk setiap revisi. Pertimbangkan ketika Anda menulis file Office menggunakan MS Office dan suntingan kolaborator Anda dengan OpenOffice. Jika mereka menerapkan bahkan versi yang sedikit berbeda dari algoritma kompresi file OpenXML, Anda akan berakhir di file yang sama sekali berbeda bahkan jika Anda mengubah satu koma dalam dokumen.
Perangkat lunak kolaborasi membuat dokumen secara internal dalam format berbasis teks, karena teks adalah apa yang benar-benar bermakna bagi perusahaan Anda, dan dapat menghitung perbedaan atau menangani konflik. LaTex, atau penurunan harga jika Anda suka, adalah cara untuk menyimpan dokumen sebagai file teks dengan markup lanjutan, jadi tidak seperti file TXT klasik yang tidak memiliki kontrol font / format.
Tapi jelas pelanggan Anda tidak akan suka membuka file penurunan harga, bukan? Ok, Anda bisa saja, dan maksud saya sederhana saja, gunakan perangkat lunak apa pun yang saat ini terlalu malas bagi Google untuk mengonversi dokumen sumber ke PDF, Word atau apa pun.
Meringkas
Jika Anda mulai memeriksa file teks ke kontrol sumber Anda, Anda memiliki kontrol lebih besar atas riwayat file dan dapat dengan mudah mengelola konflik, terutama tanpa menggunakan kunci VCS.
Sebelum membagikan dokumen secara resmi, Anda memerlukan rutin untuk mengekspor dokumen teks sumber ke file Office
Memisahkan dua langkah membuat orang senang dengan biaya kurva belajar.
sumber
Anda dapat menggunakan git untuk dokumen-dokumen itu tanpa menambahkan kunci. Pilih alur kerja git yang memblokir push ke cabang master jika tidak di master. (Ada beberapa alur kerja untuk dipilih.) Ini akan mencegah orang saling menimpa modifikasi masing-masing ke file dokumen biner. Asumsikan dua orang memodifikasi dokumen biner yang sama. Yang pertama yang mendorongnya untuk menguasai mendapat perubahan. Yang kedua akan diblokir karena salinan mereka ada di belakang cabang master. Mereka harus melakukan sinkronisasi terlebih dahulu. Jadi orang kedua melakukan sinkronisasi. Ini akan menampilkan konflik gabungan untuk dokumen biner. Orang itu menyimpan versi mereka di suatu tempat dan menyelesaikan konflik dengan mengambil versi dari master (yang didorong oleh orang pertama). Pada titik ini file orang kedua diperbarui dengan cabang master. Mereka menggabungkan perubahan mereka ke dokumen biner terbaru (dengan tangan), yang kemudian akan berisi perubahan orang pertama dan orang kedua. Kemudian versi baru didorong ke master dan menjadi cabang master baru. Penggabungan itu menyebalkan, tapi itu hanya terjadi ketika ada konflik. Juga, perubahan tidak hilang atau ditimpa. Konflik terdeteksi dan pengguna dapat menyelesaikannya dengan bersih.
sumber
Satukan 2 solusi pertama Anda bersama dan Anda tidak perlu yang ketiga.
Jika Anda menyimpan spreadsheet pada disk sebagai CSV, Excel akan tetap mengeditnya dan kemudian git akan dengan senang hati menggabungkannya untuk Anda.
Demikian pula, Anda dapat membuka, mengedit, dan menyimpan file Anda di Word jika itu HTML atau (tolonglah kami) RTF. Word tentu saja akan menambahkan lebih banyak mengasapi daripada teks yang berguna, tetapi itu hanya teks yang git senang untuk bergabung untuk Anda.
Memang, solusi ini mengasumsikan bahwa Anda tidak menggunakan atau bisa menjauh dari fitur MS-spesifik yang benar-benar hanya mungkin masalah di sisi Excel.
Kecuali tentu saja Anda juga memerlukan Word untuk diinstal pada sistem agar dapat membaca dokumentasi Anda, yang dengan sendirinya merupakan prospek yang menakutkan bagi saya ...
sumber