sapling/eden/scm/tests/test-treemanifest-amend.t
Mark Juggurnauth-Thomas 2b8d5ab75d undo: expand heuristics for uncommit/unamend hint
Summary:
The `commit` or `amend` command might not have been the first item in the
command list (e.g. there could have been a custom config option).  Expand the
heuristics for detecting the `commit` and `amend` cases to account for this.

Reviewed By: quark-zju

Differential Revision: D26545339

fbshipit-source-id: a5b1fc8ccc87989e742fce1fa79273266892ed79
2021-02-22 02:46:53 -08:00

43 lines
1.4 KiB
Perl

#chg-compatible
Crash in histpack code path where the amend destination already exists
$ configure mutation-norecord
$ enable undo treemanifest remotefilelog
$ setconfig treemanifest.treeonly=1 remotefilelog.reponame=foo remotefilelog.cachepath=$TESTTMP/cache
$ setconfig remotefilelog.write-hgcache-to-indexedlog=False remotefilelog.write-local-to-indexedlog=False
$ newrepo
$ drawdag << 'EOS'
> B
> |
> A
> EOS
$ enable undo
$ hg up -q $B
$ echo foo > msg
$ hg --config dummy.option=dummy commit --amend -l msg
$ hg undo -q
hint[undo-uncommit-unamend]: undoing amends discards their changes.
to restore the changes to the working copy, run 'hg revert -r 220f69710758 --all'
in the future, you can use 'hg unamend' instead of 'hg undo' to keep changes
hint[hint-ack]: use 'hg hint --ack undo-uncommit-unamend' to silence these hints
$ hg commit --amend -l msg
Make sure no invalid manifests were written:
$ cd .hg/store/packs/manifests
$ for i in *.histidx; do hg debughistorypack $i; done
Node P1 Node P2 Node Link Node Copy From
41b34f08c135 000000000000 000000000000 426bada5c675
Node P1 Node P2 Node Link Node Copy From
eb7988638387 41b34f08c135 000000000000 220f69710758
Node P1 Node P2 Node Link Node Copy From
eb7988638387 41b34f08c135 000000000000 112478962961