开发者

Mercurial Adding 60+ Merges Randomly

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:

Mercurial Adding 60+ Merges Randomly

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).

Mercurial Adding 60+ Merges Randomly

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 ce开发者_运维问答rtantly did not perform 60+ merges today, I'm baffled.

Extra Information

TortoiseHG: 2.0.5 (Merc 1.8.4) OS: Windows7


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