Используйте хук перед фиксацией. Хук Pre-commit получает 2 аргумента:
# [1] REPOS-PATH (the path to this repository)
# [2] TXN-NAME (the name of the txn about to be committed)
Вам нужно использовать svnlook
, чтобы определить, есть ли файлы svn: needs-lock, которые не заблокированы.
Чтобы определить пути, измененные этим коммитом:
svnlook changed $1 --transaction $2
Проходить по файлам ($PATH
как элемент цикла) в «измененном» и определять svn: needs-lock, и если они в данный момент заблокированы:
svnlook propget $REPOS-PATH svn:needs-lock $PATH
svnlook lock $1 $PATH
Напишите в stderr и верните ненулевое значение, чтобы прервать этот коммит при необходимости.