svn post-commit hook: сообщения об ошибке разрешения & пропущенных \ ip-адресов \ users \ myDir - PullRequest
0 голосов
/ 18 июля 2011

У меня установлен сервер Collabnet SVN на Windows. Кроме того, я реализовал хук post-commit, который должен обновлять рабочую копию «B» проекта, когда я фиксирую репозиторий из рабочей копии «A». Рабочая копия «B» находится на сетевом диске [H -> \\ ip-address \ users \ myDirB]:

  • Теперь, когда я укажу строку кода ниже, в моей ловушке post-commit и передам набор изменений из рабочей копии «A»:

SET WORKING_COPY=H:/myDirB

Я получаю ошибку: svn post-commit hook: "случай разрешения ошибок"

  • В качестве альтернативы, если я укажу: SET WORKING_COPY=//ip-address/users/myDirB

Я получаю ошибку:

"skipped \ ip-address \ users \ myDirB" "

Что я делаю не так? Приветствия.

Обратите внимание: * Сервер Collabnet Subversion установлен на моем диске C:

  • он работает как учетная запись службы с полными правами доступа к сетевому каталогу, который я хочу автоматически обновлять через ловушку post-commit, т.е.

  • У меня также есть путь \\ ip-адрес \ users \ myDirB, сопоставленный с H: диск

Ответы [ 3 ]

1 голос
/ 19 июля 2011

Я бы порекомендовал не использовать ловушку post commit для этого.Это будет вечно хрупким и сложным - как вы выясните.

Вы должны установить непрерывную интеграционную сборку, которая отслеживает репозиторий svn, а затем развертывает код при необходимости.Разделение этих проблем избавит вас от головной боли в будущем, обеспечит простой способ уведомления команды (IM, электронная почта или панель инструментов) и поможет вам, когда / если вы захотите провести какое-либо автоматическое тестирование.

1 голос
/ 18 июля 2011

SET WORKING_COPY = // ip-адрес / users / myDirB

не может работать, поскольку cmd.exe нужен простой путь (буква диска, двоеточие, относительный путь).Он не может иметь дело с другими путями, такими как UNC или IP-адреса.У него должна быть буква диска.

SET WORKING_COPY = H: / myDirB

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

0 голосов
/ 13 января 2012

две проблемы, с которыми я столкнулся, были (1) пути и (2) разрешения.Наша старая установка включала в себя сервер 1.5.5 Collabnet Subversion и Apache 2.2 для Windows 2008 R2 (теперь это wandisco 1.7.2 / apache2.2 для Win 2008 R2).

Первоначально у меня был путь в качестве подключенного диска, а службы Subversion и Apache, работающие в качестве учетной записи локальной системы.Итак, у нас было что-то вроде:

SET WORKING_COPY=X:\the\path\to\theworkingcopy

Запуск его через CLI был в порядке, но фиксация и выполнение через последующий хук привели к сообщению журнала, например

Error resolving case of 'X:\the\path\to\theworkingcopy'

Итак, я изменил WORKING_COPY наиспользуйте UNC-путь, такой как:

\\servername\DRIVELETTER$\the\path\to\theworkingcopy

Проблема все та же, но я решил, что службы (для обеих) необходимы для работы с сетевыми привилегиями, поэтому я изменил службу «Вход в систему» ​​на учетную запись доменадля сервера svn и apache.

Еще одна проблема, с которой я столкнулся, - это настройка домена для пользователя службы «Вход в систему».Я использовал пользователя домена, но использовал подстановочный знак для домена, например, ". \ Theuser"

Тогда это просто сработало.

Насколько это хрупкое решение, я бы согласилсячто CI - лучший путь.Несмотря на то, что наше обновление SVN через UNC (1) задокументировано и (2) работает сейчас, и (3) оно вряд ли изменится в ближайшем будущем - как отметил thekbb - это не разделяет проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...