2011-10-04 24 views
7

Cho rằng tôi đã tạo một nhánh trong Mercurial làm cách nào tôi có thể đẩy kết quả hợp nhất của nhánh đó vào một kho lưu trữ từ xa mà không có lịch sử về cách tôi nhận được kết quả nhánh đã hợp nhất đó. Ví dụ.Đẩy nhánh sáp nhập không có tiền sử

[a] - [b] -----------------[k] 
    \     /
     [g] - [h] - [i] - [j] 

[a], [b] và [k] là nhánh 'mặc định', [g] đến [j] làm chi nhánh tính năng. Khi tôi hợp nhất chi nhánh tính năng vào nhánh mặc định, làm thế nào tôi có thể có [a] - [b] - [k] các bộ thay đổi trong kho lưu trữ từ xa khi tôi đẩy? Tôi không muốn chỉ đơn giản là không nhìn thấy chi nhánh, tôi không muốn những bộ thay đổi được đẩy vào kho từ xa ở tất cả. Tôi không quan tâm làm thế nào tôi đã đến [k], tôi quan tâm kết quả cuối cùng [k] là mặc dù.

Tôi hiện đang nghiêng về phía nhánh bằng phương pháp nhân bản nhưng làm cách nào tôi có thể thực hiện việc này bằng nhân bản? Liệu có cách nào để thực hiện công việc này với các chi nhánh được đặt tên?

Tôi đã tìm kiếm câu trả lời cho vấn đề này nhưng có rất nhiều tài liệu ở đó rất khó để tìm thấy cây kim này trong đống cỏ khô.

Trả lời

7

Thay vì hợp nhất, bạn muốn sử dụng hg rebase với tùy chọn --collapse.

hg rebase --collapse --source [g] --dest [b] 

Tiện ích mở rộng rebase được gửi cùng Mercurial, bạn chỉ cần enable trong tệp cài đặt của mình.

p.s. Nếu bạn đã cam kết hợp nhất [k], bạn nên rollback (hoặc strip) trước tiên trước khi rebasing.

+0

Điều đó đã xảy ra! Cảm ơn tất cả các liên kết. Bây giờ tôi ước tôi có thể tìm ra cách để TortiseHg làm điều đó một cách chính xác. – David

0

làm thế nào tôi có thể đẩy việc hợp nhất kết quả của chi nhánh để một kho lưu trữ từ xa mà không có lịch sử như thế nào tôi đã có kết quả chi nhánh sáp nhập

Không cách để lịch sử tước cho sáp nhập chi nhánh

+2

Trong biểu mẫu dưới dạng, nhưng [Collapse extention] (http://mercurial.selenic.com/wiki/CollapseExtension) có thể giúp –

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