Можно ли удаленно изменить свойство "svn: externals" репозитория subversion?
Я пытаюсь изменить свойство "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'
Я что-то делаю неправильно? Есть ли способ изменить это дистанционно через командную строку?
Ответы
Ответ 1
У меня была аналогичная проблема. Turtoise, похоже, проверяет и затем фиксирует снова, поэтому я написал script, который делает то же самое.
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
Ответ 2
с помощью svn propset:
propset (pset, ps): задайте значение свойства для файлов, dirs или ревизий.
использование: 1. propset PROPNAME PROPVAL PATH... 2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]
- Изменяет свойство файла версии или каталога в рабочей копии.
- Изменяет непереведенное свойство в ревизии репозитория.
(TARGET определяет, к какому репозиторию будет доступ.)
svn: externals - это свойство с версией, которое невозможно изменить таким образом.
Ответ 3
Можно удаленно изменить svn:externals
с помощью TortoiseSVN:
TortoiseSVN > Repo-Browser > (выберите svn: externals dir) > Показать свойствa > Изменить
Это работает для меня.
Было бы интересно узнать, почему TortoiseSVN еще не может svn
не может.
Ответ 4
Propedit будет работать над свойствами ревизий, но не уверен в том, что делать с propset, но это должно работать.
Однако: репо должно быть изменено, чтобы разрешить редактирование свойств прав (в перехвате предварительного переопределения) или они будут отклонены. После этого вы можете установить другие свойства ревизии, такие как автор, дата, лог-комментарий и т.д. (Конечно, ваш крючок может стать умным, отклонить все, кроме внешних изменений, но вам нужно знать, что вам придется программировать в этой возможности)
Вам нужно будет установить редактор - я не думаю, что вы можете напрямую переопределить существующее значение (если это не делает propset), поскольку он ожидает показать вам существующее значение для редактирования.
Ответ 5
Когда вы устанавливаете 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 [email protected] 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