Saya ingin memilih sistem kontrol versi untuk perusahaan saya. Sejauh ini saya tahu saya memiliki Git, Subversi dan Mercurial.
Hari ini saya melihat bahwa Git adalah yang paling banyak digunakan, jadi saya bertanya-tanya: apakah akan ada alasan khusus untuk tetap menggunakan Subversion, atau haruskah saya langsung pergi ke Git?
version-control
git
svn
pengguna1179459
sumber
sumber
Jawaban:
SVN tidak mati sama sekali. Ini masih digunakan sangat luas, dan itu tidak akan terjadi dalam waktu dekat. SVN jauh lebih mudah digunakan daripada kontrol versi terdistribusi, terutama jika Anda tidak benar-benar menjalankan proyek terdistribusi yang membutuhkan kontrol versi terdistribusi.
Jika Anda hanya memiliki satu repositori pusat (yang hanya dibutuhkan oleh perusahaan Anda jika masih cukup kecil untuk bertahan tanpa kendali sumber), jauh lebih mudah untuk menggunakan SVN untuk berinteraksi dengannya. Misalnya, dengan SVN Anda dapat menarik perubahan dari repositori, atau melakukan perubahan lokal Anda ke sana, dengan operasi tunggal, sedangkan HG dan Git memerlukan dua atau tiga langkah untuk melakukan pekerjaan yang setara.
Dan dengan revisi baru-baru ini, SVN telah memperbaiki banyak masalah kinerja yang membuat orang lebih suka HG dan Git. Ini secara signifikan lebih cepat sekarang daripada beberapa tahun yang lalu, dan pada titik ini, benar-benar tidak ada alasan untuk melihat HG atau Git untuk proyek Anda kecuali Anda benar-benar membutuhkan fitur-fitur canggih dari kontrol versi terdistribusi.
sumber
Perkakas klien belum disebutkan. Anda tentu dapat melakukan semuanya dengan skrip baris perintah tetapi memiliki integrasi GUI dapat menjadi dorongan produktivitas nyata.
Kami kebanyakan bekerja dengan Visual Studio; integrasi ke dalam IDE jelas lebih baik dengan SVN daripada dengan Git sekarang. Ini mungkin berubah di masa depan, tapi saya pasti akan mempertimbangkan ini menjadi keputusan Anda seperti halnya fungsi kontrol versi.
Sama seperti yang lainnya, sistem kontrol versi bukanlah tujuan itu sendiri, hanya alat untuk membawa Anda ke tempat yang Anda tuju. Pilih satu yang akan membawa Anda ke sana tercepat berdasarkan situasi Anda.
sumber
Saya seorang penggemar Git. Baru-baru ini saya harus mengakui bahwa salah satu kelemahan Git adalah bahwa ia mengidentifikasi versi dengan hash yang berlawanan dengan nomor rilis svn. Nomor rilis dapat lebih mudah diteruskan melalui telepon atau semacamnya.
Dan itulah satu-satunya pro yang bisa saya bayangkan. Jika Anda benar-benar ingin bergantung pada fitur itu, Anda dapat memilikinya di Bazaar VCS yang didistribusikan dan / atau terpusat . Di Git ada tag yang dapat melayani tujuan.
Lagi pula saya tidak bisa membayangkan berkembang tanpa beralih cabang cepat, dan menyimpan. Kedua fitur ini sendiri mengalahkan SVN, di mana sejauh yang saya ingat tugas yang sama diperlukan membuat dan memeriksa seluruh pohon ke dalam direktori yang terpisah untuk mencapai tujuan yang sama.
Yang disebut "fitur-fitur canggih dari kontrol versi terdistribusi" datang seiring waktu, dan Anda tidak harus mempelajarinya sejak awal. Jangan takut pada mereka. Mereka ada di sini untuk membantu Anda, bukan untuk menghalangi. Dan tidak ada masalah untuk mengatur repositori pusat untuk DVCS.
sumber
Dengan SVN Anda dapat dengan mudah checkout bagian dari repositori ke tingkat folder, sedangkan dengan git, Anda mendapatkan seluruh repositori, termasuk semua riwayat.
Tergantung pada situasinya, ini mungkin memiliki beberapa keuntungan bagi SVN
(ini juga memiliki beberapa kelemahan besar seperti sampah ".svn" yang tersembunyi sampai ke pohon folder Anda).
sumber
"Jika Anda memiliki tugas yang dapat dilakukan dalam enam jam, lebih baik menulis alat yang melakukannya dalam 20 menit, bahkan ketika membuat alat itu membutuhkan waktu enam jam?"
Kontrol Versi Terdistribusi adalah binatang yang berbeda untuk diatasi. Ini membutuhkan pembelajaran besar untuk setiap pengembang. Jika Anda memiliki buffer untuk mengakomodasi proses pembelajaran untuk setiap pengembang, Anda harus pindah ke sistem kontrol versi terdistribusi yang baik. Setelah fase pembelajaran selesai Kontrol Versi Terdistribusi jauh lebih baik daripada Kontrol Versi Terpusat.
Kontrol Versi Terdistribusi tampaknya menjadi kemungkinan. Itu di sini untuk tinggal untuk waktu yang sangat lama, lebih baik kita beradaptasi lebih cepat daripada nanti. Saya ingat diskusi yang sama ketika SVN masih baru dan orang-orang terbiasa dengan CVS, banyak argumen diberikan untuk tidak menggunakan SVN, tetapi akhirnya SVN menjadi sistem kontrol versi yang paling populer.
Jika perusahaan mapan dengan banyak kode sumber dalam sistem kontrol versi yang ada, pindah ke sistem baru adalah tugas besar, tetapi jika perusahaan kecil atau memulai, pindah ke kontrol versi baru sangat mudah. Tetapi jika Anda tetap menggunakan kontrol versi yang lebih lama (dalam pengaturan baru), Anda akan menemui hambatan di masa depan di mana Anda akhirnya harus merencanakan migrasi kontrol versi.
Saya telah melihat banyak komentar pro SVN, tetapi semuanya cenderung bersifat "SVN tidak buruk" daripada "SVN lebih baik". Jadi saya akan sangat menyarankan Anda memilih Kontrol Versi Terdistribusi (seperti Git) untuk proyek Anda.
EDIT Keuntungan dari GIT dibandingkan SVN
Tidak diperlukan dedicated serverSebenarnya, keduanya dapat digunakan tanpa server.Seseorang menyebut perkakas (untuk studio visual) sebagai alasan untuk tetap menggunakan SVN. http://gitscc.codeplex.com/ menyediakan dukungan GIT untuk Visual Studio.
sumber
Once the learning phase is over Distributed Version Control is much better than Centralized Version Control.
Saya sepenuhnya tidak setuju dengan ini. Ini mungkin memiliki beberapa manfaat yang dirasakan dalam beberapa keadaan, tetapi sesuatu yang sederhana seperti nomor versi yang dapat dibaca manusia adalah manfaat besar di banyak organisasi.Terlepas dari dukungan tooling dalam IDE (yang tidak saya gunakan) - tidak juga, tidak. Tentu saja SVN mungkin lebih akrab tetapi itu satu-satunya alasan, dan saya menemukan Hg dan Git sangat mudah (dan sangat cepat) untuk dipelajari.
Ya, ada semua panduan rumit di luar sana yang menggambarkan bagaimana Git sepele setelah Anda memahami bahwa cabang hanyalah endofunctors homeomorfik yang memetakan sub-manifold dari ruang Hilbert. 1
Saya tidak mengerti itu. Tapi tahukah Anda? Itu tidak masalah. Anda tidak perlu tahu hal-hal itu untuk menggunakan Git.
Untuk sebagian besar, Git dan Hg mudah digunakan dan mereka memiliki keunggulan pasti dibandingkan SVN. Gajah di dalam ruangan tentu saja bercabang: cabang hanya bekerja di Git dan Hg. Sebaliknya, pada SVN mereka paling menyakitkan dan paling buruk (menggabungkan banyak kepala).
Tentu saja Anda masih bisa menggunakan SVN. Anda juga masih dapat menggunakan Windows XP. Namun, sebagian besar pengguna yang telah mencoba keduanya setuju bahwa salah satu alternatif jauh lebih unggul.
1 Ya saya mengerti bahwa ini adalah lelucon. Kupikir.
sumber