Pertanyaan Reintegrate cabang vs menggabungkan berbagai revisi


Dalam subversi saya membuat cabang sekarang saya ingin menggabungkannya kembali ke dalam bagasi. Opsi mana yang harus saya gunakan?

Mengintegrasikan kembali cabang

atau

menggabungkan berbagai revisi

Saya menggunakan Merge berbagai revisi, tetapi saya mendapatkan berbagai macam kesalahan konflik pohon. Tahu apa perbedaannya di antara keduanya?


32
2017-11-18 18:58


asal


Jawaban:


Ketika bekerja dengan cabang, Anda harus secara berkala menggabungkan rentang revisi dari bagasi ke cabang menjaga agar cabang tetap sinkron. jika Anda tidak melewatkan nomor versi apa pun untuk svn merge dan versi server svn Anda adalah 1,5 atau lebih baru, itu akan melacak gabungan yang sebelumnya telah Anda lakukan dan secara otomatis menggabungkan hanya revisi yang lebih baru.

Ketika cabang selesai, Anda harus menggabungkan perubahan ke dalamnya untuk terakhir kalinya reintegrasi kembali ke bagasi.


35
2017-11-18 19:17



Berikut adalah langkah-langkah yang biasanya saya ikuti untuk menggabungkan.

1

svn log -v --stop-on-copy    http: // mysvnrepo / mybranch

Ini akan memberi Anda revisi repo ketika Anda pertama kali membuat cabang. Katakanlah itu AAAA.

2

svn log -v -rAAAA: HEAD    http: // myrepo / trunk

Ini akan memberi Anda perubahan yang dibuat di bagasi setelah Anda mengeluarkan cabang. Ini tidak penting tetapi saya menggunakan ini untuk mendapatkan ide tentang apa yang harus saya harapkan untuk digabung saat ini.

3

Dalam hal langkah2. melaporkan perubahan batang, pergi ke ruang kerja kantor cabang dan jalankan

svn merge --dry-run -rAAAA: HEAD    http: // myrepo / trunk .

Ini akan melaporkan semua perubahan yang dibuat di bagasi sejak Anda bercabang ke dalam ranting saya - lihat dan jalankan kembali perintah tanpa opsi --dry-run untuk melakukan penggabungan yang sebenarnya.

4.

Komit ruang kerja kantor pos setelah bergabung dengan komentar yang relevan. (misalnya., "Perubahan gabungan dari versi batang AAAA melalui XXXX" - di mana XXXX adalah versi HEAD saat ini) Ini menampilkan KEPALA untuk mengatakan versi YYYY.

5.

Selanjutnya di ruang kerja batang, ketik

svn merge --dry-run -rAAAA: HEAD    http: // myrepo / branch .

Ini harus melaporkan perubahan yang dibuat di cabang setelah dibuat hingga sekarang. Lihat melalui laporan untuk memverifikasi apa yang sedang digabung / konflik, dll., Kemudian jalankan perintah tanpa opsi --dry-run, untuk benar-benar melakukan penggabungan.

6

Selesaikan konflik jika ada dengan tangan, jalankan svn diselesaikan untuk memberi tahu repo bahwa konflik Anda semuanya telah diselesaikan, dan kemudian lakukan commit dengan pesan yang relevan, misalnya "Penggabungan dari mybranch ke trunk - perubahan termasuk dari revisi AAAA melalui YYYY". Ini membantu waktu berikutnya Anda menjalankan log dan kemudian Anda dapat melakukan penggabungan berikutnya dari YYYY ke HEAD pada titik tersebut.


6
2017-11-19 03:26



Tortoise SVN Merge vs Reintegrate explanation:

Dokumentasi TortoiseSVN


4
2017-11-18 19:07