2010-10-25 27 views
27

Nếu chúng tôi cam kết nhiều lần, ví dụ, trên repo địa phương của chúng tôi, sửa đổi 3000, 3001, 3002, 3003. Nếu chúng tôi đẩy đến một repo từ xa, nó sẽ đẩy 3000 đến 3003. Có cách nào để đẩy chỉ 3000 và 3001?Đối với Mercurial, chúng ta có thể đẩy một số thay đổi và không đẩy một số?

+1

có thể trùng lặp của [In Mercurial, có cách nào (ngoài việc chọn "Cherry pick") để đẩy một changeset mà không cần đẩy các changesets liên kết với một cái đầu khác không?] (Http://stackoverflow.com/questions/3979122/ in-mercurial-is-there-any-way-sang-từ-cherry-chọn-to-push-a-changeset) –

Trả lời

38

Có, bạn có thể chọn bản sửa đổi để đẩy. hg push -r 3001 (tất cả tổ tiên của bản sửa đổi đã chọn sẽ được đẩy, bạn không cần phải chỉ định 3000.)

+0

tuyệt vời, cảm ơn, đã đi và nhìn thấy các tài liệu. nó nói nếu '-r' được sử dụng, thì đó là changeset và tất cả tổ tiên của nó sẽ bị đẩy. vì vậy nó có lẽ là không thể chỉ cần đẩy 3002 và 3003 mà không có 3000 và 3001? –

+0

Bạn chính xác. Bạn không thể gửi 3002 mà không gửi 3001 cũng (trừ khi họ đã có 3001, tất nhiên). Bạn có thể gửi một changeset khác có cùng sự thay đổi nhưng một hash khác và parent (và do đó là một changeset hoàn toàn khác), nhưng làm như vậy thường có nghĩa là bạn sẽ kết thúc với công việc trùng lặp trong repo của bạn. –

+2

Ngoài ra, nếu sử dụng rùa hg: sau khi nhấp vào 'phát hiện thay đổi đi', nhấp chuột phải vào bản sửa đổi bạn muốn nhấn và nhấn đẩy-> đẩy chi nhánh đã chọn – grinch

9

Nếu bạn cần đẩy một số thay đổi mà không có tất cả tổ tiên (giải pháp được mô tả trong @Woolble's answer), một lựa chọn tốt là sử dụng Mercurial Hàng đợi mở rộng (MQ).

https://www.mercurial-scm.org/wiki/MqExtension

Đây sẽ cho bạn lại trật tự, và thậm chí kết hợp changesets vì vậy bạn có thể đẩy chúng trong bất kể thứ tự bạn muốn. Phải mất một chút công sức để bắt đầu nhưng bạn sẽ thấy nó rất đáng để thử.

Tôi đã TortoiseHg làm việc với MQ khá đơn giản.

7

Đối với những người đang sử dụng giao diện người dùng và giống như hình ảnh:

  1. In TortoiseHg nhấp chuột vào nút Detect outgoing changes to. enter image description here

  2. Nhấp chuột phải vào bản sửa đổi bạn muốn đẩy.

  3. Chọn Push -> Push to Here. enter image description here

Kết quả: Bạn sẽ chỉ đẩy bản sửa đổi được chọn thay vì mọi thứ. enter image description here

Hy vọng điều này sẽ giúp bạn tiết kiệm thời gian.

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