tests/test-issue2137.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 03 May 2021 12:35:25 +0200
changeset 47252 2219853a1503
parent 36593 c4ccc73f9d49
permissions -rw-r--r--
revlogv2: track pending write in the docket and expose it to hooks The docket is now able to write pending data. We could have used a distinct intermediate files, however keeping everything in the same file will make it simpler to keep track of the various involved files if necessary. However it might prove more complicated for streaming clone. This will be dealt with later. Note that we lifted the stderr redirection in the test since we no longer suffer from "unkown working directory parent" message. Differential Revision: https://phab.mercurial-scm.org/D10631

https://bz.mercurial-scm.org/2137

Setup:

create a little extension that has 3 side-effects:
1) ensure changelog data is not inlined
2) make revlog to use lazyparser
3) test that repo.lookup() works
1 and 2 are preconditions for the bug; 3 is the bug.

  $ cat > commitwrapper.py <<EOF
  > from mercurial import extensions, node, revlog
  > 
  > def reposetup(ui, repo):
  >     class wraprepo(repo.__class__):
  >         def commit(self, *args, **kwargs):
  >             result = super(wraprepo, self).commit(*args, **kwargs)
  >             tip1 = node.short(repo.changelog.tip())
  >             tip2 = node.short(repo.lookup(tip1))
  >             assert tip1 == tip2
  >             ui.write(b'new tip: %s\n' % tip1)
  >             return result
  >     repo.__class__ = wraprepo
  > 
  > def extsetup(ui):
  >     revlog._maxinline = 8             # split out 00changelog.d early
  >     revlog._prereadsize = 8           # use revlog.lazyparser
  > EOF

  $ cat >> $HGRCPATH <<EOF
  > [extensions]
  > commitwrapper = `pwd`/commitwrapper.py
  > EOF

  $ hg init repo1
  $ cd repo1
  $ echo a > a
  $ hg commit -A -m'add a with a long commit message to make the changelog a bit bigger'
  adding a
  new tip: 553596fad57b

Test that new changesets are visible to repo.lookup():

  $ echo a >> a
  $ hg commit -m'one more commit to demonstrate the bug'
  new tip: 799ae3599e0e

  $ hg tip
  changeset:   1:799ae3599e0e
  tag:         tip
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     one more commit to demonstrate the bug
  

  $ cd ..