Làm cách nào để chỉnh sửa bộ đệm chống lại sửa đổi?


8

Tôi muốn chạy ediff để so sánh phiên bản hiện tại của một tệp (bằng git) với phiên bản của tệp trên một nhánh khác.

Tôi chạy M-x ediff-revisiontừ trong một bộ đệm mở cho tập tin được đề cập. Tôi trả lời hai câu hỏi:

  • So sánh các sửa đổi cho tập tin: Tôi để trống câu trả lời này (mặc định là bộ đệm hiện tại là chính xác).
  • Bản sửa đổi 1 để so sánh: Tôi chấp nhận lại mặc định ("phiên bản mới nhất của tệp mặc định").
  • Sửa đổi 2 để so sánh: Tôi nhập tên chi nhánh git

Điều này hoạt động tuyệt vời để xem sự khác biệt giữa hai tập tin. Tuy nhiên, tôi muốn có thể chỉnh sửa phiên bản hiện tại (nghĩa là bằng cách nhấn ahoặc bin ediff để sao chép hoặc xóa các khối khác nhau) và bộ đệm "phiên bản hiện tại" là bộ đệm chỉ đọc với tên được sản xuất ( file.~git-branch~). Tôi muốn bộ đệm "phiên bản hiện tại" là bộ đệm đọc-ghi mà tôi đã bắt đầu, không phải là bộ đệm chỉ đọc trên phiên bản của nhánh hiện tại.

Câu trả lời:


7

Emacs đang làm những gì bạn bảo nó làm thay vì những gì bạn muốn nói. ediff-revisionyêu cầu ba mẩu thông tin:

  1. Tệp để làm việc trên - mặc định: tệp mà bộ đệm hiện tại đang truy cập.
  2. Bản sửa đổi cũ - mặc định: bản sửa đổi mới nhất.
  3. Bản sửa đổi mới - mặc định: trạng thái hiện tại.

Ở bước 1, bạn chọn tệp, bạn không nói với Emacs rằng bạn muốn sử dụng tệp như trong bộ đệm. Mặc định cho bước 2 là phiên bản mới nhất, không phải bản sao làm việc hiện tại. Mặc định cho bước 3 là nội dung bộ đệm, là bản sao làm việc nếu bộ đệm không được sửa đổi. Với những gì bạn đã làm, bạn đang so sánh những gì bạn đã kiểm tra (thường là phiên bản mới nhất trên chi nhánh hiện tại) với một số chi nhánh khác, không phải bản sao làm việc với một số chi nhánh khác.

Bạn cần đặt tên chi nhánh làm phiên bản đầu tiên (bước 2) và để trống câu hỏi thứ ba để nói rằng bạn muốn sử dụng trạng thái bộ đệm. Bạn chỉ có thể chọn trạng thái bộ đệm hiện tại cho phiên bản 2, không phải cho phiên bản 1 (điều này được tích hợp ediff-vc-internal).


7

Khi sử dụng phép thuật :

  1. Sử dụng l -al lđể xem bản sửa đổi của tất cả các chi nhánh trong lịch sử của bạn
  2. đi đến dòng chứa bản sửa đổi mà bạn muốn so sánh nội dung bộ đệm hiện tại của bạn với.
  3. Nhập dvà bạn được yêu cầu sửa đổi để so sánh cây làm việc hiện tại với (mặc định là sửa đổi tại điểm). Xác nhận.
  4. Bạn sẽ có một cái nhìn tổng quan về các thay đổi của tất cả các khác biệt về tệp giữa cây làm việc hiện tại và bản sửa đổi. Đặt điểm vào tệp mà bạn quan tâm và nhấn eđể gọi một phiên ediff trên đó.

Magit cung cấp một số tùy chọn để hiển thị các phiên bản (bước 1). Bạn có thể chọn Nếu bạn có cấu trúc nhánh rất phức tạp, bạn có thể muốn sử dụng thêm một số bộ lọc để tìm bản sửa đổi mong muốn.


Tuyệt quá! Điều này thật đúng với gì mà tôi đã tìm kiếm. Chỉ là một điều ... Ý của bạn là -algì? Tôi chỉ bình thường làm l lhoặc l atrên bộ đệm trạng thái magit.
cháu trai

Điều này là cho một bố trí giao diện người dùng cũ của magit. Trong các phiên bản hiện tại bạn có thể sử dụng l a. Bố cục của Magit đã thay đổi khá nhiều lần trong 3 năm qua.
dfeich
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.