Tôi đang chơi xung quanh với Mercurial để xem nó có phù hợp để sử dụng trong công ty của chúng tôi hay không. Một trong những điểm bán hàng lớn của nó là khả năng hợp nhất. Vì vậy, tôi đã được chơi xung quanh với việc tạo ra các chi nhánh và sáp nhập chúng trở lại vào dòng mặc định. Thử nghiệm liên quan đến việc thêm một phương thức mới (methodA) vào một tệp Java duy nhất trong một nhánh và thêm một phương thức khác (phương thức B) vào một vị trí hoàn toàn khác trong cùng một tệp trong một nhánh khác.Sáp nhập với MercurialEclipse có xung đột được giải quyết tự động khi hợp nhất tại dòng lệnh
Khi tôi lần đầu tiên thử nó trong Eclipse bằng cách sử dụng tùy chọn nhóm-> hợp nhất tôi thấy rằng hợp nhất đầu tiên làm việc tốt (tức là nó thêm phương pháp A). Khi tôi cố gắng hợp nhất nhánh thứ hai bây giờ nó nói với tôi rằng có một xung đột mà tôi phải giải quyết. Điều này là rất không may khi tôi nghĩ rằng loại hợp nhất đơn giản này là chính xác loại điều Mercurial được cho là để xử lý một cách dễ dàng?
Tôi đã thử nghiệm chính xác cùng một lệnh bằng cách sử dụng dòng lệnh và lần này nó hoạt động tốt, tức là cả hai lần hợp nhất đều thành công mà không cần giải quyết xung đột. Nhìn vào giao diện điều khiển đầu ra trong eclipse nó được sử dụng lệnh sau để thực hiện việc hợp nhất:
hg -y merge --config ui.merge=internal:fail -r 611ca2784593525cdafd3082b17d3310037a5d58 -f
trong khi đó khi tôi chạy nó bản thân mình từ dòng lệnh tôi chỉ cần làm:
hg merge -r 1234
là việc sử dụng các hợp nhất chiến lược 'nội bộ: thất bại' gây ra điều này xảy ra trong Eclipse ?? Và nếu như vậy là nó có thể thay đổi hành vi mặc định để nó hoạt động theo cùng một cách như nó ở dòng lệnh?
Đó là. Đây là một liên kết đến các mẹo và thủ thuật trên trang web HG. http://mercurial.selenic.com/wiki/TipsAndTricks#line-227 (Đó là mẹo 22 tại thời điểm viết bài). Tùy chọn duy nhất tôi thấy là sử dụng công cụ hợp nhất bên ngoài. Không có ý tưởng gì, vì tôi sử dụng TortoiseHG cho hầu hết các tương tác HG của tôi. Các phiên bản tiếp theo của TortoiseHG là REALLY tốt đẹp vì nó bây giờ là một bàn làm việc, do đó, có thể làm tất cả mọi thứ từ một giao diện người dùng. – Mikezx6r