2010-06-23 23 views
5

Mercurial - Có thể hợp nhất các thay đổi từ thân cây thành một nhánh, trong cùng một kho lưu trữ không?Mercurial - Có thể hợp nhất các thay đổi từ thân cây thành chi nhánh, trong cùng một repo không?

Nếu có, có thể thực hiện với TortoiseHg không?

+1

Điều này thuộc về StackOverflow - đó là về một công cụ lập trình. – Novelocrat

+0

Hoặc SuperUser - đó là một công cụ Windows! Hoặc chúng tôi cần một trang web mới. –

Trả lời

5

Có hai việc bạn có thể làm, hợp nhất hoặc ghép. Những câu trả lời này giả định dòng lệnh, bạn có thể phải tìm kiếm thông qua các trình đơn của bạn trong rùa để tìm chức năng tương tự.

Bạn có thể hợp nhất tất cả các thay đổi từ chi nhánh này sang chi nhánh khác. Thủ tục cho việc này là:

hg update mybranch 
hg merge default 
hg commit -m "Merging with default" 

Điều này sẽ đưa tất cả các cam kết mặc định vào chi nhánh của bạn, nhưng không phải là cách khác. Sau đó bạn có thể tái hòa nhập chi nhánh của bạn với mặc định bằng cách làm ngược lại

hg update default 
hg merge mybranch 
hg commit -m "Bringing in changes from mybranch" 

Nếu bạn muốn mang theo một hoặc cụ thể hơn các cam kết đã được cam kết trong chi nhánh khác, bạn có thể làm điều đó với 'ghép', mà là một đồng bóng sự mở rộng.

# reqiured in ~/.hgrc 
[extensions] 
transplant = 

Đây là những lệnh bạn có thể sử dụng để sử dụng ghép:

hg log | less 
# (find revision number, the part after the colon, i.e. "88660cca467d") 
hg update mybranch 
hg transplant 88660cca467d 
# (no commit required) 
2

Như @Jerub nói, bạn có thể sử dụng kết hợp và ghép để có được bộ biến đổi từ một chi nhánh khác. Với TortoiseHg bạn có thể thực hiện hợp nhất bằng cách mở "trình khám phá kho lưu trữ", sau đó chọn bản sửa đổi đầu tiên để hợp nhất và sau đó nhấp chuột phải vào bản sửa đổi thứ hai để hợp nhất. Chọn mục trình đơn "Hợp nhất với ..." để thực hiện hợp nhất.

Các vấn đề liên quan