Я использую git как scm выбора, но должен использовать svn-repo. Я могу создать svn-remote-branch следующим образом:
git svn branch the_branch
Но как я могу удалить удаленную ветвь?
Я использую git как scm выбора, но должен использовать svn-repo. Я могу создать svn-remote-branch следующим образом:
git svn branch the_branch
Но как я могу удалить удаленную ветвь?
В настоящее время невозможно удалить ветвь SVN с помощью git -svn. Но удалить ветку с помощью SVN легко, даже не проверяя ее. Просто введите
svn rm $URL/branches/the_branch
Обратите внимание, что удаление ветки Subversion не приводит к ее удалению из репозитория git -svn. (Это намеренно, так как удаление ветки Subversion не приводит к потере информации, тогда как удаление ветки git заставляет ее существование забываться после следующей мусорной коллекции git.) Поэтому, если вы хотите, чтобы удаленная ветвь SVN была удаленный из репозитория git, вы должны сделать это вручную:
git branch -D -r the_branch
rm -rf .git/svn/the_branch
OR
rm -rf .git/svn/refs/remotes/f8745/ (for newer versions)
Чтобы удалить ветвь git, которая соответствует тегу Subversion, команды немного отличаются:
git branch -D -r tags/the_tag
rm -rf .git/svn/tags/the_tag
Это сработало для меня, спасибо. Не уверен, что моя среда просто другая, или это было изменено в более поздней версии git, но svn branch dirs были расположены в .git/svn/refs/remotes/, который был достаточно прост, чтобы найти исходные инструкции, изменение команды rm:
rm -rf .git/svn/refs/remotes/the_branch
Не уверен в тегах, так как я не использую их много.
Opps, верхний ответ был написан в 2009 году, теперь правильный способ удалить удаленный тег
svn rm svn://dev.in/branches/ios_20130709150855_39721/
git branch -d -r ios_20130709150855_39721
По состоянию на 2017 год у вас все еще нет git svn branch --delete
. (-d
опция есть, но для мистика --destination
)
Как описано в других ответах, выполните следующие шаги:
$ git log -1 $commit
git-svn-id: $url
в сообщении фиксации$ svn rm $url
Мне было слишком лениво сделать это и сделать псевдоним:
[alias]
svn-rm-branch = "!f() { if git_svn_id=\"$(git log -1 --format=%B \"[email protected]\" | grep -o '^git-svn-id:[^@]*')\" ; then svn rm --editor-cmd=\"$(git var GIT_EDITOR)\" \"$(echo $git_svn_id | cut -d' ' -f 2)\" ; else echo No git-svn-id in the message of the commit \"$(git rev-parse \"[email protected]\")\" 1>&2; fi }; f"