哪个远程分支是我的本地git-svn分支绑定的?

时间:2014-01-07 15:40:40

标签: git git-svn

我使用git-svn在我的克隆仓库中有以下.config文件:

[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分支'master'被绑定。我假设遥控器是分支机构,但它们实际上只是其他repos AFAIK的URL。所以,我真正想要的是远程SVN分支和远程SVN之间的映射。当地分公司。<​​/ p>

1 个答案:

答案 0 :(得分:1)

  

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

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

详细说明:

通常,在git中你有两种类型的分支

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

现在的问题是: git-svn没有上游分支的概念

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

git使用“上游分支”来决定从哪里拉出以及在哪里推送(或多或少;它是可配置的)。

相比之下,git-svn只是在本地分支的历史中回溯到来自SVN的最新提交(最新的提交带有“git-svn-id”)。该提交还将命名SVN分支(即SVN repo中的路径)(它是“git-svn-id”之后的字符串的一部分)。然后git-svn将使用该SVN分支。

git-svn manpage

中对此进行了描述
  

请注意以下规则:git svn dcommit将尝试在顶部提交   

中命名的SVN提交      

git log --grep = ^ git-svn-id: - first-parent -1

手册中没有注明,但我认为git svn rebase使用了类似的规则。