Создавать историю изменений в файле в 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
Я хотел бы добавить, что в недавнюю версию черепахи также входят инструменты командной строки, вам просто нужно выбрать их при установке