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.