Как установить свойства Subversion с помощью git-svn

Есть ли способ установить свойства subversion в репозитории git, который был создан git-svn?

В моем случае я хочу редактировать версию svn:external, svn:ignore а такжеsvn:executable,

Тем не менее, единственный способ сделать это, кажется, заключается в проверке с клиентом Subversion. Есть ли способ редактировать свойства SVN без необходимости проверять хранилище дважды (один раз для Git и один раз с SVN для свойств)?

5 ответов

Решение

git-svn не поддерживает свойства Subversion. Когда я сталкиваюсь с этой проблемой, я обычно получаю две проверки.

Это упоминается в git-svn документация по ошибкам:

Мы игнорируем все свойства SVN, за исключением исполняемого файла svn:. Любые необработанные свойства записываются в $GIT_DIR/svn/<refname>/unhandled.log

Примечание: git 2.3.0 (февраль 2015) поддерживает Proset с git svn,
Смотрите коммит 83c9433 Альфреда Перлштейна ( splbio ):

git-svn: Поддержка для git-svn propset

Это изменение позволяет git-svn для поддержки настройки свойств Subversion.

Это полезно для ручной настройки свойств при фиксации в репозитории Subversion, для которой необходимо задать свойства, не требуя перемещения набора изменений в отдельную проверку Subversion для установки реквизита.

Следует отметить, что код не поддерживает добавление реквизита, кроме случаев, когда в файлах также происходят изменения содержимого.
Это продемонстрировано в тесте.

Итак, как видно из t/t9148-git-svn-propset.sh теперь это работает:

git svn propset "$1" "$2" "$file" 
# like
git svn propset "svn:keywords" "FreeBSD=%H" "foo"

Начал работать над патчем для поддержки git svn propset здесь: поддержка git svn propset

Это возможно, просто клонируйте свой SVN-репозиторий с помощью SmartGit. Он переводит svn: исполняемый файл, svn:externals и svn: ignore в исполняемый файл, .gitsvnextmodules и.gitignore. Таким образом, вы можете изменить их и отодвинуть, что приведет к изменению соответствующих свойств.

Если у вас есть доступ к вашему SVN-серверу, вы можете установить на него SubGit. Он переводит svn: исполняемый файл и svn: ignore на стороне сервера, предоставляя интерфейс Git для вашего хранилища SVN.

Вы также можете использовать svnmucc, если вы не хотите иметь полную проверку svn только для установки реквизита (мое удаленное репо действительно большое).

Вот моя команда для добавления строки в svn:ignore, replace URL, DIR и VALUE.

svnmucc -U URL propset svn:ignore "`git svn propget svn:ignore DIR; echo VALUE`" DIR
Другие вопросы по тегам