Я пытаюсь проверить свои внешние данные через крючок SVN Pre-commit. svn:external содержит общую библиотеку для нескольких проектов. В хуке Pre-commit я хочу проверить, указывает ли внешний объект на каталог тегов, а не на ствол или ветку.
На моей локальной машине в папке рабочей копии я смог успешно выполнить команду:
svn propget svn:externals
Это вернуло мне внешний вид:
https://SVNSERVER/svn/Test_Lib/trunk Test_Lib
Хотя это работает на моей локальной машине, я не могу использовать команду svn в хуке Pre-Commit, поэтому мне нужна команда svnlook.
И здесь начинается моя проблема, я пробовал несколько команд на своем хуке Pre-Commit, например:
svnlook propget %REPOS% svn:externals -t %TXN%
Полностью выписано, что это:
svnlook propget C:\Repositories\Test_Project svn:externals -t 31-2y
Я пробовал несколько способов размещения %REPOS%
и %TXN%
, с кавычками и без них ("%REPOS%", "%TXN%")
и перемещая их до и после части svn:externals.
К сожалению, все, что я пробовал, приводит к сообщению об ошибке, что имя свойства или путь к репозиторию отсутствуют.
svnlook: E205001: Try 'svnlook help' for more info svnlook: E205001: Missing propname or repository path argument
Я искал Stack Overflow и нашел 1 человека, у которого была такая же проблема, но он не получил ответа на свой вопрос:
Попытка создать хук перед фиксацией, который проверяет внешние
Кто-нибудь знает правильный синтаксис для этого или другой способ запросить svn:externals через хук Pre-commit?
svnlook pg rep svn:externals tags/1.0.1/ -r 7
иsvnlook pg rep svn:externals trunk/ -r 6
, но они уже зафиксированы и находятся в репозитории, верно? И я хочу проверить их перед тем, как передать в репозиторий. Пожалуйста, поправьте меня, если я ошибаюсь. - person Roel Balink   schedule 26.10.2015-t %TXN%
и вашего пути к внешнему контейнеру в вашем репозитории. - person Lazy Badger   schedule 26.10.2015D:\Projects\Test_Project
, который находится на моем локальном ПК, а не параметр%REPOS%
в сценарии, который равенC:\Repositories\Test_Project
на ПК SVN Server? Если да, то как мне разобрать этот локальный путь к скрипту? Потому что, насколько я знаю, единственные параметры, которые я получаю в скрипте ловушки Pre-Commit, это%TXN%
и%REPOS%
? - person Roel Balink   schedule 26.10.2015svnlook pg %REPOS% svn:externals %PATH/IN/REPO% -t %TXN%
- person Lazy Badger   schedule 26.10.2015%PATH/IN/REPO%
в trunk/. Когда я фиксирую с помощью этой командыsvnlook pg %REPOS% svn:externals trunk -t %TXN%
, похоже, она работает. Спасибо за помощь, я думаю, что это%PATH/IN/REPO%
должно быть основано на текущей ветке, над которой я сейчас работаю. Я постараюсь исправить это и опубликую решение здесь. - person Roel Balink   schedule 26.10.2015