用于“浏览” svn 修订历史记录的程序/脚本

用于“浏览” svn 修订历史记录的程序/脚本

正在寻找一个程序或脚本,我可以使用它们轻松地“浏览”特定文件的 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在修订历史记录中上下“翻页”。

只是为了解释这里发生了什么;

  1. svn log获取文件修改的修订列表。
  2. grep其中包含修订号的行。
  3. sed删除该行中的所有其他信息,仅留下修订号码。
  4. xargs(使用 -L 1)反复获取每个特定修订版的文件的差异,最后......
  5. less使其“可导航”

相关内容