如何获取历史修订中特定行的行号?
例如,我有
修订版123:第77行:doSomething()
在代码文件的当前版本(修订版123)中。
我想知道以前版本的代码中该行的位置。 对于上一行代码,我想在修订版121中获取其行信息
修订版121:第71行:doSomething()
如何在svn(和git)中执行此操作?
---更具体一点---
我的目的是获取一些代码的revisionNo-lineNo的历史,构建一些函数来满足查询:
Rev.121中XXX.java的Rev.123中的第77行=>第71行。
Rev.121中XXX.java的Rev.123中的第123行(r123中新增内容)=>新
Rev.121中XXX.java的Rev.123中的第9999行(r123中不存在)=> NotExist
答案 0 :(得分:2)
我认为svn和git没有内置功能,但您可以使用像grep这样的工具来查找。
在svn中(其中$ {reva}和$ {revb}是修订版,$ {file}是文件):
$ svn cat -r ${reva} ${file} | grep -n doSomething
19:void doSomething()
$ svn cat -r ${revb} ${file} | grep -n doSomething
49:void doSomething()
在git中:
$ git show ${reva}:${file} | grep -n doSomething
19:void doSomething()
$ git show ${revb}:${file} | grep -n doSomething
49:void doSomething()