2

A coworker made some changes, committed the subrepo, and pushed to Kiln. He forgot, or didn't realize that he needed to commit the parent repo and push to make sure that .hgsubstate was updated. I reminded him of this, and he committed the parent and pushed to Kiln (this detail may be irrelevant). I went and pulled from Kiln, and am blasted with

unknown revision '6a8239a2509fa5ab000e94a010e72693096fe8e7+'

Obviously, the + sign shouldn't be there. In other questions here and elsewhere, this error often occurs when committing, and can be fixed by manually removing the + sign.

In this case, the .hgsubstate file has + symbols on all but one of the hashes for the commit my coworker made. I can bypass this locally, by stripping out the affected changeset, but I can't do anything about it in Kiln. The other option is to do some sort of branch magic, but I cannot even update to the affected changeset.

This appears to be a bug in Mercurial, according to these reports, possibly due to updating the parent to a previous revision with uncommitted changes in a subrepo:

http://mercurial.selenic.com/bts/issue2217
http://mercurial.selenic.com/bts/issue2067

I'm going to recommend to my entire team to upgrade to the newest version of TortoiseHG and Mercurial (my co-worker was using 1.5!), but that doesn't fix the problem at hand.

Any ideas on how I can cork this genie, and bypass the broken changeset?

flag

1 Answer

2

http://kiln.stackexchange.com/questions/687/can-i-use-hg-strip-on-the-central-repository/696#696

I used the advice here, and stripped the changeset, then pushed to a new fresh repo on Kiln. I then renamed the old repo to Whatever-Old, and renamed the new to the original name. Things seem to be working!

link|flag

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.