svnlook cat:: batch скрипт для ограничения размера коммита до 10МБ
Я работаю над созданием сценария ловушки перед фиксацией, который ограничит пользователей (разработчиков) до 10 МБ. Так что это поможет уменьшить размер хранилища. Ниже приведен скрипт, который необходимо запустить на сервере Windows с использованием Subversion 1.8.
@echo off
setlocal
@CD C:\Progra~2\VISUAL~1\bin
Set REPOS=%1
Set TXN=%2
Set MAX_SIZE=10485760
svnlook cat %REPOS% -t %TXN% | Set size=%%~ZA
If %%size%% GEQ %%MAX_SIZE%% (goto err) else exit 0
:err echo. 1>&2
echo Your commit has been blocked because your commit size is greater than 10MB 1>&2
echo Please reduce your commit file size to below 10MB and try again 1>&2
echo Thanks 1>&2
exit 1
Ошибка при получении: Не удалось выполнить фиксацию (подробности приведены ниже): фиксация заблокирована ловушкой перед фиксацией (код выхода 1) с выводом: svnlook: E205001: попробуйте 'svnlook help' для получения дополнительной информации svnlook: E205001: Отсутствует аргумент пути к репозиторию
Если кто-нибудь может помочь по этому сценарию. Спасибо!
1 ответ
Решение
- С
svnlook cat
вы можете выводить только отдельные файлы - Чтобы получить размер любого файла в транзакции, вы должны использовать другую подкоманду:
filesize
filesize
работает на основе файлов, вы должны передать вxargs
(или это Win-замена) список файлов в транзакции сchanged
субкоманда