2009-02-25 33 views
6

Tôi đang sử dụng các emacs có cv và đã bật chế độ cv. Tôi muốn được đánh dấu các dòng thay đổi từ phiên bản mới nhất trong CVS. Tôi đã nhìn thấy điều này được thực hiện trong intellij, nơi có một dấu hiệu màu xanh lá cây cho dòng thêm và một dấu hiệu cho dòng sửa đổi và một biểu tượng thứ ba cho dòng bị xóa.Làm cách nào để đánh dấu các thay đổi CVS trong Emacs?

Có chế độ đánh dấu cvs cho emacs để hiển thị các thay đổi từ phiên bản cv mới nhất không? Tôi không tìm kiếm một chức năng loại cvs diff mà sẽ mở trong một bộ đệm mới, nhưng một cái gì đó sẽ chỉ ra trong bộ đệm hiện tại của tôi những gì dòng đã được sửa đổi.

Trong hình dưới đây có hình chữ nhật màu xanh ở bên trái Intellij gọi là "máng xối" để biểu thị mã khác với mã nguồn trong điều khiển nguồn.

intellij example http://www.jetbrains.com/idea/features/screenshots/60/actions.gif

Tôi đang tìm các chức năng tương tự trong biểu tượng cảm xúc.

+0

xin vui lòng s/cvs/vcs để chúng tôi nhận được câu trả lời cho bất kỳ git/bzr/hg/svn ... – elmarco

Trả lời

0

Có lẽ bạn muốn Ediff, dường như thực hiện chính xác những gì bạn muốn.

+1

Không chính xác những gì tôi đang tìm kiếm. Tôi muốn có một chế độ nhỏ để luôn có thể bật khi chỉnh sửa mã. Tôi cũng muốn so sánh trực tiếp với CVS mà không nhận được bản sao cục bộ thứ hai của phiên bản gốc. –

+0

IntelliJ xử lý việc này như thế nào? Nó có vẻ như những gì bạn đang yêu cầu là cực kỳ tốn kém ... – dwc

2

Đây là một câu trả lời khác không làm những gì bạn muốn, nhưng có thể hữu ích.

C-x v g 

chạy lệnh vc-annotate.

Điều đó sẽ bật lên bộ đệm mới (tôi biết, bạn không muốn một bộ đệm), nhưng nó sẽ có tất cả các dòng được đánh dấu bằng người đã chạm vào chúng khi nào. Và, tiền thưởng, chúng được mã hóa màu với một bản đồ nhiệt (màu đỏ là gần đây nhất, màu xanh là ít nhất), để dễ dàng xác định các thay đổi gần đây.

Tất nhiên phiên bản tích hợp của vc-chú thích không di chuyển bộ đệm một cách thích hợp, vì vậy bạn sẽ muốn lời khuyên này:

(defadvice vc-annotate (around vc-annotate-and-scroll) 
    "scroll buffer to view current line in the annotated buffer" 
    (let ((pos (count-lines (point-min) (point)))) 
    ad-do-it 
    (let ((orig-window (selected-window)) 
      (window (other-window-for-scrolling))) 
     (select-window window) 
     (goto-line pos) 
     (select-window orig-window)))) 

(ad-activate 'vc-annotate) 
+0

Nó đã được hữu ích ít nhất với tôi :) – claf

1

Bạn muốn vc-diff, mà là trên C-x v = theo mặc định. Điều này cung cấp cho bạn đầu ra diff thô trong một bộ đệm tạm thời. Bộ đệm sử dụng chế độ diff, trong đó có một vài thủ thuật gọn gàng ... ví dụ, bạn có thể sử dụng C-c C-e để áp dụng diff như một bản vá cho một tệp khác. Sử dụng describe-mode (C-h m theo mặc định) trong bộ đệm khác để tìm các thủ thuật khác.

4

Bây giờ bạn có thể xem diff-hl, cung cấp đánh dấu trên rìa cửa sổ bên trái.

Cho đến nay tôi đã thử nghiệm nó chỉ trên một vài DVCS hiện đại, nhưng nếu bạn vẫn đang sử dụng CVS, và nó không hoạt động tốt, xin vui lòng gửi một vấn đề.

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