git-svn“找不到revmap” - 这是什么意思? [英] git-svn "Couldn't find revmap"- what does it mean?

查看:410
本文介绍了git-svn“找不到revmap” - 这是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当运行 git svn clone 并且经常在后续的 git svn fetch 操作中出现这个消息时,文件夹:

When running git svn clone and often during subsequent git svn fetch operations I get this message for a number of folders:

Couldn't find revmap for <SVN folder URL>

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

My repository seems to work fine. What does this message mean? Should I be concerned about it?

推荐答案

我没有完整的答案,但是这个错误是由 git-svn.perl 。 (相关代码路径似乎是do_fetch - > make_log_entry - > find_extra_svn_parents - > lookup_svn_merge。)该代码似乎试图查看svn合并提交的svn:mergeinfo属性以找出其所有父提交/分支,希望将其转化为git克隆中的一个很好的多父合并提交。如果该父解析失败,你的提交仍然会被提取到git中;它只是不会有相同的父母信息,否则。

I don't have the complete answer, but this error is generated by git-svn.perl. (The relevant code path seems to be do_fetch -> make_log_entry -> find_extra_svn_parents -> lookup_svn_merge.) That code appears to be trying to look at a svn merge commit's svn:mergeinfo property to figure out all its parent commits/branches, in hopes of turning that into a nice, multi-parent merge commit inside the git clone. If that parent resolution fails, your commit will still get fetched into git; it just won't have the same parent info as it would otherwise.

到目前为止,我还没有发现任何由于我目前的主要错误导致的大问题用例,它将svn repo转换为git; git-svn已经能够解决对我而言真正重要的大合并,而迄今为止这些错误似乎局限于单独的樱桃选择合并或我不再关心的旧分支。

So far, I haven't personally found any big problems stemming from this error for my current main use case, which is converting a svn repo to git; git-svn has been able to resolve the big merges that actually matter to me, and these errors so far seem limited to either individual cherry-pick merges or old branches that I don't care about anymore.

实际上,第二眼看起来,在我看来,这些错误大部分来自于提交,其中 svn:mergeinfo 记录在我认为是svn中错误的级别。在svn repo中,我们通常尝试在分支根目录记录svn:mergeinfo,例如在svn / trunk上,而例git抱怨似乎与属于特定分支子目录的mergeinfo有关,例如,在svn / trunk / dir1。我不是svn专家,但是我目前的启发是如果你有很多svn:mergeinfos不在分支根目录下,那么你的svn repo或者你的合并过程可能会有些不合适之处。如果这是正确的,git会抱怨是可以理解的。在我自己的情况下,我认为大部分这些奇怪的提交都会在子目录级(例如svn / trunk / dir1)修改分支根目录(例如svn / trunk)的svn:mergeinfo; git从根级收集任何需要的东西,并抛出一个关于subdir级别的明显无害的错误。

Actually, on second glance, it looks like in my case most of these errors stem from commits where svn:mergeinfo got recorded at what I interpret to be the wrong level in svn. In the svn repo, we usually try to record svn:mergeinfo at the branch root, e.g. at svn/trunk, whereas the cases git is complaining about seem to pertain to mergeinfo that's attached to particular branch subdirectories, e.g. at svn/trunk/dir1. I'm not a svn expert, but my current heuristic is that if you have a lot of svn:mergeinfos that aren't at the branch root, there may be something amiss with your svn repo or your merging process. If that's right, it's understandable that git would complain. In my own case, I think most of these "weird" commits modify svn:mergeinfo both at the branch root (e.g. svn/trunk) and at the subdir level (e.g. svn/trunk/dir1); git gleans whatever it needs from the root-level, and throws an apparently harmless error about the subdir level.

也就是说,有些人在某些情况下似乎报告了问题,可能尤其是当在git-svn回购中重新定位,并非所有分支都被签出

That said, some people seem to be reporting problems in some case, perhaps especially when rebasing in a git-svn repo where not all the branches were checked out.

这篇关于git-svn“找不到revmap” - 这是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