【发布时间】:2017-07-31 01:20:09
【问题描述】:
我们有一个 SVN 设置,它经常发生分支合并。我目前正在迁移到 git。我正在使用 svn2git 进行迁移,但我认为这同样适用于 git svn。
似乎 svn git clone 不会保留来自 svn 的 mergeinfo,因为 svn 和 git merge 的工作方式不同?例如,在 dong git svn clone 之后迁移一个 svn 主干存储库(有或没有特性分支)。做git log --full-history 只会显示分支合并到的主干中的提交,但是这个合并引入主干的分支内的所有提交历史都不存在了,但是如果使用 TortoiseSVN 并启用它确实会在 svn repo 中显示'包括合并的回复'。似乎 svn 中的所有 mergeinfo 都没有保留/复制到 git master/trunk 存储库中?这是应该发生的事情吗?
我已经读到 SubGit 可以处理这个问题(我还没有尝试过)。但只是想确保 git svn clone 确实不会在 git 中保留来自 svn 存储库的 mergeinfo 属性/信息。
【问题讨论】:
-
我已经看到
git svn在 Git 中产生的合并。 -
合并没问题,只是合并分支中没有保留历史记录,例如,如果一个特性分支从主干中的回归 100 分支出来,并且提交 101 - 103,并且主干合并回特性分支在reversion 104中,在svn中,我可以看到101-104的reversion历史,但是在git中,我只能看到reversion history 100和104,合并后功能分支中101-103的历史在trunk中丢失。
-
如果您只克隆主干,这可能是真的。如果您还克隆功能分支,您将获得您期望的结果。至少我得到了你所期望的。
-
感谢@Vampire,是的,我目前也在克隆主干和分支。所以你是说合并信息对你有用吗?
-
是的。 :-)