Hambatan untuk menggunakan Git Flow di Subversion

10

Tim saya di tempat kerja sedang memulai proyek baru, menggunakan Subversion sebagai VCS kami (Anda dapat mempertimbangkan batu ini untuk tujuan pertanyaan ini). Kami masih dalam tahap awal proyek dan mencoba untuk menyetujui model percabangan. Proyek kami sebelumnya didasarkan pada model versi non-standar yang menyebabkan masalah ketika mengelola hot-fix dan patch untuk rilis yang ada.

Saya menemukan model percabangan yang berbeda agak rumit, tetapi satu model yang saya mengerti cukup jelas adalah aliran git . Saya ingin tahu seberapa sulit / tidak diinginkan untuk mengimplementasikan variasi ini di Subversion. Jelas ada beberapa perbedaan dalam hal orang yang berkolaborasi di cabang. Cabang-cabang fitur harus dipusatkan daripada terbatas pada repositori lokal, tetapi konsep-konsep model yang lain harus direproduksi dalam Subversion seperti yang saya mengerti.

Apa yang akan menjadi kelemahan atau tantangan untuk pendekatan ini. Apa yang saya dengar adalah bahwa di SVN "penggabungan itu mahal" relatif terhadap Git. Tetapi saya tidak sepenuhnya jelas tentang apa artinya ini dalam praktiknya atau bagaimana hal itu memengaruhi kemampuan kita untuk menggunakan aliran git seperti model percabangan.

Apa yang akan menjadi perhatian terbesar dengan pendekatan ini. Apakah ada pendekatan yang sama jelasnya yang lebih alami di Subversion?

Ben McCormick
sumber

Jawaban:

12

Gitflow didasarkan pada praktik terbaik dari versi kode dan percabangan. Artikel yang sangat bagus tentang ini adalah Strategi Cabang SCM Lanjutan

Maksud Vance dalam artikel tertaut adalah bahwa cabang yang berbeda memiliki peran yang berbeda . Dia mengidentifikasi peran:

  1. Mainline (semua cabang dari sini)
  2. Pengembangan (di mana pekerjaan pengembangan dilakukan)
  3. Pemeliharaan (di mana pekerjaan pemeliharaan dilakukan)
  4. Akumulasi (Menyatukan berbagai hal dalam persiapan untuk rilis)
  5. Pengemasan (mengemas build untuk rilis)

Dalam gitflow, ini adalah:

  1. Mengembangkan
  2. cabang fitur
  3. Cabang perbaikan terbaru
  4. Lepaskan cabang
  5. Menguasai

Artikel tentang percabangan ditulis dengan pemikiran Perforce. Perforce adalah VCS terpusat, seperti halnya svn. Pola percabangan yang ia gambarkan dengan sempurna memetakan ke svn.

Kunci untuk disadari adalah bahwa ini bukan bagaimana gitflow dapat diporting ke svn, melainkan bagaimana menerapkan konsep dasar yang sama tentang percabangan dan peran cabang ke struktur VCS yang berbeda.

Saya sangat merekomendasikan membaca artikel, saya tidak bisa melakukan banyak pujian untuk itu. Cara hal-hal yang dijelaskan di sana didasarkan dari filosofi membangun trunk / arus utama yang Anda akan mudah memetakan svn.


sumber
1
Kembali ke ide-ide yang memimpin desain gitflow adalah peningkatan cerdas dari pertanyaan awal!
user40989
@ user40989 Saya tidak yakin apakah Vincent Driessen (nvie) telah membaca artikel atau tidak yang mengajukan konsep percabangan ini, atau apakah dia menemukan kembali ini sendiri. Either way, pengakuan tentang apa peran yang diperlukan untuk alur kerja melalui kontrol versi membuatnya mudah untuk melihat kesamaan antara pendekatan dan praktik terbaik.