pretxnchangegroup regression?

Brodie Rao brodie at bitheap.org
Fri May 11 02:48:39 CDT 2012


On Fri, May 11, 2012 at 7:03 AM, Steven Stallion <sstallion at gmail.com> wrote:
> On Thu, May 10, 2012 at 10:00 PM, Steven Stallion <sstallion at gmail.com> wrote:
>> All,
>>
>> After upgrading to 2.2.1 I've noticed that my pretxnchangegroup hooks
>> started failing. Any attempt to do operate on the repository would end
>> up bailing with: 00changelog.i at 539e4b31b6dc: no node. I'm wondering if
>> this is a regression - this hook had been in use for the last year or
>> so on 1.7.5 with no problems.
>>
>> The line that is blowing out in the sh hook is:
>>
>> AUTHOR=`$HG log -r $HG_NODE --template "{author}"` || exit 1
>>
>> I made the following change to tests/test-hook.t to verify behavior:
>>
>> diff -r ddd4996740c7 tests/test-hook.t
>> --- a/tests/test-hook.t Tue May 08 12:05:45 2012 -0500
>> +++ b/tests/test-hook.t Thu May 10 21:58:44 2012 -0700
>> @@ -246,7 +246,7 @@
>>  incoming changes no longer there after
>>
>>   $ echo '[hooks]' > .hg/hgrc
>> -  $ echo 'pretxnchangegroup.forbid0 = hg tip -q' >> .hg/hgrc
>> +  $ echo 'pretxnchangegroup.forbid0 = hg log -r tip --template
>> "{author}\\n"' >> .hg/hgrc
>>   $ echo 'pretxnchangegroup.forbid1 = python "$TESTDIR"/printenv.py
>> pretxnchangegroup.forbid 1' >> .hg/hgrc
>>   $ hg pull ../a
>>   pulling from ../a
>> @@ -255,7 +255,7 @@
>>   adding manifests
>>   adding file changes
>>   added 1 changesets with 1 changes to 1 files
>> -  4:539e4b31b6dc
>> +  test
>>   pretxnchangegroup.forbid hook:
>> HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/b
>> HG_SOURCE=pull HG_URL=file:$TESTTMP/a
>>   transaction abort!
>>   rollback completed
>>
>> This results in a similar failure:
>>
>> $ python run-tests.py test-hook.t
>
> Copy and paste error. Actual output was:
>
> --- /Users/stallion/Source/hg/tests/test-hook.t
> +++ /Users/stallion/Source/hg/tests/test-hook.t.err
> @@ -255,11 +255,10 @@
>   adding manifests
>   adding file changes
>   added 1 changesets with 1 changes to 1 files
> -  test
> -  pretxnchangegroup.forbid hook:
> HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10 HG_PENDING=$TESTTMP/b
> HG_SOURCE=pull HG_URL=file:$TESTTMP/a
> +  abort: template: no key named '00changelog.i at 539e4b31b6dc: no node'
>   transaction abort!
>   rollback completed
> -  abort: pretxnchangegroup.forbid1 hook exited with status 1
> +  abort: pretxnchangegroup.forbid0 hook exited with status 255
>   [255]
>   $ hg -q tip
>   3:07f3376c1e65

Without really understanding what's happening here yet, I've bisected
this using a reduced test case down to this commit:

changeset:   16414:e8d37b78acfb
user:        Bryan O'Sullivan <bryano at fb.com>
date:        Thu Apr 12 14:05:59 2012 -0700
summary:     parsers: use base-16 trie for faster node->rev mapping


More information about the Mercurial-devel mailing list