Я написал хук перед фиксацией, который проверяет, обновляется ли магистральный файл version.txt по сравнению с version.txt в теге.
Когда я запускаю скрипт в консоли, все в порядке, но когда я пытаюсь зафиксировать, у меня это
Область аутентификации: http://localhost:80 Хранилище Subversion
Пароль для 'www-data': svn: E070014: Невозможно подключиться к
хранилище по URL 'http://localhost/svn/myrepo2/tags'
А также, если --force-interactive выключен
svn: E215004: аутентификация не пройдена, и интерактивное приглашение
отключен; см. интерактивную опцию --force
Я проверил все шаг за шагом, и кажется, что это та строка, которая вызывает проблему:
tag=$(svn list /some/path/tags --force-interactive | sort -n | tail -n 1 )
Есть ли какая-либо альтернатива svn ls для проверки последних тегов или файлов внутри тегов папок?
#!/bin/bash
#get latest tag
tag=$(svn ls /some/path/tags --force-interactive | sort -n | tail -n 1)
#get content of file from the latest tag
fileFromTag=$(svn cat /some/path/tags/$tag/version.txt)
#get content of file from trunk
file=$(svn cat some/path/trunk/version.txt)
#compare current file with file from latest tag
if [ "$fileFromTag" == "$file" ]
then
echo "Update version.txt"
exit 1
fi
А вот и структура хранилища
tags/
1.1.0/
version.txt
1.1.3/
version.txt
1.1.5/
version.txt
1.1.6/
version.txt
1.2.0/
version.txt
rel_1.0/
version.txt
trunk/
version.txt