Как получить все ревизии определенного файла в хранилище SVN

svn log fileName|cut -d" " -f 1|grep -e "^r[0-9]\{1,\}$"|awk {'sub(/^r/,"",$1);print "svn cat fileName@"$1" > /tmp/fileName.r"$1'}|sh


Данная команда предназначена для получения всех ревизий определенного файла в хранилище SVN.

Пояснение команды:
1. «svn log fileName» — обращается к SVN и выводит журнал изменений, относящихся к указанному файлу.
2. «cut -d» » -f 1″ — используется для выделения первого слова (ревизии) из вывода предыдущей команды.
3. «grep -e «^r[0-9]\{1,\}$»» — фильтрует только те строки, которые начинаются с «r» и имеют одну или более цифр.
4. «awk {‘sub(/^r/,»»,$1);print «svn cat fileName@»$1″ > /tmp/fileName.r»$1’}» — обрабатывает каждую строку, удаляет «r» из начала и использования переменной $1, формирует команду «svn cat» для получения содержимого файла на определенной ревизии и перенаправляет вывод в файл с именем, включающим ревизию.
5. «|sh» — выполняет полученные команды.

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

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *