有没有办法在CVS回购中创建文件的差异b / w它的前两个版本?我不关心修订号和本地签出文件。我需要的是,最后一次提交的差异和提交前的最后一次提交。
答案 0 :(得分:29)
您可以使用
cvs diff -r FIRSTREVISION -r SECONDREVISION filename
比较两个修订版。
可以直接进行比较,但我们也可以通过处理cvs log filename
的结果来自动进行比较。因此,例如,您可以使用
cvs log filename | grep ^revision | head -n 1 | cut -c 10-
以及之前的修订版
cvs log filename | grep ^revision | head -n 2 | tail -n 1 | cut -c 10-
您希望将这些合并在一起,因此请创建一个BASH脚本文件(例如名为 lastdiff.sh ),其中包含:
cvs diff -r $(cvs log $1 | grep ^revision | head -n 2 | tail -n 1 | cut -c 10-) -r $(cvs log $1 | grep ^revision | head -n 1 | cut -c 10-) $1
然后你可以通过使用文件名作为参数来执行它,例如, ./lastdiff.sh
文件名。
答案 1 :(得分:1)
我原本希望有一个明显的cvs选项,我错过了,但可怕的脚本解决方案似乎就是这样。如果由于某种原因你还在使用cvs,你可能会发现这个改进很有用:
cvs diff $(cvs log $FILE |
grep "^revision" |
sed "s/^revision/-r/
2q") $FILE
这使用sed从单个调用" cvs log"中获取两个最新版本。并直接从该输出创建-r选项。
答案 2 :(得分:0)
您可以使用cvs diff
找出本地签出版本与头部版本之间的差异。
cvs diff -r ver1 -r ver2 <FILE-NAME>