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 - .

Работал для меня (для однострочного свойства, возможно, потребуется модификация для одного с несколькими строками).

Что может быть понятно из сценария:-)

Другие вопросы по тегам