tests/test-histedit-obsolete.t
author Saurabh Singh <singhsrb@fb.com>
Fri, 01 Sep 2017 12:34:36 -0700
changeset 34085 e8a7c1a0565a
parent 33774 9dcc3529e002
child 34286 ecc96506c49d
permissions -rw-r--r--
cmdutil: remove the redundant commit during amend There was an extra commit made during the amend operation to track the changes to the working copy. However, this logic was written a long time back and newer API's make this extra commit redundant. Therefore, I am removing the extra commit. After this change, I noticed that - Execution time of the cmdutil.amend improved by over 40%. - Execution time of "hg commit --amend" improved by over 20%. Test Plan: I ensured that the all the hg tests passed after the change. I had to fix a few tests which were aware of the extra commit made during the amend. Differential Revision: https://phab.mercurial-scm.org/D636
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17759
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     1
  $ . "$TESTDIR/histedit-helpers.sh"
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     2
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     3
Enable obsolete
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     4
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     5
  $ cat >> $HGRCPATH << EOF
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     6
  > [ui]
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     7
  > logtemplate= {rev}:{node|short} {desc|firstline}
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     8
  > [phases]
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     9
  > publish=False
22955
fab9dda0f2a3 obsolete: update tests to use obsolete options
Durham Goode <durham@fb.com>
parents: 22392
diff changeset
    10
  > [experimental]
33773
6c1a9fd8361b test: update evolution config
Boris Feld <boris.feld@octobus.net>
parents: 33350
diff changeset
    11
  > stabilization=createmarkers,allowunstable
22392
2dd1cbee569d tests: remove unnecessary apostrophe
David Soria Parra <davidsp@fb.com>
parents: 22260
diff changeset
    12
  > [extensions]
17759
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    13
  > histedit=
18438
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
    14
  > rebase=
17759
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    15
  > EOF
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    16
28216
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    17
Test that histedit learns about obsolescence not stored in histedit state
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    18
  $ hg init boo
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    19
  $ cd boo
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    20
  $ echo a > a
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    21
  $ hg ci -Am a
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    22
  adding a
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    23
  $ echo a > b
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    24
  $ echo a > c
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    25
  $ echo a > c
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    26
  $ hg ci -Am b
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    27
  adding b
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    28
  adding c
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    29
  $ echo a > d
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    30
  $ hg ci -Am c
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    31
  adding d
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    32
  $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    33
  $ echo "pick `hg log -r 2 -T '{node|short}'`" >> plan
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    34
  $ echo "edit `hg log -r 1 -T '{node|short}'`" >> plan
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    35
  $ hg histedit -r 'all()' --commands plan
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    36
  Editing (1b2d564fad96), you may commit or record as needed now.
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    37
  (hg histedit --continue to resume)
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    38
  [1]
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    39
  $ hg st
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    40
  A b
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    41
  A c
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    42
  ? plan
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    43
  $ hg commit --amend b
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    44
  $ hg histedit --continue
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    45
  $ hg log -G
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 33774
diff changeset
    46
  @  5:46abc7c4d873 b
28216
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    47
  |
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 33774
diff changeset
    48
  o  4:49d44ab2be1b c
28216
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    49
  |
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    50
  o  0:cb9a9f314b8b a
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    51
  
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    52
  $ hg debugobsolete
32354
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
    53
  e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
    54
  1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
    55
  114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
28224
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    56
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    57
With some node gone missing during the edit.
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    58
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    59
  $ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 33774
diff changeset
    60
  $ echo "pick `hg log -r 5 -T '{node|short}'`" >> plan
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 33774
diff changeset
    61
  $ echo "edit `hg log -r 4 -T '{node|short}'`" >> plan
