Cách "hg rebase" xử lý bạn cho đến thời điểm này? Bạn đã phát hiện ra bất kỳ lỗi hoặc gotchas? Trong những tình huống nào nó thay thế hoặc bổ sung cho mq?Kinh nghiệm của bạn sử dụng lệnh "hg rebase" mới là gì?
Trả lời
rebase là rất tốt đẹp trong trường hợp đơn giản (không có hoặc có rất ít xung đột nhập), nhưng nếu bạn có rất nhiều trong số họ có thể có nhiều rắc rối mà nó có giá trị, so với việc hợp nhất thường xuyên + cam kết:
rebase thay đổi các cam kết của bạn & làm thay đổi lịch sử và theo mặc định sẽ xóa các cam kết ban đầu của bạn. Điều này có một số tác động khá là lông nếu chúng đánh bạn trong một thời điểm xấu:
- Không có cách nào để xem cách bạn giải quyết xung đột. (ví dụ: khác biệt giữa cam kết ban đầu của bạn và khoản rebase, trừ khi bạn chọn giữ chúng và tự xóa chúng trước khi đẩy)
- Không có cách nào để kiểm tra từng bản sửa đổi đã được trộn lại, biên dịch và chạy ok trước khi cam kết. Bạn rebase, cam kết của bạn thay đổi. (cùng ngoại lệ như trên)
- Nếu bạn đang thực sự phân phối nội dung và chia sẻ/kéo từ nhiều nguồn, bạn phải hết sức cẩn thận để không chia sẻ bất kỳ cam kết nào mà bạn dự định sẽ rebase.
- Ngoài ra, nếu, trong trường hợp trên, bạn có khả năng rebase lại sau đó kéo các cam kết trước rebase từ một người nào đó, bạn nhận được một bộ cam kết kép và cần phải 'hg strip' ra một bộ. (Tôi chưa từng hợp nhất ở đây.)
Vấn đề là lịch sử chỉnh sửa rebase. Đó là những gì SVN làm trên 'cập nhật'. Vì vậy, nó chắc chắn là một cái gì đó bạn có thể sử dụng, nhưng nếu bạn có nhiều cam kết nổi bật và mong đợi nhiều xung đột, tôi khuyên bạn nên hợp nhất thay vào đó.
Lợi thế lớn nhất so với MQ (Hàng đợi Mercurial) là khi bạn đang đẩy một bản vá xếp hàng vào một baselayer đã thay đổi, bạn kết thúc với các tệp .rej và phải sửa chữa bản vá theo cách thủ công. Với rebase bạn thay vì có được một hợp nhất và các công cụ hợp nhất-rsolution tiêu chuẩn của bạn được đưa ra.
Tôi đang gặp sự cố với các thẻ trỏ vào chi nhánh bị xóa.
.hgtags @ XXXXXXXXXXXX, dòng 2: từ khóa 'XXX' đề cập đến chưa biết nút
Dường như nếu các thẻ không được chuyển đổi một cách chính xác.
Có lẽ điều này phải thực hiện với các cam kết đã bị 'xóa'. Xem câu trả lời đầu tiên. –
- 1. Bạn đã sử dụng bộ đệm ẩn của Intersystems chưa? Kinh nghiệm của bạn là gì?
- 2. Kinh nghiệm của bạn với ARM Jazelle là gì?
- 3. Kinh nghiệm của bạn khi sử dụng dự án java chức năng là gì?
- 4. Trải nghiệm Devtrack của bạn là gì?
- 5. Lợi thế của lệnh rebase trong Mercurial là gì?
- 6. Trải nghiệm của bạn khi sử dụng Giao diện chung TIBCO là gì?
- 7. Kinh nghiệm sử dụng moq với VB.Net
- 8. Kết hợp Knockout.js + KendoUI - Trải nghiệm của bạn là gì?
- 9. Khi sử dụng Mercurial HG, cách lấy mã mới nhất?
- 10. Sự khác nhau giữa hg quên và hg là gì?
- 11. Bất kỳ kinh nghiệm sử dụng PostSharp nào với ReSharper
- 12. Có ai có kinh nghiệm sử dụng math.net
- 13. hg rebase abort không thành công: "unknown revision"
- 14. Git: 'rebase' không phải là lệnh git. Xem 'git --help'
- 15. Cách sử dụng của C++ xây dựng "vị trí mới" là gì?
- 16. Hãy chia sẻ kinh nghiệm của bạn với JavaScriptMVC, các lựa chọn thay thế
- 17. Dựa trên kinh nghiệm của bạn, có bao nhiêu bạn muốn giới thiệu fluent NHibernate trên Nhibernate cách làm việc cho dự án mới của tôi?
- 18. Làm cách nào để "hg rebase --continue" trực quan trong TortoiseHg Workbench sau thao tác Pull-> Rebase?
- 19. Người dùng của Gallio, bạn có kinh nghiệm gì về Ưu điểm và Nhược điểm khi sử dụng Công cụ này?
- 20. Hướng dẫn sử dụng Ubuntu dành cho người mới bắt đầu dành cho nhà phát triển windows có kinh nghiệm
- 21. Trải nghiệm của bạn với Scala + Wicket
- 22. Phương pháp tốt nhất để thu thập dữ liệu về việc sử dụng ứng dụng của bạn là gì?
- 23. Cách ưa thích của bạn trong việc thử nghiệm đoạn mã javascript là gì?
- 24. Có ai có kinh nghiệm sử dụng CloudFoundry với Grails không?
- 25. hg pull từ bitbucket sử dụng vải
- 26. Đề xuất cho một lập trình viên có kinh nghiệm mới với JavaScript?
- 27. Thuộc tính 'nowrap' được coi là lỗi thời. Bạn nên sử dụng cấu trúc mới hơn. Nó là gì?
- 28. Các trường hợp sử dụng cho thử nghiệm của Scala 2.9 ... bắt tổng quát là gì?
- 29. Cây biểu thức là gì, bạn sử dụng chúng như thế nào và tại sao bạn sử dụng chúng?
- 30. Sử dụng GeoTools: Vĩ độ và Kinh độ trong lớp com.vividsolutions.jts.geom.Coordinate là gì?
Những vấn đề này sẽ tồn tại nếu bạn chỉ cho phép quá trình rebase đi qua khi không có xung đột? Tức là, nếu bạn luôn luôn hg rebase --abort hơn là - tiếp tục, nếu đưa ra tùy chọn, và sau đó quay trở lại và hợp nhất, nhưng nếu bạn cho phép rebase tiếp tục khi không có xung đột? –
@JoshuaGoldberg: Có! Vì không có xung đột trong tệp không ngụ ý rằng nội dung hoạt động sau khi hợp nhất. Thay đổi các tệp khác nhau phụ thuộc vào nhau có thể vẫn gây ra sự cố và có thể khó phát hiện sau đó. Tôi đã viết một phần mở rộng (RebaseIf) tự động hóa những gì bạn đề nghị, nhưng vì nó không giải quyết được vấn đề cơ bản, tôi không còn sử dụng nó nữa. Một số người đến Mercurial như nó rất nhiều mặc dù, nhưng nó cung cấp một cảm giác sai về an ninh vì vậy nó dễ dàng hơn nếu bạn học cách yêu thích hợp nhất. – Macke