如何使vc-diff输出更紧凑

时间:2013-11-19 13:31:40

标签: emacs rcs vcdiff

我正在做 C-x v = 来检查RCS控制下文件的当前差异(也就是说,它有一个带有,v后缀的关联文件。但是,输出几乎不可读,因为我更改了每个,比方说,第12行。所以我得到了这些巨大的差异块,我无法轻易推断哪条线被改变为其他线。

有没有办法让这个差异输出更具可读性和可用性(这样我可以快速跳转到源头)?

(我可以

  1. C-x v l 查看旧版本,然后
  2. 在最后一个上执行 f 检查。
  3. M-x ediff 文件
  4. 但这不是很方便)

2 个答案:

答案 0 :(得分:4)

您可能想尝试设置

(setq diff-switches '("-u"))

这样你的差异就会以统一的格式出现,这种格式会更加紧凑。如果这还不够,您可以尝试传递其他标志以减小“上下文”的大小(默认情况下为3行,之后为3行)。

答案 1 :(得分:2)

在RCS中的文件上运行vc-diff时,diff输出默认为“context diff”。这意味着旧的和新的块一个在另一个上面显示,并突出显示差异。更现代的版本控制系统产生“统一差异”,其中每组变化线的新旧版本相邻。

Emacs的diff-mode可以将差异从一种格式转换为另一种格式。键入 Cc Cu 将上下文差异转换为统一差异, Cc Cd 执行相反的操作。< / p>

例如,这个上下文差异:

*** bar.txt 2013/11/19 14:00:03 1.1
--- bar.txt 2013/11/19 14:00:11 1.2
***************
*** 1,5 ****
  one
  two
! tree
  four
  five
--- 1,5 ----
  one
  two
! three
  four
  five

将转换为统一的差异:

--- bar.txt 2013/11/19 14:00:03 1.1
+++ bar.txt 2013/11/19 14:00:11 1.2
@@ -1,5 +1,5 @@
 one
 two
-tree
+three
 four
 five

无论diff当前处于哪种格式,您都可以使用 C-c C-c 跳转到源文件中的相应行。如果找不到正确的文件,请使用 M-x diff-tell-file-name