git vs Subversion - pro dan kontra [ditutup]

11

Saya telah menjadi pengguna SVN selama bertahun-tahun sekarang dan saya tidak bisa mengatakan saya sangat senang tentang hal itu. Beberapa hari yang lalu pasangan saya meminta saya untuk melihat git yang mengatakan bahwa "ia memiliki kinerja yang lebih baik, lebih mudah bergabung dan bercabang."

Saya telah membaca beberapa artikel perbandingan git vs SVN dan saya akan senang jika orang dapat meringkas pro dan kontra menggunakan kedua sistem kontrol versi.

Sekarang saya melihat orang-orang yang telah beralih dari satu sistem ke sistem lainnya dan mendengar pendapat subjektif.

Saya tahu sendiri bahwa saya benar-benar menyukai cara kerja SVN, memiliki satu repositori sentral tempat orang dapat melakukan checkout, mengetahui bahwa saya dapat menggunakan salinan pengembangan langsung dan salinan produksi langsung dari sana, tetapi kadang-kadang kita mengalami sakit kepala yang menyortir konflik atau kesalahan lainnya dan setiap kali kita perlu melakukan diff atau melihat sejarah suatu file, kita memiliki latensi jaringan untuk dihadapi.

Di sisi lain, memiliki platform terdistribusi juga terdengar seperti sakit kepala, bagaimana Anda bisa mengontrol akses? apakah Anda memiliki satu repositori pusat tempat Anda mendorong dan memperbarui?

Terima kasih telah menjelaskan lebih banyak tentang masalah ini.

Adam Benayoun
sumber

Jawaban:

15

Apakah Anda mencoba membandingkan dua alat dari persepsi admin sistem atau sebagai programmer? Jika Anda melihat ini dari perspektif programmer mungkin Anda harus menanyakan ini pada stackoverflow. Atau bahkan lebih baik, mungkin Anda harus melihat apa yang sudah ditanyakan tentang " git svn ".

Hal tentang git dan svn, adalah bahwa itu bukan / atau proposisi. Anda dapat menjalankan repositori SVN, dan pengembang Anda dapat menggunakan git-svn untuk berinteraksi dengannya jika mereka berpikir git adalah alat yang lebih baik dalam kasus tertentu.

Sakit kepala
sumber
2

Sebenarnya tidak ada pro ke subversi dari git, sungguh. Ketika git didistribusikan, semua orang dapat bekerja di repositori pusat menggunakan cabang pelacakan jarak jauh. git lebih cepat, lebih fleksibel, dan penggabungan benar-benar berfungsi. Plus, Anda dapat bekerja secara offline secara realistis sedangkan dengan subversi, Anda tidak dapat melakukan perubahan jika Anda tidak memiliki. Anda dapat bekerja lebih mudah dengan masing-masing komit di git dibandingkan memiliki satu komit ID yang mewakili keadaan repositori di svn.

Akses dikendalikan baik oleh akun pengguna / grup di server git (Anda harus menginisialisasi repositori asal dengan 'git init --bare - shared' agar izin diatur dengan tepat) atau dengan menggunakan kunci ssh. Kontrol akses yang sangat granular dapat diatur dengan menggunakan 'gitosis' yang merupakan addon pihak ketiga.

Butuh sedikit waktu untuk terbiasa bekerja dengan git ketika Anda terbiasa svn (kami baru saja melewati ini di kantor saya), tetapi git jauh lebih kuat.

Jika Anda membutuhkan panduan yang baik, lihat http://progit.org - ini merupakan salinan lengkap buku sumber terbuka online.

Aaron Brown
sumber
svn dapat menangani file yang lebih besar daripada git
Joshua
Saya tidak menyadari bahwa git memiliki ukuran file maksimum - berapa batasannya?
Aaron Brown
2
Sebagian besar karena Git membawa sejarah sekitar dengan setiap copy pekerjaan, file besar yang diedit akan memakan banyak ruang. Jika file besar pada dasarnya tidak berubah, tidak apa-apa
Phil Miller
Saya akan mengatakan bahwa komentar Joshua menyesatkan. File yang diperiksa memiliki ukuran yang sama untuk SVN dan git. Apa yang akan terjadi adalah karena git menyimpan salinan informasi repo secara lokal, total ruang disk yang diperlukan untuk semua file plus riwayat repo akan bertambah ketika Anda mengedit file, tetapi untuk SVN ruang ini diperbaiki (karena sejarah repo tidak disimpan secara lokal).
Walter
1

Di tim saya, kami berada di tengah-tengah mengubah sistem versi kontrol kami dari svn ke git. Git memiliki kurva belajar yang sedikit lebih keras, jadi saya mulai membiasakannya dan kemudian mengajari para pengembang cara menggunakannya. Mereka perlu mengetahui semua keuntungan dari sistem versi kontrol terdistribusi: beberapa cabang, tidak ada repositori pusat, kecepatan, dll.

Seperti Anda, kami memiliki sistem untuk menyebarkan situs kami sehingga kami menyimpan sesuatu seperti server pusat git tempat perubahan ditarik dan didorong dari dan ke mesin pengembang. Situs kami menarik perubahan dari "server pusat" ini, dan proses penyebaran lainnya mirip dengan yang menggunakan svn.

Kami mencoba untuk tidak mencampur repositori svn dan git, mulai memigrasi situs kecil kami dan membuat repositori git baru untuk situs utama seolah-olah itu adalah versi baru. Akses dikelola dengan kunci ssh. Kami juga menggunakan gitweb sebagai antarmuka web (sistem svn kami berbasis http)

Ini berfungsi, ini bukan perubahan dari satu hari ke hari lain dan kami mencoba pengembang tidak menganggap perubahan ini sebagai gangguan, tetapi keterampilan baru untuk mempelajari alat yang pada akhirnya akan meningkatkan sistem kami sendiri.

hdanniel
sumber