正在寻找一个程序或脚本,我可以使用它们轻松地“浏览”特定文件的 SVN 修订历史记录。有人知道这是否存在吗?我可以使用 svn 的命令行客户端来实现这一点吗?
我希望能够做的事情是:
- 请求修订版 x 和 x-1 之间的文件差异(我使用一个脚本在 vimdiff 中显示差异,类似于:http://tierseven.net/wiki/index.php?title=Svndiff.sh)
- 在 vimdiff 中,调用 'next' 或 'prev' 命令,并显示 x 和 x-2 之间或 x-1 和 x-2 之间的差异
我会在 bash/sed/awk 中找到一些东西,但我更愿意使用一些已经存在的东西。
答案1
svn log -q -v filename
并处理 revlist 的输出
svn diff -c M filename
修订版 M 中的文件名更改
答案2
svn log FILENAME_GOES_HERE --limit 20 | grep -P 'r\d+ \|' | sed s/^r// | sed s/\ .*// | xargs -L 1 svn diff DancerAdmin/templates/Common/inputs/ss-dropdown.html -c | less
可能有比 sed 更好的方法来使用 awk 来完成此操作,或者甚至有更好的方法来使用 sed 来完成此操作,但这种方法是可行的。
将此文件的最后 20 个版本输出到less
。从那里,您可以搜索索引:(/Index:[Enter]
)然后使用n
/N
在修订历史记录中上下“翻页”。
只是为了解释这里发生了什么;
svn log
获取文件修改的修订列表。grep
其中包含修订号的行。sed
删除该行中的所有其他信息,仅留下修订号码。xargs
(使用 -L 1)反复获取每个特定修订版的文件的差异,最后......less
使其“可导航”