Можно ли удаленно изменить свойство svn: externals хранилища Subversion? - PullRequest
17 голосов
/ 20 июля 2010

Я пытаюсь изменить свойство "svn: externals" удаленного репозитория с помощью этой команды:

svn ps svn:externals "vendor1 http://vendor_repo_here.com" http://main-repo-here.com

Я ожидаю, что приведенная выше команда изменит свойство "svn: externals" с того, что оно есть, на vendor1 http://vendor_repo_here.com".. Но выдает ошибку:

Setting property on non-local target 'http://main-repo-here.com' needs a base revision.

Итак, я пытаюсь это:

svn ps -r HEAD svn:externals "vendor1 http://vendor_repo_here.com" http://main-repo-here.com

Теперь там написано:

Cannot specify revision for versioned property 'svn:externals'

Я что-то не так делаю? Есть ли способ изменить это дистанционно через командную строку?

Ответы [ 5 ]

31 голосов
/ 29 ноября 2010

У меня была похожая проблема. Кажется, что Turtoise извлекает и затем фиксирует снова, поэтому я написал скрипт, который делает то же самое.

svn checkout <URL> repocopy --depth 'empty'
svn propget svn:externals repocopy > tmp2
//whatever you want to do > tmp_new
svn propset svn:externals repocopy -F tmp_new
svn commit -m "commit comment" tmp
rm -f -r repocopy
rm tmp2
rm tmp_new
4 голосов
/ 20 июля 2010

с помощью svn propset:

propset (pset, ps): установить значение свойства для файлов, каталогов или ревизий. использование: 1. propset PROPNAME PROPVAL PATH ... 2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]

  1. Изменяет версионный файл или свойство каталога в рабочей копии.
  2. Изменяет неверсионное свойство в ревизии репозитория. (TARGET определяет только доступ к хранилищу.)

svn: externals - это версионное свойство, которое нельзя изменить таким образом.

1 голос
/ 20 июля 2010

Можно изменить svn:externals удаленно, используя TortoiseSVN:

TortoiseSVN> Repo-Browser > (выберите svn: externals dir)> Показать свойства> Изменить

Это работает для меня.

Было бы интересно узнать, почему TortoiseSVN еще может svn.

0 голосов
/ 29 октября 2014

Когда вы устанавливаете Subversion, рядом с командой 'svn' установлена ​​другая команда, которая называется 'svnmucc'.'svnmucc' может устанавливать свойства url на основе командной строки.Это включает версионные свойства.

d:>svnmucc
enter code Subversion multiple URL command client
usage: svnmucc ACTION...

   Perform one or more Subversion repository URL-based ACTIONs, committing
   the result as a (single) new revision.

Actions:
   cp REV SRC-URL DST-URL : copy SRC-URL@REV to DST-URL
   mkdir URL              : create new directory URL
   mv SRC-URL DST-URL     : move SRC-URL to DST-URL
   rm URL                 : delete URL
   put SRC-FILE URL       : add or modify file URL with contents copied from
                       SRC-FILE (use "-" to read from standard input)
   propset NAME VALUE URL : set property NAME on URL to VALUE
   propsetf NAME FILE URL : set property NAME on URL to value read from FILE
   propdel NAME URL       : delete property NAME from URLhere
0 голосов
/ 29 ноября 2010

Propedit будет работать со свойствами ревизии, не уверен насчет пропета, но это должно сработать.

Однако : репо нужно будет изменить, чтобы разрешить редактирование свойств ревизии (в хуке pre-revprop-change), иначе они будут отклонены. После этого вы можете установить другие свойства ревизии, такие как автор, дата, комментарий в журнале и т. Д. (Конечно, ваш хук может стать умным, отвергая все изменения, кроме внешних, но вы должны знать, что вам придется кодировать эту возможность)

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

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