4

我在具有标准布局的 Subversion 存储库之上使用 git-svn。

自从我们开始使用分支以来,git svn rebase它变得非常缓慢(尤其是在 Windows 机器上)并报告了大量以下警告:

[...]
W:unknown path/rev in svn:mergeinfo dirprop: /branches/2.0.x:3152
W:unknown path/rev in svn:mergeinfo dirprop: /branches/2.0.x:3157
W:unknown path/rev in svn:mergeinfo dirprop: /branches/2.0.x:3159-3196
[...]
W:svn cherry-pick ignored (/branches/2.0.x:852-853,855-861,865-884,3078,3081-3082,3102,3105-3109,3111,3119,3121,3125-3126,3129,3131,3133-3135,3138,3143-3144,3146-3147,3150,3152,3157,3159-3196,3198-3201,3208-3219) - missing 1 commit(s) (eg 606cd9303f245a6c93cea57ecf4d6faf585616cf)
r3222 = 240a0faa016ce74d708832a1d88e32b5f939bfb5 (refs/remotes/trunk)

它们是关于什么的(未知路径/版本和丢失的提交),我该如何解决它们以避免与 subversion 存储库的同步变慢?

我们真的坚持标准的 Subversion 存储库布局,并小心地从分支合并。所以svn:mergeinfo属性是正确的,而且都是有意义的。

PS:我注意到使用git svn fetch至少似乎可以最大限度地减少未知路径警告。但是,所有这些“缺少提交”的警告是关于什么的?

4

1 回答 1

1

这一切都来自 SVN 存储有关合并的元数据的方式以及 git 如何处理该信息。

最后,您将在 git repo 上看到每个分支上完成的所有 svn 提交,但是由于合并,您将看不到它们在那里......这很糟糕 IMO。

您可以阅读关于为什么会发生这种情况的一个很好的解释,甚至可以在这个答案中阅读一个很好的例子: https ://stackoverflow.com/a/9437882/1954768

我注意到使用 git 工具(例如 SmartGit)我可以将这些信息获取到 git repo。我认为这是因为该工具为每次提取运行一长串 git 命令。您可能会尝试重现这些命令以很好地完成转换......这完全取决于您想要它的程度:)

于 2014-05-19T11:40:20.667 回答