最好删除旧代码而不是仅仅将其注释掉.通常声称,如果需要,可以在旧的SVN存储库修订版中再次找到旧的代码部分.
但实际上,这并不容易,对吧?如果旧代码在某个未知的旧SVN版本中,则很难找到.
我现在正处于这种状况:有一个我不再需要的功能了,我应该抛弃它,因为它在SVN中,但我犹豫不决,因为我可能需要它,我担心它会发生难以在存储库中找到.
当然,总是可以发出一条提交消息,说"删除了函数myFunction",但有时你不能注意提交消息中的每一个小代码删除,并且查看所有提交消息再次查找内容也很繁琐. .
一个自动工具会更好,类似于
svn find "void myFunction\(" my-file.cc
这会告诉我不同版本的不同结果.这样的事情存在吗?
编辑:其他版本控制系统有吗?Git也许?(这就是改变的理由,我会说.)
更新:所以没有真正的答案,除了shell
我偶然发现的微小的脆弱脚本(见下面的答案).我想,这对SVN来说真是太遗憾了.在早期版本中查找内容应该是版本控制的核心功能之一.有没有人有更多的信息?
我再搜索了一下,发现了以下脚本(见这里).我简单测试了一下它似乎工作正常:
rev_grep.sh ===================== #!/bin/ksh URL=$1 REGEX=$2 LAST_REV="n/a" svn log -q $URL | perl -ne 'print "$1\n" if /^r(\d+)/' | while read r do ##svn cat -r $r $URL | grep "$REGEX" > /dev/null BUFFER=`svn cat -r $r $URL | grep "$REGEX"` RET=$? if [ $RET -eq 0 ] then echo "Match in revision: $r. Removed in $LAST_REV." echo $BUFFER exit 0 elif [ $RET -ne 1 ] then ## grep hit an error exit 2 fi LAST_REV=$r done exit 1
唯一的问题是,如果您的存储库需要密码,您必须多次输入密码.