Walaupun saya menggunakan dan menyukai DVCS untuk proyek pribadi saya, dan dapat benar-benar melihat bagaimana hal itu membuat mengelola kontribusi untuk proyek Anda dari orang lain lebih mudah (misalnya skenario Github khas Anda), sepertinya untuk tim "tradisional" mungkin ada beberapa masalah selama pendekatan terpusat yang digunakan oleh solusi seperti TFS, Perforce, dll. (Dengan "tradisional", saya maksudkan tim pengembang di kantor yang mengerjakan satu proyek yang tidak dimiliki oleh satu orang, dengan orang yang berpotensi menyentuh kode yang sama.)
Beberapa masalah ini sudah saya perkirakan sendiri, tapi tolong bimbang dengan pertimbangan lain.
Dalam sistem tradisional, ketika Anda mencoba memeriksa perubahan Anda di server, jika orang lain sebelumnya telah memeriksa perubahan yang bertentangan maka Anda dipaksa untuk menggabungkan sebelum Anda dapat memeriksa Anda masuk. Dalam model DVCS, setiap pengembang memeriksa di mereka perubahan secara lokal dan pada titik tertentu mendorong ke beberapa repo lainnya. Repo itu kemudian memiliki cabang file yang diubah 2 orang. Tampaknya sekarang seseorang harus ditugaskan menangani situasi itu. Orang yang ditunjuk dalam tim mungkin tidak memiliki pengetahuan yang cukup tentang seluruh basis kode untuk dapat menangani penggabungan semua konflik. Jadi sekarang langkah tambahan telah ditambahkan di mana seseorang harus mendekati salah satu pengembang itu, katakan padanya untuk menarik dan melakukan penggabungan lalu mendorong lagi (atau Anda harus membangun infrastruktur yang mengotomatiskan tugas itu).
Lebih jauh lagi, karena DVCS cenderung membuat bekerja secara lokal begitu mudah, ada kemungkinan bahwa pengembang dapat mengakumulasikan beberapa perubahan dalam repo lokal mereka sebelum mendorong, membuat konflik seperti itu lebih umum dan lebih rumit.
Jelas jika semua orang di tim hanya bekerja pada area kode yang berbeda, ini bukan masalah. Tapi saya ingin tahu tentang kasus di mana semua orang bekerja pada kode yang sama. Sepertinya model terpusat memaksa konflik untuk ditangani dengan cepat dan sering, meminimalkan kebutuhan untuk melakukan penggabungan yang besar dan menyakitkan atau meminta siapa pun "menjadi polisi" sebagai repo utama.
Jadi bagi Anda yang menggunakan DVCS dengan tim Anda di kantor Anda, bagaimana Anda menangani kasus-kasus seperti itu? Apakah Anda menemukan alur kerja harian Anda (atau lebih mungkin, mingguan) terpengaruh secara negatif? Apakah ada pertimbangan lain yang harus saya ketahui sebelum merekomendasikan DVCS di tempat kerja saya?