Я не думаю, что в SVN встроена эта функциональность, но если вы можете запускать команды на сервере, который содержит репозиторий SVN (и при условии, что на сервере есть стандартные доступные инструменты UNIX/Linux), этот сценарий bash должен это делать вы:
REPOS=/path/to/repos
FILE=dir/foo.xml
for rev in "$(svnlook history $REPOS $FILE | awk 'NR > 2 { print $1 }')"; do
rev_date=$(svnlook date -r $rev $REPOS | awk '{ print $1 }')
svnlook cat -r $rev $REPOS $FILE > ${rev_date}_${FILE}
done
Это создаст имена файлов в формате 2007-08-08_foo.xml
. Конечно, вы должны изменить /path/to/repos
в первой строке на фактический путь к файловой системе (не URL) репозитория, и dir/foo.xml
во второй строке на путь к файлу в репозитории ,
Если для вас действительно важно иметь подчеркивание в дате, измените строку 4 следующим образом:
rev_date=$(svnlook date -r $rev $REPOS | awk '{ print $1 }' | tr - _)
Также имейте в виду, что если файл когда-либо изменялся более одного раза в определенный день, в записанных файлах будет отражено только первое редактирование каждого дня.