Кто какую строку изменил?

Иногда вам необходимо узнать не только какие из строк изменились, но также и то, кто именно изменил определённые строки в файле. И в этом случае может пригодиться команда TortoiseSVNАвторство..., иногда называемая также аннотирование.

Эта команда выводит для каждой строки в файле её автора и ревизию, в которой она была изменена.

Авторство для файлов

Рисунок 4.60. Диалог авторства/аннотирования

Диалог авторства/аннотирования


Если вас не интересуют изменения из ранних ревизий, вы можете указать ревизию, начиная с которой будет выполняться команда. Задайте значение 1, если вы желаете получить авторство всех ревизий.

По умолчанию файл авторства просматривается с помощью TortoiseBlame, который подсвечивает разные ревизии для более простого чтения. Если вы хотите напечатать или редактировать файл, то выберите Использовать программу просмотра текста для показа авторства.

Вы можете указать, каким способом будут обрабатываться изменения завершений строк и пробельных символов. Эти возможности описывает «Параметры сравнения завершений строк и непечатаемых знаков». Поведение по умолчанию - считать все различия в пробельных символах и завершениях реальными изменениями, но если вы желаете проигнорировать изменение отступа и найти первоначального автора, вы можете выбрать здесь соответствующую возможность.

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

После того, как вы нажмёте ОК, TortoiseSVN начнёт извлекать данные для создания файла авторства. После того, как процесс получения информации об авторстве завершится, результат записывается во временный файл и вы можете его просмотреть.

Рисунок 4.61. TortoiseBlame

TortoiseBlame


TortoiseBlame, входящий в TortoiseSVN, упрощает чтение файла авторства. При наведении указателя мыши на строку в столбце информации об авторстве все строки из той же ревизии отображаются с затемнённым фоном. У строк из других ревизий, изменённых тем же автором, тоже изменяется фон, но оттенок фона более светлый, чем у ревизии под указателем. Цветовая подсветка может не работать так хорошо, если ваш дисплей работает в режиме отображения 256 цветов.

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

Комментарии к ревизии (сообщения журнала) показываются во всплывающей подсказке всякий раз при наведении указателя мыши на колонку информации об авторстве. Если вы желаете скопировать сообщение журнала этой ревизии, используйте контекстное меню, появляющееся при правом щелчке в этой же колонке.

Вы можете производить поиск в отчёте об авторстве при помощи ПравкаНайти.... Это позволяет искать в номерах ревизий, авторах и в содержимом файла. Сообщения журнала в область поиска не включены - для поиска в них вы должны использовать диалог журнала.

Вы также можете перейти к строке с нужным номером при помощи ПравкаПерейти к строке....

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

Если вам нужен более наглядный индикатор того, где изменения более новые, а где более старые, отметьте опцию ВидОбозначать цветом возраст строк. После этого для показа возраста строк будет использован цветовой градиент: более новые строки будут иметь красный оттенок, более старые - синий. Цвет, используемый по умолчанию, довольно светлый, но вы можете изменить его в настройках TortoiseBlame.

Если вы используете отслеживание слияний и вы запросили информацию о слиянии когда запустили просмотр авторства, то объединенные строки показываются немного по-разному. Там где строка изменилась в результате объединения из другого пути TortoiseBlame покажет ревизию и автора последнего изменения в оригинальном файле вместо ревизии, в которой было слияние. Для обозначени таких строки ревизия и автор написаны курсивом. Ревизия, в которой было слияние, показывается отдельно во всплывающей подсказке при наведении курсора мыши на колонку с информацией об авторстве. Если вы не хотите, чтобы объединенные строки отображались таким образом, то выключите флажок Включая данные о слияниях при запуске просмотра авторства.

Если вы хотите видеть пути, участвовавшие в слиянии, то выберите ViewСлитые пути. Это покажет путь, в котором строка была изменена последний раз, за исключением изменений в результате слияния.

Ревизия показанная в информации об авторстве предствляет последнюю ревизию, в которой содержимое этой строки было изменено. Если файл был создан путём копирования другого файла, то пока вы изменяете строку, её ревизия авторства будет показывать последнее изменение оригинального файла исходника, а не ревизию, где была копия. Это также применяется к путям, отображаемым в информации о слиянии. Путь показывает расположение в хранилище, где было сделано последнее изменение этой строки.

До настроек TortoiseBlame можно добраться, используя TortoiseSVNНастройки... на вкладке TortoiseBlame. Подробнее об этом рассказывает «Настройки TortoiseBlame».

Авторство различий

Одно из ограничений отчета об авторстве то, что он показывает только файл в определенной ревизии и последнего автора изменившего каждую строку. Иногда вы хотите знать какие изменения были сделаны, а также кто их сделал. Если вы сделаете правый клик на строке в TortoiseBlame, то получите контекстное меню для показа изменений, сделанных в этой ревизии. Но если вы хотите увидеть изменения и информацию об автостве одновременно, то вам нужна комбинация отчета о различиях и авторстве.

Диалог журнала ревизий предоставляет несколько возможностей, которые помогают вам это сделать:

Авторство ревизий

В верхней панели выберите 2 ревизии и выполните Контекстное менюАвторство ревизий. При этом будут извлечены данные об авторстве для этих двух ревизий, после чего будет вызвана программа просмотра различий для сравнения двух получившихся файлов, содержащих информацию об авторстве.

Авторство изменений

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

Сравнить с рабочей базой вместе с просмотром авторства

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