28224
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    62
  $ hg histedit -r 'all()' --commands plan
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    63
  Editing (49d44ab2be1b), you may commit or record as needed now.
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    64
  (hg histedit --continue to resume)
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    65
  [1]
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    66
  $ hg st
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    67
  A b
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    68
  A d
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    69
  ? plan
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    70
  $ hg commit --amend -X . -m XXXXXX
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    71
  $ hg commit --amend -X . -m b2
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    72
  $ hg --hidden --config extensions.strip= strip 'desc(XXXXXX)' --no-backup
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    73
  $ hg histedit --continue
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    74
  $ hg log -G
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 33774
diff changeset
    75
  @  8:273c1f3b8626 c
28224
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    76
  |
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 33774
diff changeset
    77
  o  7:aba7da937030 b2
28224
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    78
  |
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    79
  o  0:cb9a9f314b8b a
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    80
  
8ec5478aa0d6 histedit: also handle locally missing nodes when reading obsolescence
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28216
diff changeset
    81
  $ hg debugobsolete
32354
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
    82
  e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
    83
  1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
    84
  114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
    85
  76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
    86
  2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
    87
  49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
    88
  46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'user': 'test'} (glob)
28216
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    89
  $ cd ..
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    90
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    91
Base setup for the rest of the testing
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    92
======================================
eed7d8c07c20 histedit: make histedit aware of obsolescense not stored in state (issue4800)
Kostia Balytskyi <ikostia@fb.com>
parents: 28004
diff changeset
    93
17759
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    94
  $ hg init base
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    95
  $ cd base
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    96
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    97
  $ for x in a b c d e f ; do
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    98
  >     echo $x > $x
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    99
  >     hg add $x
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   100
  >     hg ci -m $x
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   101
  > done
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   102
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   103
  $ hg log --graph
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   104
  @  5:652413bf663e f
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   105
  |
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   106
  o  4:e860deea161a e
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   107
  |
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   108
  o  3:055a42cdd887 d
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   109
  |
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   110
  o  2:177f92b77385 c
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   111
  |
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   112
  o  1:d2ae7f538514 b
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   113
  |
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   114
  o  0:cb9a9f314b8b a
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   115
  
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   116
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   117
  $ HGEDITOR=cat hg histedit 1
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   118
  pick d2ae7f538514 1 b
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   119
  pick 177f92b77385 2 c
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   120
  pick 055a42cdd887 3 d
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   121
  pick e860deea161a 4 e
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   122
  pick 652413bf663e 5 f
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   123
  
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   124
  # Edit history between d2ae7f538514 and 652413bf663e
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   125
  #
20503
23dc77874191 histedit: clarify description of fold command
Adrian Zgorzałek <adek@fb.com>
parents: 19924
diff changeset
   126
  # Commits are listed from least to most recent
23dc77874191 histedit: clarify description of fold command
Adrian Zgorzałek <adek@fb.com>
parents: 19924
diff changeset
   127
  #
28396
5490b04e6132 histedit: adds hint how to reorder changesets at editor (issue3766)
liscju <piotr.listkiewicz@gmail.com>
parents: 28309
diff changeset
   128
  # You can reorder changesets by reordering the lines
5490b04e6132 histedit: adds hint how to reorder changesets at editor (issue3766)
liscju <piotr.listkiewicz@gmail.com>
parents: 28309
diff changeset
   129
  #
17759
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   130
  # Commands:
27674
78d86664e3a2 histedit: prefer edit commit, edit message, use commit
timeless <timeless@mozdev.org>
parents: 27629
diff changeset
   131
  #
78d86664e3a2 histedit: prefer edit commit, edit message, use commit
timeless <timeless@mozdev.org>
parents: 27629
diff changeset
   132
  #  e, edit = use commit, but stop for amending
78d86664e3a2 histedit: prefer edit commit, edit message, use commit
timeless <timeless@mozdev.org>
parents: 27629
diff changeset
   133
  #  m, mess = edit commit message without changing commit content
17759
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   134
  #  p, pick = use commit
27674
78d86664e3a2 histedit: prefer edit commit, edit message, use commit
timeless <timeless@mozdev.org>
parents: 27629
diff changeset
   135
  #  d, drop = remove commit from history
