2010-08-19 13 views
9

Bir inceleme aracı için bir emacs modunda çalışıyorum ve diffs'i görüntülemek için edifi kullanmak istiyorum ... sorun, inceleme aracının sadece eski ve yeni dosyalardan ziyade bir fark yaratmasıdır. Eski dosyayı bir arabelleğe koymak ve dosyayı kopyalamak yerine bir alt uygulamayla değiştirmek ve ayrı bir arabelleğe yüklemek yerine bir diff uygulamak istiyorum.Bir arabelleğe yama uygulamak için elisp'te bir işlev var mı?

Bu, kendim yazmadan yapılabilir mi, bilen var mı?

cevap

8

ediff yama-tamponu ediff modda yama bir tampon için kullanılabilir

+0

Güzel bir ipucu, ancak bu, adına eklenmiş "_patched" içeren bir yamalı tampon oluşturacaktır. Bundan sonra içeriklerin el ile kopyalanması gerektiğini düşünüyorum. – Arne

7

İş akışınızın ne olduğuna bağlı olarak bu uygulanabilir veya uygulanamaz.

deneyin sizin gibi komutlar yapabileceğiniz itibaren

M-x diff-mode 

:

C-c C-a   diff-apply-hunk 
C-c C-b   diff-refine-hunk 
C-c C-c   diff-goto-source 
C-c C-d   diff-unified->context 
C-c C-e   diff-ediff-patch 

benim için en sezgisel akış 'diff-ediff-patch olduğunu.

Eğer C-c C-e çalıştırın bir yama bakarken, (file.to.patch diyelim) yaması dosya adını girin. Emacs daha sonra, orijinal dosyayı ve yamalı sürümü içeren iki arabellek edicisi olan file.to.patch.orig ve file.to.patch'u düzenleyecektir. Daha sonra düzenli olarak ediff kullanacaksınız. Akışın sonunda, istediğiniz dosya adında yamalı versiyonu var.

documentation for diff-mode'a bakın.

1

da bir yama (örneğin Gnus posta) ihtiva eden bir tampon maddesi sorar ve sorar M-x epatch vardır yama için bir dosya/dizin. Çok kullanışlı.