Как мне найти ревизию, которая изменила строку в моем коде, используя TortoiseSvn? - PullRequest
5 голосов
/ 29 октября 2009

У меня есть одна строка кода, которая кажется закомментированной. По сути, я хочу найти ревизию, которая изменила эту строку в коде.

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

Ответы [ 4 ]

9 голосов
/ 29 октября 2009

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

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

2 голосов
/ 29 октября 2009

Mezoid's Blame звучит правильно. Кроме того, я хотел бы поделиться техникой, которая может пригодиться пользователям svn из командной строки. (Речь идет о svn blame, но я использую синоним «annotate» или «svn ann», потому что «blame» звучит довольно резко!)

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

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

Просмотр вашего веб-интерфейса TRAC для svn показывает, что r2345 просто изменил отступ строки, это была не ревизия, на которой была введена строка. Итак, затем вы используете флаг -R (или -r, убедитесь, что svn help ann), чтобы указать ревизию на единицу меньше, чем ревизия, найденная на предыдущем шаге:

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

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

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

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

1 голос
/ 29 октября 2009

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

0 голосов
/ 21 сентября 2018

Я искал ту же самую функцию, и я оказался здесь, и я перестал искать дальше.

Но вот техника, которую я использую, и она может помочь кому-либо еще:

  1. Укажите интересующую линию. Последний звонок: линия 123.
  2. Используйте для черепахи, чтобы "показать журнал" файла.
  3. Рассмотрим полный список в журнале.
  4. Если вы не знаете, когда это могло произойти, используйте «настройку быстрой сортировки», то есть перейдите к ревизии в середине списка, щелкните правой кнопкой мыши и «сравните с рабочей копией».
  5. Если строка 123 существует (то же содержание, но, возможно, другой номер строки), то вам следует рассмотреть только нижнюю половину списка, в противном случае вы должны рассмотреть только верхнюю половину списка. Вернитесь к шагу 4.

Это легче сделать, чем объяснить. Поскольку этот текст предназначен для разработчиков, я понимаю, что нет необходимости добавлять больше деталей:)

...