Невозможно подключиться к хранилищу SVN - PullRequest
1 голос
/ 08 июля 2019

Я написал хук перед фиксацией, который проверяет, обновляется ли магистральный файл 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

1 Ответ

0 голосов
/ 09 июля 2019

Ошибка означает, что клиент svn не проходит проверку подлинности на сервере и кэшированные учетные данные отсутствуют.Но главная проблема - это команды, которые вы запускаете в своем скрипте ловушек:

  • Рассмотрите возможность переключения с svn клиента командной строки на svnlook.
  • Если по какой-то причине вам нужно использовать svn клиент командной строки в хуках, используйте файл: // URLs вместо HTTP (S) URL.Хук работает локально на одном компьютере с вашими репозиториями и сервером, поэтому имеет смысл получить прямой доступ к репозиториям.
...