Подтвердить что ты не робот

Можно ли удаленно изменить свойство "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'

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

4b9b3361

Ответ 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