使用tf.exe diff,我可以获得差异。
我可以将它与ediff一起使用来显示emacs中的差异吗?
我的印象是ediff通常需要2或3个文件。我只有一个文件和差异。
答案 0 :(得分:3)
您可能会选择使用
M-x ediff-patch-buffer
它将提示您输入补丁文件(如果已经打开缓冲区,则提示缓冲区),以及要修补的缓冲区。然后它会让你了解差异。
因为diff显示从存储库版本更改为当前版本,所以补丁方向错误。我会编写一个生成正确差异的命令并使用它 - 如果你真的想使用差异。
就个人而言,我可能会尝试插入一些代码来获取'ediff-revision
(我已经绑定C-x v -
)以使其工作。
或者只是写一些跟随这个伪代码的lisp(因为我没有tf来做实际的测试):
(defun ediff-tf-file-with-previous-version (file &optional version)
"DTRT and call ediff with the previous version of this file"
(interactive)
(ediff-files (progn
(unless version
(setq version (<parse-to-get-version> (shell-command (concat "tf.exe properties " file)))))
(shell-command (concat "tf.exe view " file (<munge-itemspec-version> version) " > " file ".older")))
file))
感谢R Berg的修复
看起来有人编写了一个基本的Team Foundation模式,您可以从wiki page here获取该模式。看起来它似乎没有将任何内容插入ediff
。
答案 1 :(得分:0)
这是我编写的一个脚本(我想!):
#!/bin/bash
# quit on error
set -e
# create a temporary file for the patched output
# note that the mkfifo command is optional - it will save disc space
patched_file=/tmp/diff_$RANDOM
mkfifo $patched_file
patch -o $patched_file "$1" "$2" &
vimdiff "$1" $patched_file
rm $patched_file