divergence using the convert extension
Yuya Nishihara
yuya at tcha.org
Fri Jun 29 14:26:37 UTC 2018
On Thu, 28 Jun 2018 17:42:04 -0400, Matt Harbison wrote:
> > On Jun 24, 2018, at 4:02 PM, Augie Fackler <raf at durin42.com> wrote:
> >> On Fri, Jun 22, 2018 at 7:00 AM, Yuya Nishihara <yuya at tcha.org> wrote:
> >>> On Thu, 21 Jun 2018 21:02:31 -0400, Matt Harbison wrote:
> >>> On Thu, 21 Jun 2018 04:52:09 -0400, Benoit Fouletier <bennews at free.fr>
> >>>> Obviously since I'm gonna strip stuff anyway, I _will_ diverge from the
> >>>> original pretty early and will lose all hashes, that's fine, this is more
> >>>> out of curiosity and making sure nothing too fishy it going on.
> >>>
> >>> I hit a similar issue last year helping someone recover from repo
> >>> corruption. (Convert was involved in the recovery somehow.) On the first
> >>> divergent commit, run `hg log -r $rev --debug` in both repos. IIRC, the
> >>> manifest line was different. It was reproducible, but I couldn't figure
> >>> out how to recreate it with a simple test case.
> >>
> >> IIRC, there was a bug that hg would create new manifest node even if nothing
> >> changed. That's probably the reason of the hash change.
> >
> > That's likely. I wouldn't sweat the difference.
>
> I’m seeing something similar to the original report in one repo now. I’ve
> simplified this down to an hg -> hg convert with 4.6.1, and at the same cset,
> it gets the same divergent hash. The manifest value is the same before and
> after converting.
>
> The really odd thing I noticed is with `hg log -vr $bad_rev`, it shows 2 more
> files in the post conversion repo.
So what's different is the list of files recorded in the changelog (in short,
ctx.files().)
> But if I `hg status —changed $bad_rev`, I get waaaay more files listed in
> both the before and after repo.
That's normal if the $bad_rev is a merge commit.
> My interest here is converting it to LFS, and silently slipping it onto the
> server for minimal disruption. That won’t work if the hashes change.
I have no idea other than using a hacked hg to reproduce old ctx.files().
More information about the Mercurial
mailing list