2014-01-07 41 views
1

我有以下.config文件在我的克隆回购使用Git的svn:我的本地git-svn分支绑定了哪些远程分支?

[core] 
    repositoryformatversion = 0 
    filemode = false 
    bare = false 
    logallrefupdates = true 
    symlinks = false 
    ignorecase = true 
    hideDotFiles = dotGitOnly 
[svn-remote "svn"] 
    url = https://svn.domain.com:8443/svn 
    fetch = trunk:refs/remotes/trunk 
    branches = branches/{some_branch}:refs/remotes/branches/* 

当我做git branch -a,我得到:

$ git branch -a 
* master 
    remotes/branches/some_branch 
    remotes/trunk 

我怎么知道哪个偏远地方master分支(追踪)?请注意,看起来这个答案必须特定于git-svn,因为正常的git解决方案(例如git remote show origin)不起作用。

编辑
在仔细阅读我的问题后,我不确定它是否有意义。基本上我只想知道哪个SVN分支的'主'是必然的。我假设遥控器是分支机构,但它们实际上只是其他回购AFAIK的网址。所以,我真正想要的是远程SVN分支&本地分支之间的映射。

回答

1

我真正想要的是远程SVN分支&本地 分支之间的映射。

答案是:没有(至少不是通常意义上的)。

要阐述:

通常情况下,在Git中有两种类型的分支

地方分支机构可以链接到的(和一个远程跟踪分支(可能带有更改)的副本),则远程跟踪分支称为本地分支的“上游分支”。这种“上游关系”存储在repo配置(.git/config)中,并在git branch -vv的输出中可见。

现在的事情是:git-svn没有这个上游分支的概念

特别是,它不会在git config中存储上游关系,因此像git branch -vv这样的命令无法显示它。

git使用“上游分支”来决定从何处拉取和从哪里推(或多或少;它是可配置的)。相比之下,git-svn简单地回到本地分支的历史中,以最新的提交来自SVN(最新的提交“git-svn-id”)。这个提交也会命名它创建的SVN分支(即SVN仓库中的路径)(它是“git-svn-id”之后的字符串的一部分)。 git-svn将使用该SVN分支。

这在git-svn manpage描述:

注意以下规则:混帐SVN dcommit将尝试提交的SVN的顶部 在

git的承诺指定的日志--grep = ^混帐-svn-id:--first-parent -1

本手册没有提及,但我相信git svn rebase使用类似的规则。

相关问题