.. in manifests not found / only partial clone

Matt Mackall mpm at selenic.com
Sun Dec 21 22:13:00 UTC 2014


On Fri, 2014-12-19 at 23:57 +0100, Benito van der Zander wrote:
> Hi,
> despite having set the extended +a attribute on all .i files, I again 
> lost some history data :(

Was there a proximal cause to this data loss? Power outage? Abort caused
by setting +a (even though I told you it was a bad idea)?

What filesystem are you using? Ext4?

> I tried to restore it like the RepositoryCorruption wiki says with
> 
> $ hg clone -r 3672 ~/hg fixed
...

> 11 revisions are missing.
> 
> How can this happen?
>
> Does clone not clone all branches?

$ hg help clone
...
    To pull only a subset of changesets, specify one or more revisions
    identifiers with -r/--rev or branches with -b/--branch. The resulting
    clone will contain only the specified changesets and their ancestors.

You can ask Mercurial which revisions you need to clone thusly:

$ hg log -r "heads(not 3673::)"

> In fact, when I try to clone the branches directly it fails:
> 
> $ hg branches
> default                     3676:0fb3610282a4
> videlibri-sk                3217:51428989e7dc
> $ hg clone -b videlibri-sk . /tmp/wtf
> abort: unknown branch 'videlibri-sk'!

That's very odd. May be a bug. Or it may be that you've got the branch
cache marked append-only and it's now corrupt because Mercurial tried to
update it and silently failed.

> $ hg clone -r 3217:51428989e7dc . /tmp/wtf
> abort: unknown revision '3217:51428989e7dc'!

The string "3217:51428989e7dc" is not a revision.
It's two different forms of the name for one revision.
Much of Mercurial will now accept this as a revset: the one-element
range of all revisions from 3217 to 51428989e7dc. But not clone, because
it can't hand a revset to a remote server.

-- 
Mathematics is the supreme nostalgia of our time.





More information about the Mercurial mailing list