2013-11-22 5 views
0

Как получить номер строки конкретной строки в ревизии истории?Как получить номер строки конкретной строки в истории?

К примеру, у меня есть

ревизии 123: строки 77: DoSomething()

в текущей версии (ревизии 123) кодового файла.

Я хочу знать, где была эта строка в предыдущей версии кода. Для предыдущей строки кода, я хочу получить свою информацию строки в правке 121

редакция 121: строка 71: йоЗотеЬЫпд()

Как это сделать в SVN (и в git)?

--- Чтобы быть более конкретным ---

Моя цель получить историю revisionNo-LINENO некоторого кода, построить некоторую функцию, чтобы удовлетворить запрос типа:

Где линия 77 в Rev.123 из XXX.java в Rev.121 => Строка 71.

Где линия 123 (новая в R123) в Rev.123 из XXX.java в Rev.121 => новый

Где Line 9999 (не существует в R123) в Rev.123 из XXX.java в Rev.121 => NotExist

+2

Если ваша цель чтобы найти, какие изменения/модификации вносили изменения, вы можете использовать команды 'git blame' или' svn blame'. – Alessandro

ответ

2

Я не думаю, что SVN и Git есть это встроенная команда, но вы можете использовать инструмент, подобный grep, чтобы узнать.

В СВН (где $ {Рева} и $ {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() 
Смежные вопросы