mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
2b8d5ab75d
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
43 lines
1.4 KiB
Perl
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
|