2011-10-14 37 views
38

Có tương đương với mercurial git add -p không?hg tương đương với git add -p?

Trích dẫn từ người đàn ông, git-thêm với tùy chọn -p (hoặc --patch) nào sau đây:

tương tác chọn hunks của vá giữa chỉ số và các cây công và thêm chúng vào mục lục. Điều này mang lại cho người dùng cơ hội để xem xét sự khác biệt trước khi thêm nội dung đã sửa đổi vào chỉ mục.

+0

Đây là phần ít nhất của TortoiseHg trước cổng mới và hiện không được triển khai trong cổng mới. Xem https://bitbucket.org/tortoisehg/thg/issue/188/what-happened-to-change-selection-in-the –

+1

@ LasseV.Karlsen: Tính năng giá đỡ vẫn có sẵn trong TortoiseHg mới nhất. Nó có thể được truy cập thông qua trình đơn 'Repository -> Shelve' hoặc thông qua một biểu tượng trong cửa sổ commit. –

+0

Có thể sao chép [Mercurial cherry select changes for commit] (http://stackoverflow.com/questions/854930/mercurial-cherry-picking-changes-for-commit) –

Trả lời

33

Hãy xem record extension (có kèm theo Mercurial).

Lưu ý rằng vì Mercurial không có khái niệm về khu vực dàn dựng như git, chạy hg record sẽ đơn giản cho phép bạn kiểm tra, hunk bởi hunk, các sửa đổi trong bản sao làm việc của bạn. Bất kỳ thay đổi nào bạn chọn để ghi lại sẽ được cam kết và bất kỳ thay đổi nào bạn chọn không phải để ghi lại đơn giản là các sửa đổi trong bản sao làm việc của bạn.

7

Nếu bạn đang sử dụng TortoiseHg, tính năng này có tính năng Shelve cho phép bạn lưu các thay đổi bạn không muốn cam kết vào khu vực tạm thời. Nó cho phép lựa chọn hunk, giống như git.

Trong TortoiseHg Workbench, công cụ này có thể được truy cập trong 2 cách sau:

  1. Bấm Repository -> Shelve
  2. Trong Commit cửa sổ, chọn biểu tượng công cụ xiên. Nó trông giống như thế này:

enter image description here

+3

Lợi thế của phương pháp tiếp cận là bạn có thể kiểm tra thay đổi trước khi cam kết. –

+1

+1 Laurens, Nó luôn làm tôi nhớ rằng khi thực hiện một 'git add -p', tôi đoán về những thay đổi nào sẽ tạo thành một cam kết làm việc, và sau đó nhập vào đoán đó bằng cách sử dụng quy trình thủ công dễ bị lỗi. Yêu cầu rắc rối. –

15

Các Record Extention là công cụ tiêu chuẩn cho việc này. Nó cho phép bạn chọn hunks để bao gồm hay không trong một cam kết. Một khi bạn đã kích hoạt phần mở rộng trong HGRC của bạn, lệnh chỉ là

hg record 

Các CRecord Extension mang đến cho bạn một (Interface Tiêu đề thành viên) TUI trên đầu trang này cho phép bạn đi xuống mà dòng bạn muốn bao gồm . Đây không phải là tiêu chuẩn mặc dù, vì vậy nó cần tải về một thư mục trước khi bạn có thể kích hoạt nó trong hgrc của bạn.

hg crecord 

Edit:

  1. The Record phần mở rộng là không còn cần thiết. Giờ đây, các lệnh khác nhau hỗ trợ cờ -i hoặc —interactive. Ví dụ:

    hg commit -i 
    

    ... sẽ hỏi bạn từng đống những gì bạn muốn đưa vào.

  2. CRecord đã biến nó thành 3.8 thành tính năng cốt lõi.Thêm những điều sau đây để bạn .hgrc

    [ui] 
    interface = curses 
    

    Bây giờ, —interactive lệnh sẽ mang đến giao diện tương tự như phần mở rộng CRecord cũ.

7

Vì Mercurial 3.8.1 phần mở rộng crecord được tạo sẵn. Đảm bảo phần “ui” trong số .hgrc của bạn chứa interface = curses hoặc bạn gặp giao diện câu hỏi và trả lời không thoải mái.

[ui] 
interface = curses 

Sau đó, cam kết của bạn sẽ được tương tác để được hỏi về thư mục nào — hoặc — dòng nào bạn muốn đưa vào cam kết đó.

hg commit --interactive 
+0

Phải; xem https://www.mercurial-scm.org/wiki/RecordExtension –

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