divergence using the convert extension

Matt Harbison mharbison72 at gmail.com
Thu Jun 28 17:42:04 EDT 2018


> 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.  But if I `hg status —changed $bad_rev`, I get waaaay more files listed in both the before and after repo.  If I archive the revision from both repos and compare, they are the same.

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.  So any ideas would be helpful here, even if it’s just a way to exclude these 2 files from the listing in a particular commit, but keep their changes.

The src repo was converted from bzr with a hacked up 3.7.2 hg.  I went back to that to do an hg -> hg conversion, and there the very first commit diverged. So there seems to have been some improvements since then.  But I don’t see any obvious changes in convert itself.

>> _______________________________________________
>> Mercurial mailing list
>> Mercurial at mercurial-scm.org
>> https://www.mercurial-scm.org/mailman/listinfo/mercurial


More information about the Mercurial mailing list