tests/test-absorb-phase.t
author Yuya Nishihara <yuya@tcha.org>
Sat, 07 Jul 2018 22:40:39 +0900
changeset 39111 46da52f4b820
parent 38917 5111d11b8719
child 39667 0b7594ada0db
permissions -rw-r--r--
commit: try hard to reuse p1 manifest if nothing changed This is all for commit reproducibility on "hg convert". With this change, p1 manifest is reused if ctx.files() *to be committed* is empty, and if new manifest entry is identical to p1. This is important property for "hg convert" since memctx.files() built from a convert source may be either a) more narrowed thanks to a committed ctx.files() which provides more accurate status, or b) containing redundant files because of sloppy filtering on e.g. octopus merge.

  $ cat >> $HGRCPATH << EOF
  > [extensions]
  > absorb=
  > drawdag=$RUNTESTDIR/drawdag.py
  > EOF

  $ hg init
  $ hg debugdrawdag <<'EOS'
  > C
  > |
  > B
  > |
  > A
  > EOS

  $ hg phase -r A --public -q
  $ hg phase -r C --secret --force -q

  $ hg update C -q
  $ printf B1 > B

  $ hg absorb -q

  $ hg log -G -T '{desc} {phase}'
  @  C secret
  |
  o  B draft
  |
  o  A public