繁体   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