2013-11-22 46 views
0

如何获取历史修订中特定行的行号?如何获取历史修订中特定行的行号?

例如,我有

修订123:线77:doSomething的()

在代码文件的当前版本(修订123)。

我想知道WHERE是以前版本的代码中的这一行。 对于上一行代码中,我想获得它的线路信息,修订121

修订121:行71:DoSomething的()

如何做到这一点的SVN(和在git中)?

---更具体---

我的目的是得到一些代码revisionNo-lineNo的历史,建立了一些功能来满足查询,如:

在哪里在Rev.121 XXX.java的Rev.123线77 =>线71.

哪里是123线(新中R123)在XXX.java的Rev.123在Rev.121 =>新

凡为9999线(在R123不存在)在Rev.121 XXX.java的Rev.123 =>办法抹杀

+2

如果你的目的是要找到哪个提交/修订引入了更改,可以使用'git blame'或'svn blame'命令。 – Alessandro

回答

2

我不认为SVN和Git有这种内置的,但你可以用一个像grep的工具找出来。

在SVN(其中$ {REVA}和$ {revb}是修订和$ {文件}是文件):

$ svn cat -r ${reva} ${file} | grep -n doSomething 
19:void doSomething() 

$ svn cat -r ${revb} ${file} | grep -n doSomething 
49:void doSomething() 

在混帐:

$ git show ${reva}:${file} | grep -n doSomething 
19:void doSomething() 

$ git show ${revb}:${file} | grep -n doSomething 
49:void doSomething()