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

У меня есть список классов в моем хранилище, и я не хочу, чтобы одни и те же имена классов добавлялись дважды.

Моя цель — предотвратить фиксацию файлов с одинаковыми именами, т. Е. Если abc.class.php уже существует в каком-либо каталоге, пользователь не может добавить abc.class.php в репозиторий.

Я старался

CHANGED=`$SVNLOOK changed -t "$TXN" "$REPOS" | grep "^[A]" | $AWK '{print $2}' | grep \.class.php$`
for FILENAME in $CHANGED
do
AlreadyFoundFile=$(locate $FILENAME ./var/www/html/REPO/)

if [ $AlreadyFoundFile ]
then
echo "WARNING-  "$FILENAME" - class name already exist" 1>&2
exit 1
fi
done

это проверка подтвержденных файлов в / var / www / html / REPO / (checkedOut Branch), но я хочу проверить файлы в репозитории.

Есть ли возможный метод?

1

Решение

Вы могли бы использовать svnlook tree:

CHANGED=`$SVNLOOK changed -t "$TXN" "$REPOS" | grep "^[A]" | $AWK '{print $2}' | grep \.class.php$`
tree=$( svnlook tree "$REPOS" )

for FILENAME in $CHANGED
do
if grep -q "$FILENAME" <<< "$tree"then
echo "WARNING-  "$FILENAME" - class name already exist" 1>&2
exit 1
fi
done

Обратите внимание, что это не будет ограничено определенной веткой. Если вам это нужно, команда дерева позволяет указать путь в качестве второго аргумента, см. документация.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]