Создавать историю изменений в файле в svn

Можно ли создать файл, который включает в себя сводную (что, когда, кем) всех изменений, сделанных в определенном файле? Используется для такой опции в VSS (я думаю, что она называлась "История" ), и было здорово возвращаться и отслеживать, кто внес определенные изменения и когда.

Кстати, я использую tortoisesvn

Заранее благодарю

Ответ 1

Щелкните правой кнопкой мыши файл в проводнике, затем "TortoiseSVN", "Показать журнал".

Снимите флажок "Скрыть несвязанные измененные пути" Снимите флажок "Остановить копирование/переименование" Проверьте "Включить объединенные версии" Нажмите "Показать все"

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

Как уже отмечалось ранее, у Tortoise есть функциональность "Blame", которая часто очень проницательна, но она может отображать только самые последние изменения в каждой строке источника. И если кто-то удалил строки, вы вообще не видите их изменения.

Edit:

Если вы хотите перейти к инструменту командной строки и bash, на этот вопрос был дан ответ: Как просмотреть все исторические изменения в файле в SVN

На ПК с Windows лучший способ получить bash и строку SVN командной строки - установить Cygwin.

Ответ 2

Здесь выполняется пакетный перенос файла bendin bash script в Как просмотреть все исторические изменения в файле в SVN:

@echo off

set file=%1

if [%file%] == [] (
  echo Usage: "%0 <file>"
  exit /b
)

rem first revision as full text
for /F "tokens=1 delims=-r " %%R in ('"svn log -q %file%"') do (
  svn log -r %%R %file%
  svn cat -r %%R %file%
  goto :diffs
)

:diffs

rem remaining revisions as differences to previous revision
for /F "skip=2 tokens=1 delims=-r " %%R in ('"svn log -q %file%"') do (
  echo.
  svn log -r %%R %file%
  svn diff -c %%R %file%
)

Обратите внимание, что для этого командного файла требуется, чтобы на вашем пути был клиент SVN с командной строкой (а не TortoiseSVN). Я лично использую SilkSVN, но есть несколько.

Ответ 3

Как упоминал @pajton, вы можете использовать svn log <filename>. документация содержит сведения/ограничения.

Ответ 4

Вы можете найти svn blame <filename> более полезным, потому что он скажет вам, кто/что/когда для конкретной ревизии файла.

Ответ 5

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