2014-01-07 64 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使用類似的規則。

相關問題