Gabungkan dua revisi cabang menggunakan Subversion

95

Saya ingin menggabungkan semua perubahan yang terjadi antara rev 10 & HEAD rev di http: // url-of-branch-a dan menerapkannya ke http: // url-of-branch-b .

Sesuatu seperti...

svn merge -r 10:HEAD http://url-of-branch-a 

Apakah ini mungkin? Jika ya, apa sintaksnya?

Saya menjalankan klien SVN dari baris perintah unix. Versi klien SVN adalah 1.4

EDIT: Ya, solusi spesifik saya adalah ...

  1. ubah direktori ke lokasi copy pekerjaan saya yang ingin menerima perubahan (branch-b)
  2. svn merge -r 10: HEAD http: // url-of-branch-a

Ini menggabungkan perubahan dari 'branch-a' menjadi 'branch-b'

pengguna62732
sumber
4
Anda juga perlu tahu kapan cabang itu diambil. Anda dapat melakukan ini (svn log --stop-on-copy.) Di cabang Anda untuk mendapatkan nomor revisi yang Anda buat bercabang.
jmc
@jmc Anda tidak membutuhkan ini lagi sejak tahun 2008 ketika SVN 1.5 dirilis, AFAIR
bahrep

Jawaban:

55

URL Checkout A. Gunakan penggabungan SVN untuk menggabungkan URL B ke copy pekerjaan Anda dari A. Komit A.

Atau sebaliknya tentunya :)

Billy ONeal
sumber
127

Prosesnya adalah sebagai berikut:

  1. Menetapkan copy pekerjaan cabang B ( svn checkout http://branch-b)
  2. Gabungkan perubahan dari cabang A menjadi copy pekerjaan B ( svn merge -r 10:HEAD http://branch-a .)
  3. Komit (setelah menyelesaikan konflik) copy pekerjaan B ke cabang b ( svn commit)

Periksa halaman manual (file bantuan) untuk svn merge semantik. Ini menunjukkan kepada Anda bahwa svn merge selalu membuang hasil ke dalam copy pekerjaan.

Lihat SVNBook untuk semua detailnya.

Jamie Hale
sumber
Bisakah Anda juga memberi gambaran bagaimana melakukannya menggunakan plugin SVN di eclipse?
Snehal Masne
Ini bekerja untuk saya: svn merge --force --allow-mixed-revised -r 10: HEAD branch-a
Minh Nguyen
2
mengapa kami menetapkan revisi 10 ke HEAD? Mengapa dua titik akhir revisi, bukan hanya satu revisi untuk digunakan sebagai snapshot? cabang mana yang dimaksud dengan "10 to HEAD"?
ahnbizcad
2

Kebanyakan bingung mergedengan mencoba melakukannya di svn repo, kita tidak bisa langsung menggabungkan ke svn repo, kita bisa menggabungkan ke copy pekerjaan mesin lokal sebagai berikut:

  • Copy pekerjaan ini harus destination URLdigabungkan (mis. Tujuan checkout).

  • menggabungkan copy pekerjaan dengan source URLdari merge.

  • commit ke tujuan.

Praktik Terbaik : Merge In, Merge Out.

Premraj
sumber