У меня есть список классов в моем хранилище, и я не хочу, чтобы одни и те же имена классов добавлялись дважды.
Моя цель — предотвратить фиксацию файлов с одинаковыми именами, т. Е. Если 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), но я хочу проверить файлы в репозитории.
Есть ли возможный метод?
Вы могли бы использовать 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
Обратите внимание, что это не будет ограничено определенной веткой. Если вам это нужно, команда дерева позволяет указать путь в качестве второго аргумента, см. документация.
Других решений пока нет …