git-svn"找不到revmap" - 这是什么意思?

spi*_*ech 37 git git-svn

在运行时git svn clone以及在后续git svn fetch操作期间,我会收到许多文件夹的消息:

Couldn't find revmap for <SVN folder URL>
Run Code Online (Sandbox Code Playgroud)

我的存储库似乎工作正常.这条消息是什么意思?我应该关注它吗?

Chr*_*ris 36

我没有完整的答案,但这个错误是由git-svn.perl生成的.(相关的代码路径似乎是do_fetch - > make_log_entry - > find_extra_svn_parents - > lookup_svn_merge.)该代码似乎试图查看svn merge commit的svn:mergeinfo属性以找出其所有的父提交/分支,希望把它转换成git clone中一个漂亮的多父合并提交.如果该父分辨率失败,您的提交仍将被提取到git中; 它只是没有相同的父信息.

到目前为止,我还没有亲自发现由于此错误导致的任何大问题,因为我目前的主要用例是将svn repo转换为git; git-svn已经能够解决对我来说真正重要的大合并,到目前为止这些错误似乎仅限于单独的樱桃选择合并或旧的分支,我不再关心了.

实际上,乍一看,在我的情况下,大多数这些错误都源于提交,其中svn:mergeinfo被记录在我解释为svn中的错误级别.在svn repo中,我们通常尝试在分支根处记录svn:mergeinfo,例如在svn/trunk,而git抱怨的情况似乎与附加到特定分支子目录的mergeinfo有关,例如在svn/trunk/dir1 .我不是一个svn专家,但我目前的启发式是,如果你有很多不在分支根目录的svn:mergeinfos,你的svn repo或你的合并过程可能有些不对劲.如果这是正确的,git会抱怨是可以理解的.在我自己的情况下,我认为大多数这些"奇怪的"提交修改了分支根(例如svn/trunk)子目录级别(例如svn/trunk/dir1)的svn:mergeinfo ; git从根级别收集它需要的任何内容,并抛出一个关于subdir级别的明显无害的错误.

也就是说,有些人似乎在某些情况下会报告问题,特别是在git-svn回购中进行变基,并不是所有的分支都被检出.