20511
5840da876235 histedit: shorten new fold message
Matt Mackall <mpm@selenic.com>
parents: 20503
diff changeset
   136
  #  f, fold = use commit, but combine it with the one above
31056
37ab9e20991c histedit: modify rollup to discard date from the rollup commit (issue4820)
Ben Schmidt <insightfuls@users.noreply.github.com>
parents: 30556
diff changeset
   137
  #  r, roll = like fold, but discard this commit's description and date
17759
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   138
  #
19019
53060cc1b601 histedit-test: generalise --commands "-" usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18935
diff changeset
   139
  $ hg histedit 1 --commands - --verbose <<EOF | grep histedit
17759
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   140
  > pick 177f92b77385 2 c
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   141
  > drop d2ae7f538514 1 b
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   142
  > pick 055a42cdd887 3 d
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   143
  > fold e860deea161a 4 e
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   144
  > pick 652413bf663e 5 f
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   145
  > EOF
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   146
  [1]
17759
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   147
  $ hg log --graph --hidden
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   148
  @  10:cacdfd884a93 f
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   149
  |
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   150
  o  9:59d9f330561f d
25809
ebb5bb9bc32e histedit: mark temporary commits as obsolete when allowed to
Laurent Charignon <lcharignon@fb.com>
parents: 25412
diff changeset
   151
  |
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   152
  | x  8:b558abc46d09 fold-temp-revision e860deea161a
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   153
  | |
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   154
  | x  7:96e494a2d553 d
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   155
  |/
18437
358c23e8f1c6 histedit: record histedit source (issue3681)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18398
diff changeset
   156
  o  6:b346ab9a313d c
17759
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   157
  |
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   158
  | x  5:652413bf663e f
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   159
  | |
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   160
  | x  4:e860deea161a e
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   161
  | |
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   162
  | x  3:055a42cdd887 d
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   163
  | |
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   164
  | x  2:177f92b77385 c
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   165
  | |
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   166
  | x  1:d2ae7f538514 b
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   167
  |/
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   168
  o  0:cb9a9f314b8b a
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   169
  
9c7497cd39fd histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
   170
  $ hg debugobsolete
