Вопрос

Возможно ли манипулировать свойством подрывной деятельности, таким как svn:externals Только через URL? (т.е. без рабочей копии.)

Я бы хотел сценарий, который svn:externals к конкретному пересмотру, данный URL подрывной деятельности, но это кажется невозможным:

$ svn propset foo bar https://example.com/svn/myproject/trunk
svn: Setting property on non-local target 'https://example.com/svn/myproject/trunk' needs a base revision

$ svn propset foo bar -r HEAD https://example.com/svn/myproject/trunk
svn: Try 'svn help' for more info
svn: Cannot specify revision for setting versioned property 'foo'

$ svn propset foo bar --revprop -r HEAD https://example.com/svn/myproject/trunk
svn: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svn: At least one property change failed; repository is unchanged
svn: Error setting property 'foo': 
could not remove a property

(Я получаю те же результаты, если использую фактический номер ревизии вместо HEAD также.)

Это было полезно?

Решение

Нет. Изменение свойства в файле похоже на изменение самого файла - вам нужен рабочий каталог. Есть несколько команд подрывной деятельности, которые изменяют коммит, не требуя рабочей копии: svn cp, svn mkdir, а также svn delete. Анкет Все остальное нуждается в рабочем каталоге, чтобы внести изменения.

Кстати, вы можете внести изменения в ревизия Свойства без рабочей копии. Свойства ревизии - это такие вещи, как комментарий Commit (SVN: log), идентификатор комитета (SVN: Author) и время Commit (SVN: Date).

Другие советы

Да, хотя это немного взломать; SVN Propedit может изменить цели URL:

svn propedit foo --editor-cmd "echo bar>" http://example.com/svn/myproject/trunk -m "Property changed"

Вы можете использовать svnmucc командовать неинтерназитивно устанавливать свойства URL, такого как svn:externals.

Пример:

$ svnmucc --root-url https://example.com/svn -m 'reference other/yap' \
   propset svn:externals "^/otherproject/tag/xyz other
^/yetanother/tag/123 yap" myproject/trunk

Обратите внимание, что svnmucc также поддерживает другие команды, кроме propset и можно цепорить несколько команд в одном вызове (отсюда и имя). Результат - всего лишь один из изменений.

А svnmucc Команда является частью исходного пакета Subversion и обычно доступна через диспетчер пакетов Distribution. Например, Fedora 25 включает в себя в subversion-tools упаковка. OpenCSW даже включает его в основной пакет подрывной деятельности.

Опираясь на Виллема Отличный ответ, вот пример, показывающий, как установить SVN auto-props за needs-lock для всех файлов и mime-type Для конкретных расширений с использованием URL:

svn propedit svn:auto-props --editor-cmd "echo \"* = svn:needs-lock=*
*.os = svn:mime-type=application/octet-stream
*.osproj = svn:mime-type=application/octet-stream\" >" http://example.com/svn/myproject/trunk -m "Setting auto-props."
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top