Hợp nhất hai bản sửa đổi nhánh bằng Subversion


95

Tôi muốn hợp nhất tất cả các thay đổi đã diễn ra giữa phiên bản 10 và phiên bản HEAD trên http: // url-of-branch-a và áp dụng chúng cho http: // url-of-branch-b .

Cái gì đó như...

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

Điều này có khả thi không? Nếu vậy, cú pháp là gì?

Tôi đang chạy ứng dụng khách SVN từ dòng lệnh unix. Phiên bản máy khách SVN là 1.4

CHỈNH SỬA: Có, giải pháp cụ thể của tôi là ...

  1. thay đổi thư mục đến vị trí của bản sao làm việc của tôi muốn nhận các thay đổi (nhánh-b)
  2. svn merge -r 10: HEAD http: // url-of-branch-a

Điều này hợp nhất các thay đổi từ 'branch-a' thành 'branch-b'


4
Bạn cũng cần biết chi nhánh được lấy khi nào. Bạn có thể thực hiện việc này (svn log --stop-on-copy.) Trong nhánh của bạn để lấy số sửa đổi mà bạn phân nhánh.
jmc

@jmc bạn không cần cái này nữa kể từ năm 2008 khi SVN 1.5 đã được phát hành, AFAIR
bahrep

Câu trả lời:


55

URL kiểm tra A. Sử dụng hợp nhất SVN để hợp nhất URL B với bản sao làm việc của bạn A. Cam kết A.

Hoặc ngược lại tất nhiên :)


127

Quá trình này như sau:

  1. Thiết lập một bản sao làm việc của chi nhánh B ( svn checkout http://branch-b)
  2. Hợp nhất các thay đổi từ nhánh A thành bản sao hoạt động của B ( svn merge -r 10:HEAD http://branch-a .)
  3. Cam kết (sau khi giải quyết xung đột) bản làm việc B tới nhánh b ( svn commit)

Kiểm tra trang người đàn ông (tệp trợ giúp) để biết ngữ nghĩa hợp nhất svn. Nó cho bạn thấy rằng svn merge luôn kết xuất các kết quả vào một bản sao làm việc.

Kiểm tra SVNBook để biết tất cả các chi tiết.


Bạn cũng có thể đưa ra ý tưởng về cách sử dụng plugin SVN trong eclipse?
Snehal Masne,

Điều này phù hợp với tôi: svn merge --force --allow-mix-revpts -r 10: HEAD branch-a
Minh Nguyen

2
tại sao chúng tôi chỉ định bản sửa đổi 10 thành HEAD? Tại sao lại sử dụng hai điểm cuối sửa đổi thay vì chỉ một bản sửa đổi làm ảnh chụp nhanh? "10 to HEAD" đề cập đến nhánh nào?
ahnbizcad

2

Chủ yếu là nhầm lẫn mergekhi cố gắng thực hiện trong repo svn, chúng ta không thể hợp nhất trực tiếp vào repo svn, chúng ta có thể hợp nhất vào bản sao làm việc của máy cục bộ như sau:

  • Bản sao làm việc này phải là destination URLhợp nhất (tức là điểm đến thanh toán).

  • hợp nhất bản sao làm việc với source URLhợp nhất.

  • commit đến đích.

Phương pháp hay nhất : Merge In, Merge Out.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.