Мне также пришлось игнорировать некоторые ветви, потому что они использовали недопустимые символы, которые я не мог получить с помощью git svn
(в моем случае это были :
и /
).
Решение 1: вручную добавить дополнительные svn-репозитории для каждой ветви
После инициализации вашего репозитория с помощью git svn init -s [svn-repository-url]
Я прокомментировал конфигурацию ветви в .git/config
out:
[svn-remote "svn"]
url = [svn-base-url]
fetch = [project-name]/trunk:refs/remotes/trunk
#branches = [project-name]/branches/*:refs/remotes/*
tags = [project-name]/tags/*:refs/remotes/tags/*
Чтобы добавить ветки позже, я сделаю это, добавив новые местоположения SVN для каждой ветки, например,
[svn-remote "svn-your-branch"]
url = [svn-base-url]
fetch = [project-name]/branches/your-branch:refs/remotes/your-branch
Источник: Как работает Git SVN ignore-paths (игнорируя теги ежедневной сборки)? или с какой-либо фактической конфигурацией, например http://www.dmo.ca/blog/20070608113513/
Решение 2: Явно укажите ветви, которые вам нравятся в вашей конфигурации
Вы можете определить ветви для выборки в .git/config
:
[svn-remote "svn"]
url = [svn-base-url]
fetch = [project-name]/trunk:refs/remotes/trunk
branches = [project-name]/branches/{your-branch-1|your-branch-2}:refs/remotes/*
tags = [project-name]/tags/*:refs/remotes/tags/*
Если после извлечения всего из svn можно добавить ветки позже, я предпочту это решение.
Источник: https://stackoverflow.com/a/3844508/709431
Почему не работают пути игнорирования?
Согласно http://go -dvcs.atlassian.com / display / aod / Advanced + git-svn + options git svn --ignore-paths
только игнорирует содержимое коммитов.Таким образом, он все равно создаст ссылку для имени ветви.Это не удастся, если имя ветви содержит недопустимые символы.(Кроме того, вопреки вашему предположению, ignore-paths
соответствует всему, кроме URL-части, например, с конфигурацией, указанной выше, например project-name/branches/your-branch-1
.)