Jadi saya mengambil pekerjaan di mana perusahaan menggunakan SVN (tetapi akan pindah ke Git di masa depan). Masalahnya adalah saya tidak tahu SVN. Saya sudah mencoba banyak pertanyaan Google dan yang bisa saya temukan hanyalah tutorial SVN-> Git, "Mengapa Git lebih baik daripada SVN" blog, dan "cheat sheet" tertentu yang memberikan (beberapa) perintah yang sebanding ...
Singkat membaca buku O'Reilly di SVN, apa instruksi singkat (tapi tidak terlalu singkat) untuk SVN untuk pengguna Git?
Jawaban:
Referensi kanonik adalah Buku Merah Subversion . Apa pun keahlian Anda di masa lalu, bacalah ini dari yang baru dan Anda akan mendapatkan semua informasi penggunaan yang Anda butuhkan. Itu tidak sulit atau sepenuhnya asing, kebanyakan orang mengatakan SVN jauh lebih mudah dipahami daripada git sehingga Anda harus baik-baik saja dengan hanya sedikit membaca perintah utama. The Bab penggunaan dasar harus membuat Anda bangun dan berjalan tanpa masalah.
Ada 2 perbedaan utama:
Percabangan itu sepele, penggabungan sama sekali tidak seburuk yang ingin dilakukan oleh para pembela DVCS, terutama jika Anda tetap menggunakan trio "folder tingkat atas" (disebut trunk, branch, dan tag).
Ada beberapa bit SVN yang mengalahkan, direktori jarang muncul di pikiran - di mana Anda checkout hanya bagian dari repo Anda. Ketika Anda membutuhkan lebih banyak bagian, Anda hanya memperbarui apa yang Anda butuhkan. Jika Anda memiliki repo besar (mis. Produk inti dan banyak plugin) ini brilian.
Ada beberapa bit yang tidak sebagus git, konflik pohon yang ditakuti muncul di benak - di mana Anda memiliki konflik di tingkat direktori (yaitu seseorang menghapus file yang telah Anda edit)
Jika Anda menggunakan Windows, gunakan TortoiseSVN. Itu batu utama.
sumber
git mv
. SVN memilikisvn move
, tetapi karena percabangan dan penggabungan dalam SVN adalah jenis peretasan, saya tidak percaya ini dapat secara otomatis menyelesaikan konflik pohon seperti git ...git mv
diimplementasikan sebagai tambah + hapus. git menggunakan heuristik untuk menentukan apakah pemindahan atau penyalinan terjadi selama komit (saya pikir defaultnya adalah, "apakah 80% + dari file itu sama?")Gunakan git svn jika memungkinkan. Saya telah dalam situasi Anda dan setelah setengah tahun frustrasi saya beralih ke git svn dan telah bahagia sejak itu.
Git svn memungkinkan Anda menggunakan repositori secara lokal dan melakukan ke server SVN kemudian ditangani oleh
git svn rebase
yang mengubah perubahan lokal Anda ke trunk subversi dan kemudiangit svn dcommit
melakukan komit yang dirangkum ulang.Mungkin itu tidak optimal untuk penggunaan Subversion tingkat lanjut, tetapi karena Anda menggunakan git secara lokal semuanya baik-baik saja.
Saat menggunakan git clone Anda tidak harus mengkloning folder root subversi tetapi direktori target Anda secara langsung (clone
trunk
). Ini akan membuat git berjalan lebih cepat, jika tidak copy pekerjaan Anda bisa menjadi besar.Penafian : Saya tidak tahu bagaimana situasinya ketika Anda ingin membuat cabang Subversion, dll. Tim yang saya bekerja sama tidak menggunakan cabang (hanya saya cabang git lokal).
sumber