3

我在我的工作场所使用 git-svn,因为我们当前的版本控制服务器是颠覆性的,并且目前似乎还没有完全切换到 git (*cry*)

我的工作流程如下我有以下分支

  • 主轨道遥控器/主干
  • 本地/0.4 跟踪远程/0.4
  • work 是我的 master 分支的开发分支
  • work-0.4 是我的本地/0.4 分支的开发分支

我在我的工作分支工作,然后我使用合并到 master 和 local/0.4

git merge --no-ff <branchname>

之后我通过 svn 签入

git svn dcommit

我用

svn.pushmergeinfo=true 

更新 svn:mergeinfo 属性,这样我的同事就不会因为我为他们弄乱元数据而生气:)

但是,我只是遇到了以下问题,这让我很困惑。

我在 work-0.4 分支上做了两次提交,然后我使用 git merge --no-ff work-0.4 将它们合并到我的 local/0.4 分支。在此之后,我做了 git svn dcommit 并收到以下消息

Committing to https://svn-server ...
e138050f6ebd2f2ca99cbefc5e48acae412e1f86 is merged into revision f5f2345e8e5fc64
20423bdc00397b5853b3759c4, but does not have git-svn metadata. Either dcommit the
branch or use a local cherry-pick, FF merge, or rebase instead of 
an explicit merge commit.

在对分支进行了一些变基和重置后,我设法将所有内容推送到 svn,但我的解决方案需要将我的 local/0.4 分支变基到 work-0.4 分支,这反过来意味着我没有压缩我的两个 git -提交到一个 svn-commit :/

我觉得我这里的工作流程可能有问题,可能与 svn.pushmergeinfo 有关。svn.pushmergeinfo 的文档说

config key: svn.pushmergeinfo
+
This option will cause git-svn to attempt to automatically populate the
svn:mergeinfo property in the SVN repository when possible. Currently, this can
only be done when dcommitting non-fast-forward merges where all parents but the
first have already been pushed into SVN.

老实说,我不太确定我理解正确吗?我在这里做了什么奇怪的事情导致 svn.pushmergeinfo 无法正常工作吗?我应该如何构建我的工作流程以正确使用 git-svn(设置正确的 mergeinfos 等)?

4

0 回答 0