簡體   English   中英

為什么git svn遠程跟蹤停止工作?

[英]Why did git svn remote tracking stopped working?

我有以下設置

svn存儲庫

application
 |
 |-branches
 |  |
 |  |-develop-svn
 |
 |-trunk

本地git存儲庫

master
 |
 |-develop

主跟蹤遙控器/主干

開發track remotes / develop-svn

由於某種原因,開發停止跟蹤develop-svn。

當我從主人結帳開發時,我收到以下消息。

$ (master) git checkout develop
Switched to branch develop
Your branch is ahead of 'develop-svn' by 59 commits.

當我嘗試提交到svn存儲庫時,它會嘗試更新遠程主干。

$ (develop) git svn dcommit -n
Committing to https://servername/svn/application/trunk ...
...

它曾經提交到https:// servername / svn / application / branches / develop-svn

我已經嘗試過這個命令,但沒有幫助:

$ (master) git branch --set-upstream develop develop-svn
Branch develop set up to track local refs/remotes/develop-svn.
$ (master) git checkout develop
Switched to branch develop
Your branch is ahead of 'develop-svn' by 59 commits.
$ (develop) git svn dcommit -n
Committing to https://servername/svn/application/trunk ...
...

我的配置看起來像這樣

[svn-remote "svn"]
  url = https://servername/svn/application
  fetch = trunk:refs/remotes/trunk
  branches = branches/*:refs/remotes/*
  tags = tags/*:refs/remotes/tags/*

根據Pro Gitgit svn dcommit根據歷史上最新的svn-id決定推送哪個Subversion分支。 git svn文檔解釋了這是通過返回每個實例中第一個父項后面的歷史記錄來完成的:

如果你做了合並,請注意以下規則: git svn dcommit將嘗試在名為的SVN提交之上提交

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

因此,您必須確保要提交的分支的最新提交是合並的第一個父級。 否則會發生混亂,特別是如果第一個父級是同一SVN分支上的較舊提交。

(我相信你會注意到, svn-id的開頭是一個指向trunksvn-develop的URL,或者其他什么。)

所以,如果你在你所在的分支上嘗試該命令,它是否找到了你期望的提交? 或者你可能以某種方式重新組合或合並,可能會使最新的git svn提交(在上面的意義上)來自Subversion中的trunk而不是develop-svn分支?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM