我不得不忽視一些分支,因爲他們使用的是非法字符,我無法使用git svn
(在我的案例中,字符是:
和/
)。
解決方法1:手動添加額外的SVN倉庫,每個分支
與git svn init -s [svn-repository-url]
初始化存儲庫後,我評論的分支配置.git/config
出:
[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
來源:How do Git SVN ignore-paths work (ignoring daily build tags)?或有一些實際的配置,例如, 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+optionsgit svn --ignore-paths
只忽略提交的內容。因此,它仍然會爲分支名稱創建一個ref。如果分支名稱包含非法字符,則失敗。 (此外,與您的假設相反,ignore-paths
匹配除URL部分之外的所有內容,例如,使用上述配置(如project-name/branches/your-branch-1
)。)