Mercurial > hg
annotate tests/test-fix-topology.t @ 44574:5205b46bd887
fix: add a -s option to format a revision and its descendants
`hg fix -r abc123` will format that commit but not its
descendants. That seems expected given the option name (`-r`), but
it's very rarely what the user wants to do. The problem is that any
descendants of that commit will not be formatted, leaving them as
orphans that are hard to evolve. They are hard to evolve because the
new parent will have formatting changes that the orphan doesn't have.
I talked to Danny Hooper (who wrote most of the fix extension) about
the problem and we agreed that deprecating `-r` in favor of a new `-s`
argument (mimicing rebase's `-s`) would be a good way of reducing the
risk that users end up with these hard-to-evolve orphans. So that's
what this patch implements.
Differential Revision: https://phab.mercurial-scm.org/D8287
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 13 Mar 2020 12:16:00 -0700 |
parents | 40f4a75938ba |
children | 04de8a1ec08f |
rev | line source |
---|---|
37560
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
1 A script that implements uppercasing all letters in a file. |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
2 |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
3 $ UPPERCASEPY="$TESTTMP/uppercase.py" |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
4 $ cat > $UPPERCASEPY <<EOF |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
5 > import sys |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
6 > from mercurial.utils.procutil import setbinary |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
7 > setbinary(sys.stdin) |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
8 > setbinary(sys.stdout) |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
9 > sys.stdout.write(sys.stdin.read().upper()) |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
10 > EOF |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
11 $ TESTLINES="foo\nbar\nbaz\n" |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38420
diff
changeset
|
12 $ printf $TESTLINES | "$PYTHON" $UPPERCASEPY |
37560
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
13 FOO |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
14 BAR |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
15 BAZ |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
16 |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
17 Tests for the fix extension's behavior around non-trivial history topologies. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
18 Looks for correct incremental fixing and reproduction of parent/child |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
19 relationships. We indicate fixed file content by uppercasing it. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
20 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
21 $ cat >> $HGRCPATH <<EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
22 > [extensions] |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
23 > fix = |
44574
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
24 > strip = |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
25 > [fix] |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38420
diff
changeset
|
26 > uppercase-whole-file:command="$PYTHON" $UPPERCASEPY |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
27 > uppercase-whole-file:pattern=set:** |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
28 > EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
29 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
30 This tests the only behavior that should really be affected by obsolescence, so |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
31 we'll test it with evolution off and on. This only changes the revision |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
32 numbers, if all is well. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
33 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
34 #testcases obsstore-off obsstore-on |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
35 #if obsstore-on |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
36 $ cat >> $HGRCPATH <<EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
37 > [experimental] |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
38 > evolution.createmarkers=True |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
39 > evolution.allowunstable=True |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
40 > EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
41 #endif |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
42 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
43 Setting up the test topology. Scroll down to see the graph produced. We make it |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
44 clear which files were modified in each revision. It's enough to test at the |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
45 file granularity, because that demonstrates which baserevs were diffed against. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
46 The computation of changed lines is orthogonal and tested separately. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
47 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
48 $ hg init repo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
49 $ cd repo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
50 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
51 $ printf "aaaa\n" > a |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
52 $ hg commit -Am "change A" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
53 adding a |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
54 $ printf "bbbb\n" > b |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
55 $ hg commit -Am "change B" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
56 adding b |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
57 $ printf "cccc\n" > c |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
58 $ hg commit -Am "change C" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
59 adding c |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
60 $ hg checkout 0 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
61 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
62 $ printf "dddd\n" > d |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
63 $ hg commit -Am "change D" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
64 adding d |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
65 created new head |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
66 $ hg merge -r 2 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
67 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
68 (branch merge, don't forget to commit) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
69 $ printf "eeee\n" > e |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
70 $ hg commit -Am "change E" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
71 adding e |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
72 $ hg checkout 0 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
73 0 files updated, 0 files merged, 4 files removed, 0 files unresolved |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
74 $ printf "ffff\n" > f |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
75 $ hg commit -Am "change F" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
76 adding f |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
77 created new head |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
78 $ hg checkout 0 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
79 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
80 $ printf "gggg\n" > g |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
81 $ hg commit -Am "change G" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
82 adding g |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
83 created new head |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
84 $ hg merge -r 5 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
85 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
86 (branch merge, don't forget to commit) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
87 $ printf "hhhh\n" > h |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
88 $ hg commit -Am "change H" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
89 adding h |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
90 $ hg merge -r 4 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
91 4 files updated, 0 files merged, 0 files removed, 0 files unresolved |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
92 (branch merge, don't forget to commit) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
93 $ printf "iiii\n" > i |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
94 $ hg commit -Am "change I" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
95 adding i |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
96 $ hg checkout 2 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
97 0 files updated, 0 files merged, 6 files removed, 0 files unresolved |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
98 $ printf "jjjj\n" > j |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
99 $ hg commit -Am "change J" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
100 adding j |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
101 created new head |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
102 $ hg checkout 7 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
103 3 files updated, 0 files merged, 3 files removed, 0 files unresolved |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
104 $ printf "kkkk\n" > k |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
105 $ hg add |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
106 adding k |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
107 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
108 $ hg log --graph --template '{rev} {desc}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
109 o 9 change J |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
110 | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
111 | o 8 change I |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
112 | |\ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
113 | | @ 7 change H |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
114 | | |\ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
115 | | | o 6 change G |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
116 | | | | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
117 | | o | 5 change F |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
118 | | |/ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
119 | o | 4 change E |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
120 |/| | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
121 | o | 3 change D |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
122 | |/ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
123 o | 2 change C |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
124 | | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
125 o | 1 change B |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
126 |/ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
127 o 0 change A |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
128 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
129 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
130 Fix all but the root revision and its four children. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
131 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
132 $ hg fix -r '2|4|7|8|9' --working-dir |
44558
ea40fea992e0
tests: simplify test-fix-topology.t slightly by using a `(case !)`
Martin von Zweigbergk <martinvonz@google.com>
parents:
40533
diff
changeset
|
133 saved backup bundle to * (glob) (obsstore-off !) |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
134 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
135 The five revisions remain, but the other revisions were fixed and replaced. All |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
136 parent pointers have been accurately set to reproduce the previous topology |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
137 (though it is rendered in a slightly different order now). |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
138 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
139 #if obsstore-on |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
140 $ hg log --graph --template '{rev} {desc}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
141 o 14 change J |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
142 | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
143 | o 13 change I |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
144 | |\ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
145 | | @ 12 change H |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
146 | | |\ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
147 | o | | 11 change E |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
148 |/| | | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
149 o | | | 10 change C |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
150 | | | | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
151 | | | o 6 change G |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
152 | | | | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
153 | | o | 5 change F |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
154 | | |/ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
155 | o / 3 change D |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
156 | |/ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
157 o / 1 change B |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
158 |/ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
159 o 0 change A |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
160 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
161 $ C=10 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
162 $ E=11 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
163 $ H=12 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
164 $ I=13 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
165 $ J=14 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
166 #else |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
167 $ hg log --graph --template '{rev} {desc}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
168 o 9 change J |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
169 | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
170 | o 8 change I |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
171 | |\ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
172 | | @ 7 change H |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
173 | | |\ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
174 | o | | 6 change E |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
175 |/| | | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
176 o | | | 5 change C |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
177 | | | | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
178 | | | o 4 change G |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
179 | | | | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
180 | | o | 3 change F |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
181 | | |/ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
182 | o / 2 change D |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
183 | |/ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
184 o / 1 change B |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
185 |/ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
186 o 0 change A |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
187 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
188 $ C=5 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
189 $ E=6 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
190 $ H=7 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
191 $ I=8 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
192 $ J=9 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
193 #endif |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
194 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
195 Change C is a root of the set being fixed, so all we fix is what has changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
196 since its parent. That parent, change B, is its baserev. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
197 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
198 $ hg cat -r $C 'set:**' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
199 aaaa |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
200 bbbb |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
201 CCCC |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
202 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
203 Change E is a merge with only one parent being fixed. Its baserevs are the |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
204 unfixed parent plus the baserevs of the other parent. This evaluates to changes |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
205 B and D. We now have to decide what it means to incrementally fix a merge |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
206 commit. We choose to fix anything that has changed versus any baserev. Only the |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
207 undisturbed content of the common ancestor, change A, is unfixed. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
208 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
209 $ hg cat -r $E 'set:**' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
210 aaaa |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
211 BBBB |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
212 CCCC |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
213 DDDD |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
214 EEEE |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
215 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
216 Change H is a merge with neither parent being fixed. This is essentially |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
217 equivalent to the previous case because there is still only one baserev for |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
218 each parent of the merge. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
219 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
220 $ hg cat -r $H 'set:**' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
221 aaaa |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
222 FFFF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
223 GGGG |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
224 HHHH |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
225 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
226 Change I is a merge that has four baserevs; two from each parent. We handle |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
227 multiple baserevs in the same way regardless of how many came from each parent. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
228 So, fixing change H will fix any files that were not exactly the same in each |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
229 baserev. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
230 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
231 $ hg cat -r $I 'set:**' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
232 aaaa |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
233 BBBB |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
234 CCCC |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
235 DDDD |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
236 EEEE |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
237 FFFF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
238 GGGG |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
239 HHHH |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
240 IIII |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
241 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
242 Change J is a simple case with one baserev, but its baserev is not its parent, |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
243 change C. Its baserev is its grandparent, change B. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
244 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
245 $ hg cat -r $J 'set:**' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
246 aaaa |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
247 bbbb |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
248 CCCC |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
249 JJJJ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
250 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
251 The working copy was dirty, so it is treated much like a revision. The baserevs |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
252 for the working copy are inherited from its parent, change H, because it is |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
253 also being fixed. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
254 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
255 $ cat * |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
256 aaaa |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
257 FFFF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
258 GGGG |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
259 HHHH |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
260 KKKK |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
261 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
262 Change A was never a baserev because none of its children were to be fixed. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
263 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
264 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
265 |
44574
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
266 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
267 Test the --source option. We only do this with obsstore on to avoid duplicating |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
268 test code. We rely on the other tests to prove that obsolescence is not an |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
269 important factor here. |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
270 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
271 #if obsstore-on |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
272 $ hg init source-arg |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
273 $ cd source-arg |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
274 $ printf "aaaa\n" > a |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
275 $ hg commit -Am "change A" |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
276 adding a |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
277 $ printf "bbbb\n" > b |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
278 $ hg commit -Am "change B" |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
279 adding b |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
280 $ printf "cccc\n" > c |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
281 $ hg commit -Am "change C" |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
282 adding c |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
283 $ hg checkout 0 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
284 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
285 $ printf "dddd\n" > d |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
286 $ hg commit -Am "change D" |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
287 adding d |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
288 created new head |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
289 $ hg log --graph --template '{rev} {desc}\n' |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
290 @ 3 change D |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
291 | |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
292 | o 2 change C |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
293 | | |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
294 | o 1 change B |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
295 |/ |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
296 o 0 change A |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
297 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
298 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
299 Test passing 'wdir()' to --source |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
300 $ printf "xxxx\n" > x |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
301 $ hg add x |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
302 $ hg fix -s 'wdir()' |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
303 $ cat * |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
304 aaaa |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
305 dddd |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
306 XXXX |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
307 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
308 Test passing '.' to --source |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
309 $ printf "xxxx\n" > x |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
310 $ hg fix -s . |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
311 $ hg log --graph --template '{rev} {desc}\n' |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
312 @ 4 change D |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
313 | |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
314 | o 2 change C |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
315 | | |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
316 | o 1 change B |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
317 |/ |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
318 o 0 change A |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
319 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
320 $ cat * |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
321 aaaa |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
322 DDDD |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
323 XXXX |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
324 $ hg strip -qf 4 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
325 $ hg co -q 3 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
326 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
327 Test passing other branch to --source |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
328 $ printf "xxxx\n" > x |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
329 $ hg add x |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
330 $ hg fix -s 2 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
331 $ hg log --graph --template '{rev} {desc}\n' |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
332 o 4 change C |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
333 | |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
334 | @ 3 change D |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
335 | | |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
336 o | 1 change B |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
337 |/ |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
338 o 0 change A |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
339 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
340 $ hg cat -r 4 b c |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
341 bbbb |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
342 CCCC |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
343 $ cat * |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
344 aaaa |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
345 dddd |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
346 xxxx |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
347 $ hg strip -qf 4 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
348 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
349 Test passing multiple revisions to --source |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
350 $ hg fix -s '2 + .' |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
351 $ hg log --graph --template '{rev} {desc}\n' |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
352 @ 5 change D |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
353 | |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
354 | o 4 change C |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
355 | | |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
356 | o 1 change B |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
357 |/ |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
358 o 0 change A |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
359 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
360 $ hg cat -r 4 b c |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
361 bbbb |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
362 CCCC |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
363 $ cat * |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
364 aaaa |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
365 DDDD |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
366 XXXX |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
367 |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
368 $ cd .. |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
369 #endif |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44560
diff
changeset
|
370 |
37595
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
371 The --all flag should fix anything that wouldn't cause a problem if you fixed |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
372 it, including the working copy. Obsolete revisions are not fixed because that |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
373 could cause divergence. Public revisions would cause an abort because they are |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
374 immutable. We can fix orphans because their successors are still just orphans |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
375 of the original obsolete parent. When obsolesence is off, we're just fixing and |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
376 replacing anything that isn't public. |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
377 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
378 $ hg init fixall |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
379 $ cd fixall |
44560
40f4a75938ba
fix: disallow `hg fix --all --working-dir`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44558
diff
changeset
|
380 $ hg fix --all --working-dir |
40f4a75938ba
fix: disallow `hg fix --all --working-dir`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44558
diff
changeset
|
381 abort: cannot specify both --working-dir and --all |
40f4a75938ba
fix: disallow `hg fix --all --working-dir`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44558
diff
changeset
|
382 [255] |
37595
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
383 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
384 #if obsstore-on |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
385 $ printf "one\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
386 $ hg commit -Aqm "first" |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
387 $ hg phase --public |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
388 $ hg tag --local root |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
389 $ printf "two\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
390 $ hg commit -m "second" |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
391 $ printf "three\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
392 $ hg commit -m "third" --secret |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
393 $ hg tag --local secret |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
394 $ hg checkout root |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
395 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
396 $ printf "four\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
397 $ hg commit -m "fourth" |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
398 created new head |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
399 $ printf "five\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
400 $ hg commit -m "fifth" |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
401 $ hg tag --local replaced |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
402 $ printf "six\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
403 $ hg commit -m "sixth" |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
404 $ hg checkout replaced |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
405 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
406 $ printf "seven\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
407 $ hg commit --amend |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
408 1 new orphan changesets |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
409 $ hg checkout secret |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
410 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
411 $ printf "uncommitted\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
412 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
413 $ hg log --graph --template '{rev} {desc} {phase}\n' |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
414 o 6 fifth draft |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
415 | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
416 | * 5 sixth draft |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
417 | | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
418 | x 4 fifth draft |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
419 |/ |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
420 o 3 fourth draft |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
421 | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
422 | @ 2 third secret |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
423 | | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
424 | o 1 second draft |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
425 |/ |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
426 o 0 first public |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
427 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
428 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
429 $ hg fix --all |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
430 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
431 $ hg log --graph --template '{rev} {desc}\n' -r 'sort(all(), topo)' --hidden |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
432 o 11 fifth |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
433 | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
434 o 9 fourth |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
435 | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
436 | @ 8 third |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
437 | | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
438 | o 7 second |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
439 |/ |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
440 | * 10 sixth |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
441 | | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
442 | | x 5 sixth |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
443 | |/ |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
444 | x 4 fifth |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
445 | | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
446 | | x 6 fifth |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
447 | |/ |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
448 | x 3 fourth |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
449 |/ |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
450 | x 2 third |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
451 | | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
452 | x 1 second |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
453 |/ |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
454 o 0 first |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
455 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
456 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
457 $ hg cat -r 7 foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
458 TWO |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
459 $ hg cat -r 8 foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
460 THREE |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
461 $ hg cat -r 9 foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
462 FOUR |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
463 $ hg cat -r 10 foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
464 SIX |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
465 $ hg cat -r 11 foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
466 SEVEN |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
467 $ cat foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
468 UNCOMMITTED |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
469 #else |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
470 $ printf "one\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
471 $ hg commit -Aqm "first" |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
472 $ hg phase --public |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
473 $ hg tag --local root |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
474 $ printf "two\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
475 $ hg commit -m "second" |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
476 $ printf "three\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
477 $ hg commit -m "third" --secret |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
478 $ hg tag --local secret |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
479 $ hg checkout root |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
480 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
481 $ printf "four\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
482 $ hg commit -m "fourth" |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
483 created new head |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
484 $ printf "uncommitted\n" > foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
485 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
486 $ hg log --graph --template '{rev} {desc} {phase}\n' |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
487 @ 3 fourth draft |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
488 | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
489 | o 2 third secret |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
490 | | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
491 | o 1 second draft |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
492 |/ |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
493 o 0 first public |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
494 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
495 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
496 $ hg fix --all |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
497 saved backup bundle to * (glob) |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
498 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
499 $ hg log --graph --template '{rev} {desc} {phase}\n' |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
500 @ 3 fourth draft |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
501 | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
502 | o 2 third secret |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
503 | | |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
504 | o 1 second draft |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
505 |/ |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
506 o 0 first public |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
507 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
508 $ hg cat -r 0 foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
509 one |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
510 $ hg cat -r 1 foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
511 TWO |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
512 $ hg cat -r 2 foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
513 THREE |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
514 $ hg cat -r 3 foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
515 FOUR |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
516 $ cat foo.whole |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
517 UNCOMMITTED |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
518 #endif |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
519 |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
520 $ cd .. |
e2506748b47f
fix: add --all flag to fix non-public non-obsolete revisions
Danny Hooper <hooper@google.com>
parents:
37560
diff
changeset
|
521 |