2010-08-18 24 views
15

Thỉnh thoảng tôi cam kết một số mã vào kho lưu trữ, thêm nhận xét/tóm tắt, sau đó đọc tóm tắt lại và nhận ra tôi đã mắc sai lầm hoặc nên có thêm một chút thông tin. Có thể chỉnh sửa tóm tắt sau khi cam kết trong TortoiseHg? Tôi đang sử dụng phiên bản 1.1Có thể chỉnh sửa bản tóm tắt sau khi cam kết sử dụng TortoiseHg không?

+1

Xem câu hỏi này để có câu trả lời cập nhật về cách thực hiện việc này trong TortoiseHg: [Làm cách nào để chỉnh sửa thông báo cam kết không đúng trong TortoiseHG Mercurial?] (Http://stackoverflow.com/questions/18192569/how-do-i -edit-an-wrong-cam-tin-trong-tortoisehg-mercurial) – User

Trả lời

7

Nếu đó là lần commit cuối cùng, bạn có thể nhấn nút "Hoàn tác" trong hộp thoại cam kết (nó là một giao diện để hg rollback) và sau đó cam kết các tập tin tương tự một lần nữa với một tin nhắn mới. Nếu đây là một cam kết ở giữa cây, bạn cần sử dụng phần mở rộng mq để xóa tất cả các cam kết sau đó và áp dụng lại chúng. Và nếu các cam kết với một bản tóm tắt không chính xác được đẩy đến một repo công cộng, bạn nên chấp nhận và sống với điều đó, bởi vì bạn không nên thay đổi cam kết được công bố.

1

Nếu bạn cam kết, nhưng không đẩy, bạn có thể rollback cam kết cuối cùng sử dụng

hg rollback 

Tôi không chắc chắn rằng chức năng này được thực hiện trong TortoiseHG, nhưng bạn luôn có thể mở giao diện điều khiển, đi đến repo và gõ lệnh này bằng cách tự.

3

Đánh giá bởi câu trả lời .. vì vậy câu trả lời tổng hợp là,

, có thể nếu hành động cuối cùng là cam kết của changeset trong câu hỏi (trong trường hợp này, hãy thực hiện rollback lệnh), và

không, nó không phải là có thể, không ra khỏi hộp (không có phần mở rộng mq và rất nhiều gruntwork), nếu changeset trong câu hỏi đã được đẩy hoặc sau check-in có được làm.

Tôi đăng câu trả lời này bởi vì các câu trả lời khác không thừa nhận 'không', chỉ 'nếu'. :) Cảm thấy tự do bỏ phiếu, tôi chỉ muốn đánh vần các suy luận ở đây.

6

Phil - Tôi sẽ gửi câu trả lời cùng tôi chỉ được đăng trên this question (hỏi sau của bạn):

Một cách thích hợp để làm điều này là sử dụng histedit. Histedit cho phép bạn loại bỏ, sửa đổi, kết hợp hoặc sửa đổi các cam kết trước đó của bạn.

Histedit không tàu với Mercurial và nó không thể được sử dụng với TortoiseHg, nhưng việc sử dụng dòng lệnh rất đơn giản:

> hg histedit <rev>

nơi là phiên bản bạn muốn thay đổi những nhận xét trên. Histedit sẽ tạo ra một danh sách các thay đổi và hiển thị cho bạn SHA1 của chúng. Bên cạnh mỗi changeset có một từ chỉ ra những gì histedit sẽ làm với mỗi changeset một khi bạn đóng cửa sổ văn bản. Bên cạnh changeset bạn muốn sửa đổi - thay thế 'pick' bằng 'edit'. Đóng cửa sổ văn bản và sau đó thực hiện lệnh này:

> hg histedit --continue

và một cửa sổ văn bản sẽ xuất hiện có chứa nội dung log. Thay đổi tin nhắn thành bất cứ điều gì bạn muốn. Bạn có thể làm điều này cho nhiều thay đổi trong một lần, miễn là các tệp chưa được chia sẻ. Đây là một sử dụng khá khiêm tốn của histedit, sử dụng phức tạp hơn liên quan đến việc kết hợp các cam kết hoặc loại bỏ một phần của một số cam kết.

+0

+1 cho thông tin. Cảm ơn –

+0

Bạn cũng có thể thay đổi 'pick' thành' mess' (thay vì 'edit') và nó sẽ cho phép bạn chỉnh sửa thông báo tóm tắt. – wfaulk

10

Sử dụng hàng đợi thủy ngân để chuyển đổi bộ đổi thành bản vá, sau đó loại bỏ các bộ thay đổi đó và áp dụng lại các bản vá lại cho kho lưu trữ của bạn.

Khi các bản vá được tạo, chúng được lưu trữ trong thư mục .hg/patches trong kho lưu trữ của bạn và bạn có thể chỉnh sửa chúng (bao gồm cả thông báo cam kết) trước khi áp dụng lại chúng.

  • Enabled các phần mở rộng Mercurial Queues (MQ)
  • Nhấp chuột phải và chọn nhập Revision để MQ cho mỗi thay đổi thiết lập để chuyển đổi chúng thành các bản vá lỗi trong hàng đợi vá
  • Enable cửa sổ hàng đợi vá từ giao diện menu
  • Chọn Un-áp dụng Tất cả Patches mũi tên trong hàng đợi vá tước đổi bộ đi
  • chỉnh sửa các tập tin vá trong .hg/pa tches
  • Chọn Apply All Patches
  • Nhấp chuột phải vào các bản vá và chọn Hoàn Applied để đóng xuống hàng đợi
+0

Điều này hoạt động độc đáo. Như với các đề xuất khác, nó phải được thực hiện trước khi đẩy –

1

TortoiseHG miễn là bạn đã không đẩy:

Đánh dấu phiên bản mới nhất (mà là để được ammended),

nhấp vào đánh dấu màu xanh lá cây trên đầu như thể bạn muốn cam kết.

Mở tam giác menu ngay từ nút "cam kết" ở bên phải và chọn "phiên bản hiện tại" thay vì "thay đổi cam kết".

Đây là bạn.

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