2009-10-29 1 views
5

У меня есть одна строка кода, которая кажется прокомментированной. В основном то, что я хочу найти, - это ревизия, которая изменила эту строку в коде.Как найти ревизию, которая изменила строку в моем коде с помощью TortoiseSvn?

Итак, возможно ли увидеть изменения в коде, связанные с определенным ключевым словом в журнале TortoiseSvn?

ответ

9

Что вы хотите сделать, это сделать Blame в этом исходном файле, и он покажет вам изменения, которые меняли каждую строку кода.

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

+0

Есть ли способ найти * все * ревизии определенная строка была изменена? Вина только даст мне последнюю ревизию. –

+0

Нет, это только покажет вам, кто изменил линию последним. Он хотел, чтобы он мог указать на линию и показать, в каких изменениях эта линия была изменена (мое недооценка вопроса). –

+0

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

1

Вы можете щелкнуть правой кнопкой мыши файл в своем репо и выбрать TortoiseSVN-> Показать журнал, чтобы получить изменения, на которые повлиял этот файл. В линейной основе я не знаю.

2

Звучит мезоид правильно. В стороне, я хотел бы поделиться техникой, которую пользователи командной строки svn могут найти полезными. (Речь идет о svn вине, но я использую «аннотированный» синоним или «svn ann», потому что «винить» звучит немного грубо!)

ОК, поэтому у вас есть интересующая вас линия, и это имеет на ней отличительную строку «отличительная строка». Вы хотите прочитать сообщение о фиксации, когда строка была впервые введена, но она может быть отредактирована несколько раз. Итак, вы идете вперед и сделать это:

# svn ann that.file | grep distinctiveString 
2345  yada yada distinctiveString blah blah 

Посмотрите на свой веб-интерфейс ПРОФ для СВН показывает, что r2345 просто изменил отступ строки, он не был пересмотр, на котором была представлена ​​линия. Так что в следующий использовать флаг -R (или -r, делать Svn помощь ANN, чтобы убедиться) указать ревизию один меньше, чем ревизии, которую вы нашли в предыдущем шаге:

# svn ann -R 2344 that.file|grep distinctiveString 
2211 yada yada distinctiveString blah blah 

Полоскание и повторяться до тех пор, пока не найдете оригинал.

Вы можете пропустить поиск TRAC на каждом шаге, просто повторяя, пока вы больше не видите линию, и возьмите результат предпоследней итерации.

OK, это немного сложно, но если вы действительно хотите знать, кто представил эту строку, он выполнит эту работу. Это может сэкономить ваше время, если исходное сообщение фиксации объясняет намерение неясного фрагмента кода, который в противном случае выглядит так, как будто его можно удалить.

+0

Мне это нравится. Я должен попробовать это некоторое время. – mezoid