Предположим, что неправильный файл FILE_030.dat и у вас есть 300 файлов. Тогда вы могли бы сделать следующее:
#!/bin/bash
mv FILE_030.dat some_directory/
for ((i=31; i<=300; i++))
do
filename=FILE_`printf "%03d" ${i}`.dat
if [ -e ${filename} ]
then
newi=$(( $i - 1 ))
newfilename=FILE_`printf "%03d" ${newi}`.dat
# This should not happen
if [ -e ${newfilename} ]
then
echo Error moving file ${filename} to ${newfilename}: ${newfilename} exists
exit
else
mv ${filename} ${newfilename}
fi
fi
done
Если ваши файлы имеют имена, такие как FILE_00030.dat, то есть с 5 цифрами, то вы должны изменить %03d
на 0%5d
в приведенном выше коде. В качестве проверки безопасности приведенный выше сценарий останавливается, когда переименованный файл уже существует.
StatSVN
генератор отчетов подверсии легкого веса. http://www.statsvn.org/
сначала генерируйте подробный файл журнала - svn log
выполненный StatSVN
, это - единственный файл банки.
StatSVN
предоставляет список метрик:
журнал svn является основной командой для получения сопутствующей информации файла, которую Вы ищете...
Trac (http://trac.edgewall.com) может использоваться, чтобы посмотреть детали SVN. Trac имеет хорошие функции как представление changeset, которое позволяет видеть другой changesets (и возвращаться или дальше через них). Это также представляет хороший UI, намного лучше, чем ViewVC (www.viewvc.org)
У Вас может быть вся та информация только через журналы пересмотра SVN. Вы могли бы хотеть полагать, что хороший инструмент как Подозрительный взгляд делает это для Вас все же.
SVN обеспечивает большую часть того, что Вы просите прямо из командной строки:
svn log /your/path
дает Вам исходный код diffs, авторов, даты регистрации и т.д.svnlook changed -r <rev> <path to repository>
дает Вам всем файлы, которые были затронуты в данном пересмотре. Цикл по всем соответствующим изменениям, и grep
для "A", который обозначает добавленные файлы.svn diff -r <first rev>:<last rev> <path>
дает Вам разность для всего промежутка измененийsvn log
). Что касается чтения доступа, я не знаю о встроенном механизме, однако можно, вероятно, создать собственное с небольшим усилием, в зависимости от конфигурации. Если Вы только предоставляете http доступ, можно использовать файлы журнала веб-сервера.Это не симпатично, но вывод SVN высоко структурирован так, можно сделать собственное форматирование легко.
Вот некоторые, что я раньше прежде давал взгляд на создание отчетов действия изменения и тенденции. Фильтрация не прекрасна, но можно получить идею:
set REPO_URL=svn://localhost/...
set REVISION_START=1
set REVISION_END=HEAD
set COMMAND=svn log %REPO_URL% -v -g -r %REVISION_START%:%REVISION_END%
set REG_EXPRESSION="^...[ACDIMRX].\/"
Затронутые элементы конфигурации:
%COMMAND% | find /c "/"
Changesets:
%COMMAND% | find /c "Changed paths"
Список уникальных файлов, которые были затронуты по данному диапазону пересмотра (у меня был установленный cygwin):
%COMMAND% | findstr /r %REG_EXPRESSION% | sort | uniq -u
Смотрите на codesaga. Это делает хорошее задание из визуализации фиксаций управления исходным кодом. Я не могу ручаться за часть создания отчетов.
Эта программа могла бы выручить Вас, не с аудитами, но обновлениями
http://www.svnmonitor.com/default.shtml
Для наблюдения фактических доступов к SVN необходимо было бы проанализировать журналы сервера Apache (предполагающий обслуживание SVN по Apache).