mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 06:47:41 +03:00
a7f8773653
Summary: As the title says. More details can be found in the associated task. Reviewed By: quark-zju Differential Revision: D32346505 fbshipit-source-id: 00494165a57714dd8f8e6d3f36920a1342c121c7
76 lines
1.3 KiB
Perl
76 lines
1.3 KiB
Perl
#chg-compatible
|
|
$ configure modern
|
|
$ setconfig ui.allowemptycommit=1
|
|
$ enable histedit
|
|
|
|
Configure repo:
|
|
$ newrepo
|
|
$ drawdag << 'EOS'
|
|
> D
|
|
> |
|
|
> C E
|
|
> |/
|
|
> B
|
|
> |
|
|
> A
|
|
> EOS
|
|
|
|
Nothing is lost initially:
|
|
$ hg log -r 'lost()'
|
|
|
|
Hiding a commit also hides its descendants:
|
|
$ hg hide $B -q
|
|
$ hg log -r 'lost()' -T '{desc}\n'
|
|
B
|
|
C
|
|
E
|
|
D
|
|
|
|
`unhide` makes a commit and its ancestors no longer lost:
|
|
$ hg unhide $D
|
|
$ hg log -r 'lost()' -T '{desc}\n'
|
|
E
|
|
$ hg unhide $E
|
|
$ hg log -r 'lost()'
|
|
|
|
`drop` in `histedit` can produce lost commits:
|
|
$ hg up $D -q
|
|
$ hg histedit $C --commands - <<EOF
|
|
> pick $D
|
|
> drop $C
|
|
> EOF
|
|
$ hg log -r 'lost()' -T '{desc}\n'
|
|
C
|
|
|
|
`amend` (or `metaedit`) does not make commits lost if they have successors:
|
|
$ newrepo
|
|
$ hg commit -m A -q
|
|
$ hg amend -m B
|
|
$ hg amend -m C
|
|
$ hg amend -m D
|
|
$ hg log -r 'lost()' # Nothing is lost initially
|
|
$ hg hide '.' -q
|
|
$ hg log -r 'lost()' -T '{desc}\n'
|
|
D
|
|
|
|
Lost nodes are sorted by most recent hidden first:
|
|
$ newrepo
|
|
$ drawdag << 'EOS'
|
|
> E
|
|
> | D
|
|
> |/C
|
|
> |/B
|
|
> |/
|
|
> A
|
|
> EOS
|
|
$ hg log -r 'lost()' # Nothing is lost initially
|
|
$ hg hide $C -q
|
|
$ hg hide $B -q
|
|
$ hg hide $E -q
|
|
$ hg hide $D -q
|
|
$ hg log -r 'lost()' -T '{desc}\n'
|
|
D
|
|
E
|
|
B
|
|
C
|