32354
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
   171
  d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0 {cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b} (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
   172
  177f92b773850b59254aa5e923436f921b55483b b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
   173
  055a42cdd88768532f9cf79daa407fc8d138de9b 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
   174
  e860deea161a2f77de56603b340ebbb4536308ae 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (*) {'user': 'test'} (glob)
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
   175
  652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (*) {'user': 'test'} (glob)
33350
b320ff822c7e histedit: unify strip backup files on success (BC)
Jun Wu <quark@fb.com>
parents: 32354
diff changeset
   176
  96e494a2d553dd05902ba1cee1d94d4cb7b8faed 0 {b346ab9a313db8537ecf96fca3ca3ca984ef3bd7} (*) {'user': 'test'} (glob)
b320ff822c7e histedit: unify strip backup files on success (BC)
Jun Wu <quark@fb.com>
parents: 32354
diff changeset
   177
  b558abc46d09c30f57ac31e85a8a3d64d2e906e4 0 {96e494a2d553dd05902ba1cee1d94d4cb7b8faed} (*) {'user': 'test'} (glob)
17771
dcfa526b180b histedit: create obsolescence markers in deterministic order
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17764
diff changeset
   178
17761
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   179
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   180
Ensure hidden revision does not prevent histedit
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   181
-------------------------------------------------
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   182
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   183
create an hidden revision
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   184
19019
53060cc1b601 histedit-test: generalise --commands "-" usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18935
diff changeset
   185
  $ hg histedit 6 --commands - << EOF
18437
358c23e8f1c6 histedit: record histedit source (issue3681)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18398
diff changeset
   186
  > pick b346ab9a313d 6 c
358c23e8f1c6 histedit: record histedit source (issue3681)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18398
diff changeset
   187
  > drop 59d9f330561f 7 d
358c23e8f1c6 histedit: record histedit source (issue3681)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18398
diff changeset
   188
  > pick cacdfd884a93 8 f
17761
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   189
  > EOF
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   190
  $ hg log --graph
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   191
  @  11:c13eb81022ca f
17761
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   192
  |
18437
358c23e8f1c6 histedit: record histedit source (issue3681)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18398
diff changeset
   193
  o  6:b346ab9a313d c
17761
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   194
  |
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   195
  o  0:cb9a9f314b8b a
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   196
  
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   197
check hidden revision are ignored (6 have hidden children 7 and 8)
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   198
19019
53060cc1b601 histedit-test: generalise --commands "-" usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18935
diff changeset
   199
  $ hg histedit 6 --commands - << EOF
18437
358c23e8f1c6 histedit: record histedit source (issue3681)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18398
diff changeset
   200
  > pick b346ab9a313d 6 c
358c23e8f1c6 histedit: record histedit source (issue3681)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18398
diff changeset
   201
  > pick c13eb81022ca 8 f
17761
c80a7a0c7d22 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 17759
diff changeset
   202
  > EOF
17762
57f27cbfc5bb histedit: refuse to edit public changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17761
diff changeset
   203
57f27cbfc5bb histedit: refuse to edit public changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17761
diff changeset
   204
18165
0f5a0a2073a8 histedit: allow operation from non-head if obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17771
diff changeset
   205
18398
1a00c8451640 test: fix in-test comments related to obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18165
diff changeset
   206
Test that rewriting leaving instability behind is allowed
1a00c8451640 test: fix in-test comments related to obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18165
diff changeset
   207
---------------------------------------------------------------------
18165
0f5a0a2073a8 histedit: allow operation from non-head if obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17771
diff changeset
   208
0f5a0a2073a8 histedit: allow operation from non-head if obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17771
diff changeset
   209
  $ hg up '.^'
0f5a0a2073a8 histedit: allow operation from non-head if obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17771
diff changeset
   210
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
0f5a0a2073a8 histedit: allow operation from non-head if obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17771
diff changeset
   211
  $ hg log -r 'children(.)'
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   212
  11:c13eb81022ca f (no-eol)
19019
53060cc1b601 histedit-test: generalise --commands "-" usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18935
diff changeset
   213
  $ hg histedit -r '.' --commands - <<EOF
18438
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
   214
  > edit b346ab9a313d 6 c
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
   215
  > EOF
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
   216
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
   217
  adding c
27629
e7ff83b2bcfe histedit: list action when intervention is required
timeless <timeless@mozdev.org>
parents: 27406
diff changeset
   218
  Editing (b346ab9a313d), you may commit or record as needed now.
e7ff83b2bcfe histedit: list action when intervention is required
timeless <timeless@mozdev.org>
parents: 27406
diff changeset
   219
  (hg histedit --continue to resume)
18935
e5d9441ec281 dispatch: exit with status 1 for an InterventionRequired exception (bc)
Augie Fackler <raf@durin42.com>
parents: 18934
diff changeset
   220
  [1]
18438
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
   221
  $ echo c >> c
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
   222
  $ hg histedit --continue
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
   223
33774
9dcc3529e002 revset: rename unstable into orphan
Boris Feld <boris.feld@octobus.net>
parents: 33773
diff changeset
   224
  $ hg log -r 'orphan()'
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   225
  11:c13eb81022ca f (no-eol)
18438
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
   226
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
   227
stabilise
81e77a8820f3 test-histedit: fix instability creation test
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18437
diff changeset
   228
33774
9dcc3529e002 revset: rename unstable into orphan
Boris Feld <boris.feld@octobus.net>
parents: 33773
diff changeset
   229
  $ hg rebase  -r 'orphan()' -d .
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   230
  rebasing 11:c13eb81022ca "f"
19924
c23c62209cc4 tests: prepare rebase test for wc parent preservation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19473
diff changeset
   231
  $ hg up tip -q
18439
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   232
18509
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   233
Test dropping of changeset on the top of the stack
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   234
-------------------------------------------------------
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   235
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   236
Nothing is rewritten below, the working directory parent must be change for the
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   237
dropped changeset to be hidden.
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   238
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   239
  $ cd ..
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   240
  $ hg clone base droplast
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   241
  updating to branch default
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   242
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   243
  $ cd droplast
19019
53060cc1b601 histedit-test: generalise --commands "-" usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18935
diff changeset
   244
  $ hg histedit -r '40db8afa467b' --commands - << EOF
18509
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   245
  > pick 40db8afa467b 10 c
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   246
  > drop b449568bf7fc 11 f
18509
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   247
  > EOF
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   248
  $ hg log -G
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   249
  @  12:40db8afa467b c
18509
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   250
  |
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   251
  o  0:cb9a9f314b8b a
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   252
  
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   253
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   254
With rewritten ancestors
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   255
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   256
  $ echo e > e
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   257
  $ hg add e
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   258
  $ hg commit -m g
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   259
  $ echo f > f
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   260
  $ hg add f
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   261
  $ hg commit -m h
19019
53060cc1b601 histedit-test: generalise --commands "-" usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18935
diff changeset
   262
  $ hg histedit -r '40db8afa467b' --commands - << EOF
18509
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   263
  > pick 47a8561c0449 12 g
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   264
  > pick 40db8afa467b 10 c
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   265
  > drop 1b3b05f35ff0 13 h
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   266
  > EOF
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   267
  $ hg log -G
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   268
  @  17:ee6544123ab8 c
18509
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   269
  |
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   270
  o  16:269e713e9eae g
18509
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   271
  |
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   272
  o  0:cb9a9f314b8b a
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   273
  
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   274
  $ cd ../base
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   275
21daee53c101 test-histedit: add tests for dropping head changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18440
diff changeset
   276
18439
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   277
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   278
Test phases support
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   279
===========================================
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   280
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   281
Check that histedit respect immutability
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   282
-------------------------------------------
18439
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   283
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   284
  $ cat >> $HGRCPATH << EOF
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   285
  > [ui]
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   286
  > logtemplate= {rev}:{node|short} ({phase}) {desc|firstline}\n
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   287
  > EOF
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   288
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   289
  $ hg ph -pv '.^'
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   290
  phase changed for 2 changesets
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   291
  $ hg log -G
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   292
  @  13:b449568bf7fc (draft) f
18439
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   293
  |
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   294
  o  12:40db8afa467b (public) c
18439
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   295
  |
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   296
  o  0:cb9a9f314b8b (public) a
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   297
  
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   298
  $ hg histedit -r '.~2'
25411
d298805fb639 phases: rewrite "immutable changeset" to "public changeset"
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 24771
diff changeset
   299
  abort: cannot edit public changeset: cb9a9f314b8b
29970
5ad164698626 histedit: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 28396
diff changeset
   300
  (see 'hg help phases' for details)
18439
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   301
  [255]
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   302
c6e3fa134da5 test-histedit: reorder phases test and prepare for more
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18438
diff changeset
   303
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   304
Prepare further testing
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   305
-------------------------------------------
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   306
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   307
  $ for x in g h i j k ; do
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   308
  >     echo $x > $x
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   309
  >     hg add $x
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   310
  >     hg ci -m $x
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   311
  > done
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   312
  $ hg phase --force --secret .~2
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   313
  $ hg log -G
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   314
  @  18:ee118ab9fa44 (secret) k
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   315
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   316
  o  17:3a6c53ee7f3d (secret) j
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   317
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   318
  o  16:b605fb7503f2 (secret) i
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   319
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   320
  o  15:7395e1ff83bd (draft) h
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   321
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   322
  o  14:6b70183d2492 (draft) g
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   323
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   324
  o  13:b449568bf7fc (draft) f
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   325
  |
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   326
  o  12:40db8afa467b (public) c
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   327
  |
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   328
  o  0:cb9a9f314b8b (public) a
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   329
  
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   330
  $ cd ..
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   331
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   332
simple phase conservation
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   333
-------------------------------------------
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   334
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   335
Resulting changeset should conserve the phase of the original one whatever the
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   336
phases.new-commit option is.
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   337
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   338
New-commit as draft (default)
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   339
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29970
diff changeset
   340
  $ cp -R base simple-draft
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   341
  $ cd simple-draft
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   342
  $ hg histedit -r 'b449568bf7fc' --commands - << EOF
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   343
  > edit b449568bf7fc 11 f
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   344
  > pick 6b70183d2492 12 g
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   345
  > pick 7395e1ff83bd 13 h
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   346
  > pick b605fb7503f2 14 i
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   347
  > pick 3a6c53ee7f3d 15 j
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   348
  > pick ee118ab9fa44 16 k
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   349
  > EOF
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   350
  0 files updated, 0 files merged, 6 files removed, 0 files unresolved
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   351
  adding f
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   352
  Editing (b449568bf7fc), you may commit or record as needed now.
27629
e7ff83b2bcfe histedit: list action when intervention is required
timeless <timeless@mozdev.org>
parents: 27406
diff changeset
   353
  (hg histedit --continue to resume)
18935
e5d9441ec281 dispatch: exit with status 1 for an InterventionRequired exception (bc)
Augie Fackler <raf@durin42.com>
parents: 18934
diff changeset
   354
  [1]
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   355
  $ echo f >> f
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   356
  $ hg histedit --continue
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   357
  $ hg log -G
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   358
  @  24:12e89af74238 (secret) k
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   359
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   360
  o  23:636a8687b22e (secret) j
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   361
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   362
  o  22:ccaf0a38653f (secret) i
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   363
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   364
  o  21:11a89d1c2613 (draft) h
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   365
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   366
  o  20:c1dec7ca82ea (draft) g
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   367
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   368
  o  19:087281e68428 (draft) f
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   369
  |
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   370
  o  12:40db8afa467b (public) c
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   371
  |
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   372
  o  0:cb9a9f314b8b (public) a
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   373
  
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   374
  $ cd ..
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   375
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   376
28309
7c22b5bb3a03 tests: fix section description
timeless <timeless@mozdev.org>
parents: 28224
diff changeset
   377
New-commit as secret (config)
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   378
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29970
diff changeset
   379
  $ cp -R base simple-secret
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   380
  $ cd simple-secret
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   381
  $ cat >> .hg/hgrc << EOF
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   382
  > [phases]
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   383
  > new-commit=secret
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   384
  > EOF
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   385
  $ hg histedit -r 'b449568bf7fc' --commands - << EOF
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   386
  > edit b449568bf7fc 11 f
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   387
  > pick 6b70183d2492 12 g
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   388
  > pick 7395e1ff83bd 13 h
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   389
  > pick b605fb7503f2 14 i
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   390
  > pick 3a6c53ee7f3d 15 j
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   391
  > pick ee118ab9fa44 16 k
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   392
  > EOF
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   393
  0 files updated, 0 files merged, 6 files removed, 0 files unresolved
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   394
  adding f
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   395
  Editing (b449568bf7fc), you may commit or record as needed now.
27629
e7ff83b2bcfe histedit: list action when intervention is required
timeless <timeless@mozdev.org>
parents: 27406
diff changeset
   396
  (hg histedit --continue to resume)
18935
e5d9441ec281 dispatch: exit with status 1 for an InterventionRequired exception (bc)
Augie Fackler <raf@durin42.com>
parents: 18934
diff changeset
   397
  [1]
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   398
  $ echo f >> f
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   399
  $ hg histedit --continue
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   400
  $ hg log -G
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   401
  @  24:12e89af74238 (secret) k
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   402
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   403
  o  23:636a8687b22e (secret) j
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   404
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   405
  o  22:ccaf0a38653f (secret) i
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   406
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   407
  o  21:11a89d1c2613 (draft) h
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   408
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   409
  o  20:c1dec7ca82ea (draft) g
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   410
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   411
  o  19:087281e68428 (draft) f
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   412
  |
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   413
  o  12:40db8afa467b (public) c
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   414
  |
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   415
  o  0:cb9a9f314b8b (public) a
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   416
  
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   417
  $ cd ..
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   418
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   419
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   420
Changeset reordering
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   421
-------------------------------------------
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   422
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   423
If a secret changeset is put before a draft one, all descendant should be secret.
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   424
It seems more important to present the secret phase.
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   425
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29970
diff changeset
   426
  $ cp -R base reorder
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   427
  $ cd reorder
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   428
  $ hg histedit -r 'b449568bf7fc' --commands - << EOF
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   429
  > pick b449568bf7fc 11 f
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   430
  > pick 3a6c53ee7f3d 15 j
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   431
  > pick 6b70183d2492 12 g
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   432
  > pick b605fb7503f2 14 i
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   433
  > pick 7395e1ff83bd 13 h
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   434
  > pick ee118ab9fa44 16 k
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   435
  > EOF
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   436
  $ hg log -G
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   437
  @  23:558246857888 (secret) k
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   438
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   439
  o  22:28bd44768535 (secret) h
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   440
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   441
  o  21:d5395202aeb9 (secret) i
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   442
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   443
  o  20:21edda8e341b (secret) g
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   444
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   445
  o  19:5ab64f3a4832 (secret) j
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   446
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   447
  o  13:b449568bf7fc (draft) f
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   448
  |
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   449
  o  12:40db8afa467b (public) c
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   450
  |
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   451
  o  0:cb9a9f314b8b (public) a
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   452
  
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   453
  $ cd ..
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   454
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   455
Changeset folding
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   456
-------------------------------------------
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   457
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   458
Folding a secret changeset with a draft one turn the result secret (again,
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   459
better safe than sorry). Folding between same phase changeset still works
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   460
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   461
Note that there is a few reordering in this series for more extensive test
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   462
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29970
diff changeset
   463
  $ cp -R base folding
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   464
  $ cd folding
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   465
  $ cat >> .hg/hgrc << EOF
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   466
  > [phases]
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   467
  > new-commit=secret
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   468
  > EOF
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   469
  $ hg histedit -r 'b449568bf7fc' --commands - << EOF
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   470
  > pick 7395e1ff83bd 13 h
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   471
  > fold b449568bf7fc 11 f
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   472
  > pick 6b70183d2492 12 g
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   473
  > fold 3a6c53ee7f3d 15 j
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   474
  > pick b605fb7503f2 14 i
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   475
  > fold ee118ab9fa44 16 k
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   476
  > EOF
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   477
  $ hg log -G
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   478
  @  27:f9daec13fb98 (secret) i
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   479
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   480
  o  24:49807617f46a (secret) g
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   481
  |
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   482
  o  21:050280826e04 (draft) h
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   483
  |
26763
50fc80e46786 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com>
parents: 26100
diff changeset
   484
  o  12:40db8afa467b (public) c
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   485
  |
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   486
  o  0:cb9a9f314b8b (public) a
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   487
  
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   488
  $ hg co 49807617f46a
19473
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   489
  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   490
  $ echo wat >> wat
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   491
  $ hg add wat
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   492
  $ hg ci -m 'add wat'
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   493
  created new head
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   494
  $ hg merge f9daec13fb98
19473
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   495
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   496
  (branch merge, don't forget to commit)
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   497
  $ hg ci -m 'merge'
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   498
  $ echo not wat > wat
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   499
  $ hg ci -m 'modify wat'
27977
b698abf971e7 rebase: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27674
diff changeset
   500
  $ hg histedit 050280826e04
19473
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   501
  abort: cannot edit history that contains merges
10a0ae668fe6 histedit: refuse to edit history that contains merges (issue3962)
Augie Fackler <raf@durin42.com>
parents: 19019
diff changeset
   502
  [255]
18440
35513c59f376 histedit: proper phase conservation (issue3724)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 18439
diff changeset
   503
  $ cd ..
31639
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   504
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   505
Check abort behavior
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   506
-------------------------------------------
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   507
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   508
We checks that abort properly clean the repository so the same histedit can be
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   509
attempted later.
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   510
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   511
  $ cp -R base abort
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   512
  $ cd abort
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   513
  $ hg histedit -r 'b449568bf7fc' --commands - << EOF
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   514
  > pick b449568bf7fc 13 f
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   515
  > pick 7395e1ff83bd 15 h
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   516
  > pick 6b70183d2492 14 g
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   517
  > pick b605fb7503f2 16 i
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   518
  > roll 3a6c53ee7f3d 17 j
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   519
  > edit ee118ab9fa44 18 k
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   520
  > EOF
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   521
  Editing (ee118ab9fa44), you may commit or record as needed now.
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   522
  (hg histedit --continue to resume)
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   523
  [1]
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   524
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   525
  $ hg histedit --abort
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   526
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   527
  saved backup bundle to $TESTTMP/abort/.hg/strip-backup/4dc06258baa6-dff4ef05-backup.hg (glob)
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   528
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   529
  $ hg log -G
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   530
  @  18:ee118ab9fa44 (secret) k
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   531
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   532
  o  17:3a6c53ee7f3d (secret) j
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   533
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   534
  o  16:b605fb7503f2 (secret) i
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   535
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   536
  o  15:7395e1ff83bd (draft) h
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   537
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   538
  o  14:6b70183d2492 (draft) g
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   539
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   540
  o  13:b449568bf7fc (draft) f
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   541
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   542
  o  12:40db8afa467b (public) c
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   543
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   544
  o  0:cb9a9f314b8b (public) a
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   545
  
33773
6c1a9fd8361b test: update evolution config
Boris Feld <boris.feld@octobus.net>
parents: 33350
diff changeset
   546
  $ hg histedit -r 'b449568bf7fc' --commands - << EOF --config experimental.stabilization.track-operation=1
31639
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   547
  > pick b449568bf7fc 13 f
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   548
  > pick 7395e1ff83bd 15 h
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   549
  > pick 6b70183d2492 14 g
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   550
  > pick b605fb7503f2 16 i
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   551
  > pick 3a6c53ee7f3d 17 j
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   552
  > edit ee118ab9fa44 18 k
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   553
  > EOF
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   554
  Editing (ee118ab9fa44), you may commit or record as needed now.
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   555
  (hg histedit --continue to resume)
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   556
  [1]
33773
6c1a9fd8361b test: update evolution config
Boris Feld <boris.feld@octobus.net>
parents: 33350
diff changeset
   557
  $ hg histedit --continue --config experimental.stabilization.track-operation=1
31639
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   558
  $ hg log -G
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   559
  @  23:175d6b286a22 (secret) k
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   560
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   561
  o  22:44ca09d59ae4 (secret) j
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   562
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   563
  o  21:31747692a644 (secret) i
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   564
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   565
  o  20:9985cd4f21fa (draft) g
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   566
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   567
  o  19:4dc06258baa6 (draft) h
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   568
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   569
  o  13:b449568bf7fc (draft) f
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   570
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   571
  o  12:40db8afa467b (public) c
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   572
  |
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   573
  o  0:cb9a9f314b8b (public) a
84242dce8305 histedit: test that an aborted histedit can be rerun (with obsolete)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 31638
diff changeset
   574
  
32354
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
   575
  $ hg debugobsolete --rev .
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
   576
  ee118ab9fa44ebb86be85996548b5517a39e5093 175d6b286a224c23f192e79a581ce83131a53fa2 0 (*) {'operation': 'histedit', 'user': 'test'} (glob)