Show More
@@ -0,0 +1,94 b'' | |||||
|
1 | $ . "$TESTDIR/histedit-helpers.sh" | |||
|
2 | ||||
|
3 | Enable obsolete | |||
|
4 | ||||
|
5 | $ cat > ${TESTTMP}/obs.py << EOF | |||
|
6 | > import mercurial.obsolete | |||
|
7 | > mercurial.obsolete._enabled = True | |||
|
8 | > EOF | |||
|
9 | ||||
|
10 | $ cat >> $HGRCPATH << EOF | |||
|
11 | > [ui] | |||
|
12 | > logtemplate= {rev}:{node|short} {desc|firstline} | |||
|
13 | > [phases] | |||
|
14 | > publish=False | |||
|
15 | > [extensions]' | |||
|
16 | > histedit= | |||
|
17 | > | |||
|
18 | > obs=${TESTTMP}/obs.py | |||
|
19 | > EOF | |||
|
20 | ||||
|
21 | $ hg init base | |||
|
22 | $ cd base | |||
|
23 | ||||
|
24 | $ for x in a b c d e f ; do | |||
|
25 | > echo $x > $x | |||
|
26 | > hg add $x | |||
|
27 | > hg ci -m $x | |||
|
28 | > done | |||
|
29 | ||||
|
30 | $ hg log --graph | |||
|
31 | @ 5:652413bf663e f | |||
|
32 | | | |||
|
33 | o 4:e860deea161a e | |||
|
34 | | | |||
|
35 | o 3:055a42cdd887 d | |||
|
36 | | | |||
|
37 | o 2:177f92b77385 c | |||
|
38 | | | |||
|
39 | o 1:d2ae7f538514 b | |||
|
40 | | | |||
|
41 | o 0:cb9a9f314b8b a | |||
|
42 | ||||
|
43 | ||||
|
44 | $ HGEDITOR=cat hg histedit 1 | |||
|
45 | pick d2ae7f538514 1 b | |||
|
46 | pick 177f92b77385 2 c | |||
|
47 | pick 055a42cdd887 3 d | |||
|
48 | pick e860deea161a 4 e | |||
|
49 | pick 652413bf663e 5 f | |||
|
50 | ||||
|
51 | # Edit history between d2ae7f538514 and 652413bf663e | |||
|
52 | # | |||
|
53 | # Commands: | |||
|
54 | # p, pick = use commit | |||
|
55 | # e, edit = use commit, but stop for amending | |||
|
56 | # f, fold = use commit, but fold into previous commit (combines N and N-1) | |||
|
57 | # d, drop = remove commit from history | |||
|
58 | # m, mess = edit message without changing commit content | |||
|
59 | # | |||
|
60 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
61 | $ cat >> commands.txt <<EOF | |||
|
62 | > pick 177f92b77385 2 c | |||
|
63 | > drop d2ae7f538514 1 b | |||
|
64 | > pick 055a42cdd887 3 d | |||
|
65 | > fold e860deea161a 4 e | |||
|
66 | > pick 652413bf663e 5 f | |||
|
67 | > EOF | |||
|
68 | $ hg histedit 1 --commands commands.txt --verbose | grep histedit | |||
|
69 | saved backup bundle to $TESTTMP/base/.hg/strip-backup/34a9919932c1-backup.hg (glob) | |||
|
70 | $ hg log --graph --hidden | |||
|
71 | @ 8:0efacef7cb48 f | |||
|
72 | | | |||
|
73 | o 7:ae467701c500 d | |||
|
74 | | | |||
|
75 | o 6:d36c0562f908 c | |||
|
76 | | | |||
|
77 | | x 5:652413bf663e f | |||
|
78 | | | | |||
|
79 | | x 4:e860deea161a e | |||
|
80 | | | | |||
|
81 | | x 3:055a42cdd887 d | |||
|
82 | | | | |||
|
83 | | x 2:177f92b77385 c | |||
|
84 | | | | |||
|
85 | | x 1:d2ae7f538514 b | |||
|
86 | |/ | |||
|
87 | o 0:cb9a9f314b8b a | |||
|
88 | ||||
|
89 | $ hg debugobsolete | |||
|
90 | e860deea161a2f77de56603b340ebbb4536308ae ae467701c5006bf21ffcfdb555b3d6b63280b6b7 0 {'date': '*', 'user': 'test'} (glob) | |||
|
91 | 652413bf663ef2a641cab26574e46d5f5a64a55a 0efacef7cb481bf574f69075b82d044fdbe5c20f 0 {'date': '*': 'test'} (glob) | |||
|
92 | d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0 {'date': '*', 'user': 'test'} (glob) | |||
|
93 | 055a42cdd88768532f9cf79daa407fc8d138de9b ae467701c5006bf21ffcfdb555b3d6b63280b6b7 0 {'date': '*': 'test'} (glob) | |||
|
94 | 177f92b773850b59254aa5e923436f921b55483b d36c0562f908c692f5204d606d4ff3537d41f1bf 0 {'date': '*', 'user': 'test'} (glob) |
@@ -156,6 +156,7 b' from mercurial import node' | |||||
156 | from mercurial import repair |
|
156 | from mercurial import repair | |
157 | from mercurial import scmutil |
|
157 | from mercurial import scmutil | |
158 | from mercurial import util |
|
158 | from mercurial import util | |
|
159 | from mercurial import obsolete | |||
159 | from mercurial import merge as mergemod |
|
160 | from mercurial import merge as mergemod | |
160 | from mercurial.i18n import _ |
|
161 | from mercurial.i18n import _ | |
161 |
|
162 | |||
@@ -508,6 +509,14 b' def histedit(ui, repo, *parent, **opts):' | |||||
508 | if mapping: |
|
509 | if mapping: | |
509 | movebookmarks(ui, repo, mapping, topmost, ntm) |
|
510 | movebookmarks(ui, repo, mapping, topmost, ntm) | |
510 | # TODO update mq state |
|
511 | # TODO update mq state | |
|
512 | if obsolete._enabled: | |||
|
513 | markers = [] | |||
|
514 | for prec, succs in mapping.iteritems(): | |||
|
515 | markers.append((repo[prec], | |||
|
516 | tuple(repo[s] for s in succs))) | |||
|
517 | if markers: | |||
|
518 | obsolete.createmarkers(repo, markers) | |||
|
519 | else: | |||
511 | cleanupnode(ui, repo, 'replaced', mapping) |
|
520 | cleanupnode(ui, repo, 'replaced', mapping) | |
512 |
|
521 | |||
513 | cleanupnode(ui, repo, 'temp', tmpnodes) |
|
522 | cleanupnode(ui, repo, 'temp', tmpnodes) |
General Comments 0
You need to be logged in to leave comments.
Login now