SVN вернуть единственное свойство в каталоге?
Как я могу восстановить одно из нескольких свойств в каталоге из командной строки SVN?
У моего svn trunk есть свойство svn: externals для импорта внешнего репо.
/trunk
svn:external = /external/trunk
Когда я настраиваю новую ветку foo, внешняя переменная также указывает на ветку:
/branches/foo
svn:external = /external/branches/foo
Иногда, когда я сливаю ветку обратно в ствол, это свойство копируется, и в итоге я получаю:
/trunk
svn:external = /external/branches/foo
Обычно я мог бежать svn revert . --depth=empty
отменить слияние свойств, но в каталоге есть и другие свойства, которые также будут возвращены, в частности svn:mergeinfo
, Из моего GUI-клиента я могу довольно легко вернуть отдельные свойства, но не всегда помню, как это сделать. Есть ли способ сделать то же самое прямо из строки svn cmd, или мне нужно написать какую-нибудь сумасшедшую оболочку для svn propget
получить и отменить различие?
2 ответа
svn propset svn:externals "$(svn propget svn:externals . -r HEAD)" .
это устанавливает для свойства значение HEAD. Это правильный обходной путь, так как revert
может применяться только ко всем свойствам и не существует для отдельных свойств.
Для моей будущей ссылки больше, чем для вас, видя, как у вас, вероятно, есть ответ...
svn propget PROPNAMETOREVERT `svn info | perl -ne 'print if s/URL: (.*)/\1/'` | perl -ne 'chomp; print' | svn propset PROPNAMETOREVERT -F - .
Работал для меня (для однострочного свойства, возможно, потребуется модификация для одного с несколькими строками).
Что может быть понятно из сценария:-)