Mercurial 添加 60+随机合并
我的 Mercurial 存储库刚刚发生了最奇怪的事情,我真的很担心它的完整性。
背景
我一整天都间歇性地提交/推送,没有问题,直到现在,单个提交/推送组合发出警告,表明我将把新分支推送到远程位置。我打开 TortoiseHg 来查看我的仓库树中到底发生了什么导致了这种情况。 (也许我不小心从 tip:-1
提交了。
打开 tortoiseHg 后,我看到了这个:
当然,我对此感到震惊,请注意这些合并发生的日期,几周和几个月前。我一路追踪这些线路回到源头,发现它们几乎源自我历史上发生过合并的所有地方(以及其他一些地方)。
问题
- 可能是什么导致了这种情况?
- 是否有一些 hg 命令/功能是故意执行此操作的,或者我很可能正在查看错误?
- 有没有一种简单的方法可以解决此问题,而无需从远程主机重新克隆我的存储库?
我真的对这个感到措手不及。我今天肯定没有执行 60 多次合并,我很困惑。
额外信息
TortoiseHG:2.0.5(Merc 1.8.4) 操作系统:Windows7
I just had the strangest thing happen to my mercurial repository, I'm genuinely worried for it's integrity.
Background
I have been committing/pushing intermittently all day no problem until just now where a single commit/push combo yielded a warning that I'd be pushing new branches to the remote location. I whipped open TortoiseHg to see just exactly was going on in my repo tree that would be causing this. (Perhaps i accidentally commited from tip:-1
.
After opening tortoiseHg I was presented with this:
Naturally I'm alarmed by this, note the dates these merges are happening from, weeks and months ago. I tracked the lines all the way back to the source to find that they're originating from pretty-much everywhere in my history where merges have happened (and a couple other spots).
Questions
- What could have caused this?
- Is there some hg command/feature that does this intentionally or am I most likely looking at a bug?
- Is there a simple way to fix this without re-cloning my repo from my remote host?
I am genuinely caught off guard with this one. I most certantly did not perform 60+ merges today, I'm baffled.
Extra Information
TortoiseHG: 2.0.5 (Merc 1.8.4)
OS: Windows7
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
遗憾的是,您无法看到提交的日期 762:795,但我猜它们分布在与 1509:1539 相同的 4 个月内。另外,看看谁是所有这些 cset 的作者(两者都是)也会很有趣。
从 762:795 的外观来看,我猜你们是两个协调开发人员,因为每 5 次提交左右就会进行这些小型合并。长范围的合并可能来自您为持续集成(即自动构建)而设置的第三个存储库,该存储库不在您的正常存储库中,而是您在制作 1509:1539 快照之前意外拉取的。第三个存储库可以保存很久以前的一些微小更改,这会导致每次推送到第三个存储库时发生所有这些合并。
如果您想摆脱 cset,使用 -r 进行克隆是最简洁的方法。 MQ strip 非常方便,特别是如果您使用 TortoiseHg,但也有点危险。
我非常怀疑 Mercurial 会在你背后做这样的事情,但如果你需要更多帮助,你可以在 IRC freenode.net 上立即获得帮助。对于 Web 客户端,请转至 http://webchat.freenode.net。 Mercurial wiki 有一些有关 IRC 的背景信息。
It is a pity you cannot see the dates of your commits 762:795, but I guess they are spread over the same period of 4 months as 1509:1539. Also, it would be interesting to see who were authors of all these csets (both of them)
From the look of 762:795 I would guess you are 2 developers coordinating, since you have these small merges every 5 commits or so. The long range of merges could come from a third repository you have set up for continuous integration (i.e. automated build), which were not in your normal repository, but which you pulled by accident, just prior to making the 1509:1539 snapshot. This third repository could hold some tiny change far far back in time, which caused all these merges to occur, every time you pushed to the third repository.
If you want to get rid of csets, cloning with -r is the cleanest way to do it. MQ strip is very handy, especially if you use TortoiseHg, but also a bit more dangerous.
I very much doubt that Mercurial would do a thing like this behind your back, but if you need more assistance you can get immediate help at IRC freenode.net. For a web client, go to http://webchat.freenode.net. The Mercurial wiki has some background information about IRC.