Mercurial > hg
annotate tests/test-fix.t @ 46858:85e3a630cad9
revlog: move the details of revlog "v2" index inside revlog.utils.constants
the revlog module is quite large and this kind of format information would handy
for other module. So let us start to gather this information about the format in
a more appropriate place.
We update various reference to this information to use the new "source of truth"
in the process.
Differential Revision: https://phab.mercurial-scm.org/D10305
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 05 Apr 2021 12:21:12 +0200 |
parents | d083c12032c6 |
children | 7a90fddb13b0 ea563187ee7c |
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 of specific lines in a file. This |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
2 approximates the behavior of code formatters well enough for our tests. |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
3 |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
4 $ 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
|
5 $ cat > $UPPERCASEPY <<EOF |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
6 > import sys |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
7 > 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
|
8 > setbinary(sys.stdin) |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
9 > setbinary(sys.stdout) |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
10 > lines = set() |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
11 > for arg in sys.argv[1:]: |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
12 > if arg == 'all': |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
13 > 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
|
14 > sys.exit(0) |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
15 > else: |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
16 > first, last = arg.split('-') |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
17 > lines.update(range(int(first), int(last) + 1)) |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
18 > for i, line in enumerate(sys.stdin.readlines()): |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
19 > if i + 1 in lines: |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
20 > sys.stdout.write(line.upper()) |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
21 > else: |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
22 > sys.stdout.write(line) |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
23 > EOF |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
24 $ TESTLINES="foo\nbar\nbaz\nqux\n" |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39111
diff
changeset
|
25 $ 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
|
26 foo |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
27 bar |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
28 baz |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
29 qux |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39111
diff
changeset
|
30 $ printf $TESTLINES | "$PYTHON" $UPPERCASEPY all |
37560
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
31 FOO |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
32 BAR |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
33 BAZ |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
34 QUX |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39111
diff
changeset
|
35 $ printf $TESTLINES | "$PYTHON" $UPPERCASEPY 1-1 |
37560
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
36 FOO |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
37 bar |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
38 baz |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
39 qux |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39111
diff
changeset
|
40 $ printf $TESTLINES | "$PYTHON" $UPPERCASEPY 1-2 |
37560
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
41 FOO |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
42 BAR |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
43 baz |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
44 qux |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39111
diff
changeset
|
45 $ printf $TESTLINES | "$PYTHON" $UPPERCASEPY 2-3 |
37560
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
46 foo |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
47 BAR |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
48 BAZ |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
49 qux |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39111
diff
changeset
|
50 $ printf $TESTLINES | "$PYTHON" $UPPERCASEPY 2-2 4-4 |
37560
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
51 foo |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
52 BAR |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
53 baz |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
54 QUX |
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
55 |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
56 Set up the config with two simple fixers: one that fixes specific line ranges, |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
57 and one that always fixes the whole file. They both "fix" files by converting |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
58 letters to uppercase. They use different file extensions, so each test case can |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
59 choose which behavior to use by naming files. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
60 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
61 $ cat >> $HGRCPATH <<EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
62 > [extensions] |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
63 > fix = |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
64 > [experimental] |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
65 > evolution.createmarkers=True |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
66 > evolution.allowunstable=True |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
67 > [fix] |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39111
diff
changeset
|
68 > uppercase-whole-file:command="$PYTHON" $UPPERCASEPY all |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
69 > uppercase-whole-file:pattern=set:**.whole |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
39111
diff
changeset
|
70 > uppercase-changed-lines:command="$PYTHON" $UPPERCASEPY |
37560
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
71 > uppercase-changed-lines:linerange={first}-{last} |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
72 > uppercase-changed-lines:pattern=set:**.changed |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
73 > EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
74 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
75 Help text for fix. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
76 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
77 $ hg help fix |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
78 hg fix [OPTION]... [FILE]... |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
79 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
80 rewrite file content in changesets or working directory |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
81 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
82 Runs any configured tools to fix the content of files. Only affects files |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
83 with changes, unless file arguments are provided. Only affects changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
84 lines of files, unless the --whole flag is used. Some tools may always |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
85 affect the whole file regardless of --whole. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
86 |
45218
3ea3b85df03f
fix: update documentation to reflect preference for --source over --rev
Martin von Zweigbergk <martinvonz@google.com>
parents:
45215
diff
changeset
|
87 If --working-dir is used, files with uncommitted changes in the working |
3ea3b85df03f
fix: update documentation to reflect preference for --source over --rev
Martin von Zweigbergk <martinvonz@google.com>
parents:
45215
diff
changeset
|
88 copy will be fixed. Note that no backup are made. |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
89 |
45218
3ea3b85df03f
fix: update documentation to reflect preference for --source over --rev
Martin von Zweigbergk <martinvonz@google.com>
parents:
45215
diff
changeset
|
90 If revisions are specified with --source, those revisions and their |
3ea3b85df03f
fix: update documentation to reflect preference for --source over --rev
Martin von Zweigbergk <martinvonz@google.com>
parents:
45215
diff
changeset
|
91 descendants will be checked, and they may be replaced with new revisions |
3ea3b85df03f
fix: update documentation to reflect preference for --source over --rev
Martin von Zweigbergk <martinvonz@google.com>
parents:
45215
diff
changeset
|
92 that have fixed file content. By automatically including the descendants, |
3ea3b85df03f
fix: update documentation to reflect preference for --source over --rev
Martin von Zweigbergk <martinvonz@google.com>
parents:
45215
diff
changeset
|
93 no merging, rebasing, or evolution will be required. If an ancestor of the |
3ea3b85df03f
fix: update documentation to reflect preference for --source over --rev
Martin von Zweigbergk <martinvonz@google.com>
parents:
45215
diff
changeset
|
94 working copy is included, then the working copy itself will also be fixed, |
3ea3b85df03f
fix: update documentation to reflect preference for --source over --rev
Martin von Zweigbergk <martinvonz@google.com>
parents:
45215
diff
changeset
|
95 and the working copy will be updated to the fixed parent. |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
96 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
97 When determining what lines of each file to fix at each revision, the |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
98 whole set of revisions being fixed is considered, so that fixes to earlier |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
99 revisions are not forgotten in later ones. The --base flag can be used to |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
100 override this default behavior, though it is not usually desirable to do |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
101 so. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
102 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
103 (use 'hg help -e fix' to show help for the fix extension) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
104 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
105 options ([+] can be repeated): |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
106 |
44574
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44129
diff
changeset
|
107 --all fix all non-public non-obsolete revisions |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44129
diff
changeset
|
108 --base REV [+] revisions to diff against (overrides automatic selection, |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44129
diff
changeset
|
109 and applies to every revision being fixed) |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44129
diff
changeset
|
110 -s --source REV [+] fix the specified revisions and their descendants |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44129
diff
changeset
|
111 -w --working-dir fix the working directory |
5205b46bd887
fix: add a -s option to format a revision and its descendants
Martin von Zweigbergk <martinvonz@google.com>
parents:
44129
diff
changeset
|
112 --whole always fix every line of a file |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
113 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
114 (some details hidden, use --verbose to show complete help) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
115 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
116 $ hg help -e fix |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
117 fix extension - rewrite file content in changesets or working copy |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
118 (EXPERIMENTAL) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
119 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
120 Provides a command that runs configured tools on the contents of modified |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
121 files, writing back any fixes to the working copy or replacing changesets. |
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 Here is an example configuration that causes 'hg fix' to apply automatic |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
124 formatting fixes to modified lines in C++ code: |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
125 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
126 [fix] |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
127 clang-format:command=clang-format --assume-filename={rootpath} |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
128 clang-format:linerange=--lines={first}:{last} |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
129 clang-format:pattern=set:**.cpp or **.hpp |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
130 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
131 The :command suboption forms the first part of the shell command that will be |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
132 used to fix a file. The content of the file is passed on standard input, and |
40532
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
133 the fixed file content is expected on standard output. Any output on standard |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
134 error will be displayed as a warning. If the exit status is not zero, the file |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
135 will not be affected. A placeholder warning is displayed if there is a non- |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
136 zero exit status but no standard error output. Some values may be substituted |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
137 into the command: |
37183
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 {rootpath} The path of the file being fixed, relative to the repo root |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
140 {basename} The name of the file being fixed, without the directory path |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
141 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
142 If the :linerange suboption is set, the tool will only be run if there are |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
143 changed lines in a file. The value of this suboption is appended to the shell |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
144 command once for every range of changed lines in the file. Some values may be |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
145 substituted into the command: |
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 {first} The 1-based line number of the first line in the modified range |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
148 {last} The 1-based line number of the last line in the modified range |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
149 |
42756
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
150 Deleted sections of a file will be ignored by :linerange, because there is no |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
151 corresponding line range in the version being fixed. |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
152 |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
153 By default, tools that set :linerange will only be executed if there is at |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
154 least one changed line range. This is meant to prevent accidents like running |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
155 a code formatter in such a way that it unexpectedly reformats the whole file. |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
156 If such a tool needs to operate on unchanged files, it should set the |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
157 :skipclean suboption to false. |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
158 |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
159 The :pattern suboption determines which files will be passed through each |
43227
f02d3c0eed18
fix: match patterns relative to root
Martin von Zweigbergk <martinvonz@google.com>
parents:
43226
diff
changeset
|
160 configured tool. See 'hg help patterns' for possible values. However, all |
f02d3c0eed18
fix: match patterns relative to root
Martin von Zweigbergk <martinvonz@google.com>
parents:
43226
diff
changeset
|
161 patterns are relative to the repo root, even if that text says they are |
f02d3c0eed18
fix: match patterns relative to root
Martin von Zweigbergk <martinvonz@google.com>
parents:
43226
diff
changeset
|
162 relative to the current working directory. If there are file arguments to 'hg |
f02d3c0eed18
fix: match patterns relative to root
Martin von Zweigbergk <martinvonz@google.com>
parents:
43226
diff
changeset
|
163 fix', the intersection of these patterns is used. |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
164 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
165 There is also a configurable limit for the maximum size of file that will be |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
166 processed by 'hg fix': |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
167 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
168 [fix] |
40532
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
169 maxfilesize = 2MB |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
170 |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
171 Normally, execution of configured tools will continue after a failure |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
172 (indicated by a non-zero exit status). It can also be configured to abort |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
173 after the first such failure, so that no files will be affected if any tool |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
174 fails. This abort will also cause 'hg fix' to exit with a non-zero status: |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
175 |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
176 [fix] |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
177 failure = abort |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
178 |
40566
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
179 When multiple tools are configured to affect a file, they execute in an order |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
180 defined by the :priority suboption. The priority suboption has a default value |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
181 of zero for each tool. Tools are executed in order of descending priority. The |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
182 execution order of tools with equal priority is unspecified. For example, you |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
183 could use the 'sort' and 'head' utilities to keep only the 10 smallest numbers |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
184 in a text file by ensuring that 'sort' runs before 'head': |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
185 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
186 [fix] |
41126
d8f5c615e811
tests: use more portable flags in test-fix.t
Danny Hooper <hooper@google.com>
parents:
41010
diff
changeset
|
187 sort:command = sort -n |
d8f5c615e811
tests: use more portable flags in test-fix.t
Danny Hooper <hooper@google.com>
parents:
41010
diff
changeset
|
188 head:command = head -n 10 |
40566
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
189 sort:pattern = numbers.txt |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
190 head:pattern = numbers.txt |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
191 sort:priority = 2 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
192 head:priority = 1 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
193 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
194 To account for changes made by each tool, the line numbers used for |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
195 incremental formatting are recomputed before executing the next tool. So, each |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
196 tool may see different values for the arguments added by the :linerange |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
197 suboption. |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
198 |
42194
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
199 Each fixer tool is allowed to return some metadata in addition to the fixed |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
200 file content. The metadata must be placed before the file content on stdout, |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
201 separated from the file content by a zero byte. The metadata is parsed as a |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
202 JSON value (so, it should be UTF-8 encoded and contain no zero bytes). A fixer |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
203 tool is expected to produce this metadata encoding if and only if the |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
204 :metadata suboption is true: |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
205 |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
206 [fix] |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
207 tool:command = tool --prepend-json-metadata |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
208 tool:metadata = true |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
209 |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
210 The metadata values are passed to hooks, which can be used to print summaries |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
211 or perform other post-fixing work. The supported hooks are: |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
212 |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
213 "postfixfile" |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
214 Run once for each file in each revision where any fixer tools made changes |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
215 to the file content. Provides "$HG_REV" and "$HG_PATH" to identify the file, |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
216 and "$HG_METADATA" with a map of fixer names to metadata values from fixer |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
217 tools that affected the file. Fixer tools that didn't affect the file have a |
44048
61881b170140
fix: fix grammar/typos in hg help -e fix
timeless <timeless@mozdev.org>
parents:
43227
diff
changeset
|
218 value of None. Only fixer tools that executed are present in the metadata. |
42194
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
219 |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
220 "postfix" |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
221 Run once after all files and revisions have been handled. Provides |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
222 "$HG_REPLACEMENTS" with information about what revisions were created and |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
223 made obsolete. Provides a boolean "$HG_WDIRWRITTEN" to indicate whether any |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
224 files in the working copy were updated. Provides a list "$HG_METADATA" |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
225 mapping fixer tool names to lists of metadata values returned from |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
226 executions that modified a file. This aggregates the same metadata |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
227 previously passed to the "postfixfile" hook. |
0da689a60163
fix: allow fixer tools to return metadata in addition to the file content
Danny Hooper <hooper@google.com>
parents:
42008
diff
changeset
|
228 |
44048
61881b170140
fix: fix grammar/typos in hg help -e fix
timeless <timeless@mozdev.org>
parents:
43227
diff
changeset
|
229 Fixer tools are run in the repository's root directory. This allows them to |
42673
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
230 read configuration files from the working copy, or even write to the working |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
231 copy. The working copy is not updated to match the revision being fixed. In |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
232 fact, several revisions may be fixed in parallel. Writes to the working copy |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
233 are not amended into the revision being fixed; fixer tools should always write |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
234 fixed file content back to stdout as documented above. |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
235 |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
236 list of commands: |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
237 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
238 fix rewrite file content in changesets or working directory |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
239 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
240 (use 'hg help -v -e fix' to show built-in aliases and global options) |
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 There is no default behavior in the absence of --rev and --working-dir. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
243 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
244 $ hg init badusage |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
245 $ cd badusage |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
246 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
247 $ hg fix |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
248 abort: no changesets specified |
45807
f90943d753ef
fix: suggest --source instead of --rev on empty revset
Martin von Zweigbergk <martinvonz@google.com>
parents:
45771
diff
changeset
|
249 (use --source or --working-dir) |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
250 [255] |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
251 $ hg fix --whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
252 abort: no changesets specified |
45807
f90943d753ef
fix: suggest --source instead of --rev on empty revset
Martin von Zweigbergk <martinvonz@google.com>
parents:
45771
diff
changeset
|
253 (use --source or --working-dir) |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
254 [255] |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
255 $ hg fix --base 0 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
256 abort: no changesets specified |
45807
f90943d753ef
fix: suggest --source instead of --rev on empty revset
Martin von Zweigbergk <martinvonz@google.com>
parents:
45771
diff
changeset
|
257 (use --source or --working-dir) |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
258 [255] |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
259 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
260 Fixing a public revision isn't allowed. It should abort early enough that |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
261 nothing happens, even to the working directory. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
262 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
263 $ printf "hello\n" > hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
264 $ hg commit -Aqm "hello" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
265 $ hg phase -r 0 --public |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
266 $ hg fix -r 0 |
43936
699d6be3820a
fix: use rewriteutil.precheck() instead of reimplementing it
Martin von Zweigbergk <martinvonz@google.com>
parents:
43227
diff
changeset
|
267 abort: cannot fix public changesets |
699d6be3820a
fix: use rewriteutil.precheck() instead of reimplementing it
Martin von Zweigbergk <martinvonz@google.com>
parents:
43227
diff
changeset
|
268 (see 'hg help phases' for details) |
45853
b4694ef45db5
errors: raise more specific errors from rewriteutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
45840
diff
changeset
|
269 [10] |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
270 $ hg fix -r 0 --working-dir |
43936
699d6be3820a
fix: use rewriteutil.precheck() instead of reimplementing it
Martin von Zweigbergk <martinvonz@google.com>
parents:
43227
diff
changeset
|
271 abort: cannot fix public changesets |
699d6be3820a
fix: use rewriteutil.precheck() instead of reimplementing it
Martin von Zweigbergk <martinvonz@google.com>
parents:
43227
diff
changeset
|
272 (see 'hg help phases' for details) |
45853
b4694ef45db5
errors: raise more specific errors from rewriteutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
45840
diff
changeset
|
273 [10] |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
274 $ hg cat -r tip hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
275 hello |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
276 $ cat hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
277 hello |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
278 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
279 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
280 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
281 Fixing a clean working directory should do nothing. Even the --whole flag |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
282 shouldn't cause any clean files to be fixed. Specifying a clean file explicitly |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
283 should only fix it if the fixer always fixes the whole file. The combination of |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
284 an explicit filename and --whole should format the entire file regardless. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
285 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
286 $ hg init fixcleanwdir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
287 $ cd fixcleanwdir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
288 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
289 $ printf "hello\n" > hello.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
290 $ printf "world\n" > hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
291 $ hg commit -Aqm "foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
292 $ hg fix --working-dir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
293 $ hg diff |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
294 $ hg fix --working-dir --whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
295 $ hg diff |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
296 $ hg fix --working-dir * |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
297 $ cat * |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
298 hello |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
299 WORLD |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
300 $ hg revert --all --no-backup |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
301 reverting hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
302 $ hg fix --working-dir * --whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
303 $ cat * |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
304 HELLO |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
305 WORLD |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
306 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
307 The same ideas apply to fixing a revision, so we create a revision that doesn't |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
308 modify either of the files in question and try fixing it. This also tests that |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
309 we ignore a file that doesn't match any configured fixer. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
310 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
311 $ hg revert --all --no-backup |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
312 reverting hello.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
313 reverting hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
314 $ printf "unimportant\n" > some.file |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
315 $ hg commit -Aqm "some other file" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
316 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
317 $ hg fix -r . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
318 $ hg cat -r tip * |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
319 hello |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
320 world |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
321 unimportant |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
322 $ hg fix -r . --whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
323 $ hg cat -r tip * |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
324 hello |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
325 world |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
326 unimportant |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
327 $ hg fix -r . * |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
328 $ hg cat -r tip * |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
329 hello |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
330 WORLD |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
331 unimportant |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
332 $ hg fix -r . * --whole --config experimental.evolution.allowdivergence=true |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
333 2 new content-divergent changesets |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
334 $ hg cat -r tip * |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
335 HELLO |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
336 WORLD |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
337 unimportant |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
338 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
339 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
340 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
341 Fixing the working directory should still work if there are no revisions. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
342 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
343 $ hg init norevisions |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
344 $ cd norevisions |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
345 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
346 $ printf "something\n" > something.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
347 $ hg add |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
348 adding something.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
349 $ hg fix --working-dir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
350 $ cat something.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
351 SOMETHING |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
352 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
353 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
354 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
355 Test the effect of fixing the working directory for each possible status, with |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
356 and without providing explicit file arguments. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
357 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
358 $ hg init implicitlyfixstatus |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
359 $ cd implicitlyfixstatus |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
360 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
361 $ printf "modified\n" > modified.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
362 $ printf "removed\n" > removed.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
363 $ printf "deleted\n" > deleted.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
364 $ printf "clean\n" > clean.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
365 $ printf "ignored.whole" > .hgignore |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
366 $ hg commit -Aqm "stuff" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
367 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
368 $ printf "modified!!!\n" > modified.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
369 $ printf "unknown\n" > unknown.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
370 $ printf "ignored\n" > ignored.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
371 $ printf "added\n" > added.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
372 $ hg add added.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
373 $ hg remove removed.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
374 $ rm deleted.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
375 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
376 $ hg status --all |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
377 M modified.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
378 A added.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
379 R removed.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
380 ! deleted.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
381 ? unknown.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
382 I ignored.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
383 C .hgignore |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
384 C clean.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
385 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
386 $ hg fix --working-dir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
387 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
388 $ hg status --all |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
389 M modified.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
390 A added.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
391 R removed.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
392 ! deleted.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
393 ? unknown.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
394 I ignored.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
395 C .hgignore |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
396 C clean.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
397 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
398 $ cat *.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
399 ADDED |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
400 clean |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
401 ignored |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
402 MODIFIED!!! |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
403 unknown |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
404 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
405 $ printf "modified!!!\n" > modified.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
406 $ printf "added\n" > added.whole |
42008
7f6b375a8903
fix: allow fixing untracked files when given as arguments
Danny Hooper <hooper@google.com>
parents:
41126
diff
changeset
|
407 |
7f6b375a8903
fix: allow fixing untracked files when given as arguments
Danny Hooper <hooper@google.com>
parents:
41126
diff
changeset
|
408 Listing the files explicitly causes untracked files to also be fixed, but |
7f6b375a8903
fix: allow fixing untracked files when given as arguments
Danny Hooper <hooper@google.com>
parents:
41126
diff
changeset
|
409 ignored files are still unaffected. |
7f6b375a8903
fix: allow fixing untracked files when given as arguments
Danny Hooper <hooper@google.com>
parents:
41126
diff
changeset
|
410 |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
411 $ hg fix --working-dir *.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
412 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
413 $ hg status --all |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
414 M clean.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
415 M modified.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
416 A added.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
417 R removed.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
418 ! deleted.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
419 ? unknown.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
420 I ignored.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
421 C .hgignore |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
422 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
423 $ cat *.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
424 ADDED |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
425 CLEAN |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
426 ignored |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
427 MODIFIED!!! |
42008
7f6b375a8903
fix: allow fixing untracked files when given as arguments
Danny Hooper <hooper@google.com>
parents:
41126
diff
changeset
|
428 UNKNOWN |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
429 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
430 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
431 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
432 Test that incremental fixing works on files with additions, deletions, and |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
433 changes in multiple line ranges. Note that deletions do not generally cause |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
434 neighboring lines to be fixed, so we don't return a line range for purely |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
435 deleted sections. In the future we should support a :deletion config that |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
436 allows fixers to know where deletions are located. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
437 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
438 $ hg init incrementalfixedlines |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
439 $ cd incrementalfixedlines |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
440 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
441 $ printf "a\nb\nc\nd\ne\nf\ng\n" > foo.txt |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
442 $ hg commit -Aqm "foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
443 $ printf "zz\na\nc\ndd\nee\nff\nf\ngg\n" > foo.txt |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
444 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
445 $ hg --config "fix.fail:command=echo" \ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
446 > --config "fix.fail:linerange={first}:{last}" \ |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
447 > --config "fix.fail:pattern=foo.txt" \ |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
448 > fix --working-dir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
449 $ cat foo.txt |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
450 1:1 4:6 8:8 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
451 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
452 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
453 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
454 Test that --whole fixes all lines regardless of the diffs present. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
455 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
456 $ hg init wholeignoresdiffs |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
457 $ cd wholeignoresdiffs |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
458 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
459 $ printf "a\nb\nc\nd\ne\nf\ng\n" > foo.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
460 $ hg commit -Aqm "foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
461 $ printf "zz\na\nc\ndd\nee\nff\nf\ngg\n" > foo.changed |
42663
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
462 |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
463 $ hg fix --working-dir |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
464 $ cat foo.changed |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
465 ZZ |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
466 a |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
467 c |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
468 DD |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
469 EE |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
470 FF |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
471 f |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
472 GG |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
473 |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
474 $ hg fix --working-dir --whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
475 $ cat foo.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
476 ZZ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
477 A |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
478 C |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
479 DD |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
480 EE |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
481 FF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
482 F |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
483 GG |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
484 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
485 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
486 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
487 We should do nothing with symlinks, and their targets should be unaffected. Any |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
488 other behavior would be more complicated to implement and harder to document. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
489 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
490 #if symlink |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
491 $ hg init dontmesswithsymlinks |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
492 $ cd dontmesswithsymlinks |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
493 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
494 $ printf "hello\n" > hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
495 $ ln -s hello.whole hellolink |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
496 $ hg add |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
497 adding hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
498 adding hellolink |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
499 $ hg fix --working-dir hellolink |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
500 $ hg status |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
501 A hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
502 A hellolink |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
503 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
504 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
505 #endif |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
506 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
507 We should allow fixers to run on binary files, even though this doesn't sound |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
508 like a common use case. There's not much benefit to disallowing it, and users |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
509 can add "and not binary()" to their filesets if needed. The Mercurial |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
510 philosophy is generally to not handle binary files specially anyway. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
511 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
512 $ hg init cantouchbinaryfiles |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
513 $ cd cantouchbinaryfiles |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
514 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
515 $ printf "hello\0\n" > hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
516 $ hg add |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
517 adding hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
518 $ hg fix --working-dir 'set:binary()' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
519 $ cat hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
520 HELLO\x00 (esc) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
521 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
522 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
523 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
524 We have a config for the maximum size of file we will attempt to fix. This can |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
525 be helpful to avoid running unsuspecting fixer tools on huge inputs, which |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
526 could happen by accident without a well considered configuration. A more |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
527 precise configuration could use the size() fileset function if one global limit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
528 is undesired. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
529 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
530 $ hg init maxfilesize |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
531 $ cd maxfilesize |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
532 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
533 $ printf "this file is huge\n" > hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
534 $ hg add |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
535 adding hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
536 $ hg --config fix.maxfilesize=10 fix --working-dir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
537 ignoring file larger than 10 bytes: hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
538 $ cat hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
539 this file is huge |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
540 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
541 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
542 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
543 If we specify a file to fix, other files should be left alone, even if they |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
544 have changes. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
545 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
546 $ hg init fixonlywhatitellyouto |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
547 $ cd fixonlywhatitellyouto |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
548 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
549 $ printf "fix me!\n" > fixme.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
550 $ printf "not me.\n" > notme.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
551 $ hg add |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
552 adding fixme.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
553 adding notme.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
554 $ hg fix --working-dir fixme.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
555 $ cat *.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
556 FIX ME! |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
557 not me. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
558 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
559 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
560 |
42663
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
561 If we try to fix a missing file, we still fix other files. |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
562 |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
563 $ hg init fixmissingfile |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
564 $ cd fixmissingfile |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
565 |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
566 $ printf "fix me!\n" > foo.whole |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
567 $ hg add |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
568 adding foo.whole |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
569 $ hg fix --working-dir foo.whole bar.whole |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
570 bar.whole: $ENOENT$ |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
571 $ cat *.whole |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
572 FIX ME! |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
573 |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
574 $ cd .. |
4b04244f2d5f
fix: add some new test cases
Danny Hooper <hooper@google.com>
parents:
42655
diff
changeset
|
575 |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
576 Specifying a directory name should fix all its files and subdirectories. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
577 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
578 $ hg init fixdirectory |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
579 $ cd fixdirectory |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
580 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
581 $ mkdir -p dir1/dir2 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
582 $ printf "foo\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
583 $ printf "bar\n" > dir1/bar.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
584 $ printf "baz\n" > dir1/dir2/baz.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
585 $ hg add |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
586 adding dir1/bar.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
587 adding dir1/dir2/baz.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
588 adding foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
589 $ hg fix --working-dir dir1 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
590 $ cat foo.whole dir1/bar.whole dir1/dir2/baz.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
591 foo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
592 BAR |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
593 BAZ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
594 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
595 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
596 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
597 Fixing a file in the working directory that needs no fixes should not actually |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
598 write back to the file, so for example the mtime shouldn't change. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
599 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
600 $ hg init donttouchunfixedfiles |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
601 $ cd donttouchunfixedfiles |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
602 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
603 $ printf "NO FIX NEEDED\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
604 $ hg add |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
605 adding foo.whole |
37798
8fa3396a832d
test-fix: fix use of 'f --newer' to check that foo.whole is not updated
Yuya Nishihara <yuya@tcha.org>
parents:
37791
diff
changeset
|
606 $ cp -p foo.whole foo.whole.orig |
37809
80695628adcb
test-fix: normalize precision of mtime copied by 'cp -p'
Yuya Nishihara <yuya@tcha.org>
parents:
37798
diff
changeset
|
607 $ cp -p foo.whole.orig foo.whole |
37593
314f39e5fa86
tests: use `f --newer` instead of `stat -c` in test-fix.t
Augie Fackler <augie@google.com>
parents:
37560
diff
changeset
|
608 $ sleep 2 # mtime has a resolution of one or two seconds. |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
609 $ hg fix --working-dir |
37798
8fa3396a832d
test-fix: fix use of 'f --newer' to check that foo.whole is not updated
Yuya Nishihara <yuya@tcha.org>
parents:
37791
diff
changeset
|
610 $ f foo.whole.orig --newer foo.whole |
8fa3396a832d
test-fix: fix use of 'f --newer' to check that foo.whole is not updated
Yuya Nishihara <yuya@tcha.org>
parents:
37791
diff
changeset
|
611 foo.whole.orig: newer than foo.whole |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
612 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
613 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
614 |
38967
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
615 When a fixer prints to stderr, we don't assume that it has failed. We show the |
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
616 error messages to the user, and we still let the fixer affect the file it was |
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
617 fixing if its exit code is zero. Some code formatters might emit error messages |
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
618 on stderr and nothing on stdout, which would cause us the clear the file, |
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
619 except that they also exit with a non-zero code. We show the user which fixer |
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
620 emitted the stderr, and which revision, but we assume that the fixer will print |
40532
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
621 the filename if it is relevant (since the issue may be non-specific). There is |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
622 also a config to abort (without affecting any files whatsoever) if we see any |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
623 tool with a non-zero exit status. |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
624 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
625 $ hg init showstderr |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
626 $ cd showstderr |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
627 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
628 $ printf "hello\n" > hello.txt |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
629 $ hg add |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
630 adding hello.txt |
40532
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
631 $ cat > $TESTTMP/work.sh <<'EOF' |
37791
72ccb0716302
tests: stabilize test-fix.t for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
37595
diff
changeset
|
632 > printf 'HELLO\n' |
40532
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
633 > printf "$@: some\nerror that didn't stop the tool" >&2 |
38967
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
634 > exit 0 # success despite the stderr output |
37791
72ccb0716302
tests: stabilize test-fix.t for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
37595
diff
changeset
|
635 > EOF |
40532
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
636 $ hg --config "fix.work:command=sh $TESTTMP/work.sh {rootpath}" \ |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
637 > --config "fix.work:pattern=hello.txt" \ |
40532
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
638 > fix --working-dir |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
639 [wdir] work: hello.txt: some |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
640 [wdir] work: error that didn't stop the tool |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
641 $ cat hello.txt |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
642 HELLO |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
643 |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
644 $ printf "goodbye\n" > hello.txt |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
645 $ printf "foo\n" > foo.whole |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
646 $ hg add |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
647 adding foo.whole |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
648 $ cat > $TESTTMP/fail.sh <<'EOF' |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
649 > printf 'GOODBYE\n' |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
650 > printf "$@: some\nerror that did stop the tool\n" >&2 |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
651 > exit 42 # success despite the stdout output |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
652 > EOF |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
653 $ hg --config "fix.fail:command=sh $TESTTMP/fail.sh {rootpath}" \ |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
654 > --config "fix.fail:pattern=hello.txt" \ |
40532
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
655 > --config "fix.failure=abort" \ |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
656 > fix --working-dir |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
657 [wdir] fail: hello.txt: some |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
658 [wdir] fail: error that did stop the tool |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
659 abort: no fixes will be applied |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
660 (use --config fix.failure=continue to apply any successful fixes anyway) |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
661 [255] |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
662 $ cat hello.txt |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
663 goodbye |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
664 $ cat foo.whole |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
665 foo |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
666 |
38967
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
667 $ hg --config "fix.fail:command=sh $TESTTMP/fail.sh {rootpath}" \ |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
668 > --config "fix.fail:pattern=hello.txt" \ |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
669 > fix --working-dir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
670 [wdir] fail: hello.txt: some |
40532
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
671 [wdir] fail: error that did stop the tool |
38967
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
672 $ cat hello.txt |
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
673 goodbye |
40532
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
674 $ cat foo.whole |
93bab80993f4
fix: add a config to abort when a fixer tool fails
Danny Hooper <hooper@google.com>
parents:
39707
diff
changeset
|
675 FOO |
38967
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
676 |
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
677 $ hg --config "fix.fail:command=exit 42" \ |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
678 > --config "fix.fail:pattern=hello.txt" \ |
38967
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
679 > fix --working-dir |
a009589cd32a
fix: determine fixer tool failure by exit code instead of stderr
Danny Hooper <hooper@google.com>
parents:
38590
diff
changeset
|
680 [wdir] fail: exited with status 42 |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
681 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
682 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
683 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
684 Fixing the working directory and its parent revision at the same time should |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
685 check out the replacement revision for the parent. This prevents any new |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
686 uncommitted changes from appearing. We test this for a clean working directory |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
687 and a dirty one. In both cases, all lines/files changed since the grandparent |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
688 will be fixed. The grandparent is the "baserev" for both the parent and the |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
689 working copy. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
690 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
691 $ hg init fixdotandcleanwdir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
692 $ cd fixdotandcleanwdir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
693 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
694 $ printf "hello\n" > hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
695 $ printf "world\n" > world.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
696 $ hg commit -Aqm "the parent commit" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
697 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
698 $ hg parents --template '{rev} {desc}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
699 0 the parent commit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
700 $ hg fix --working-dir -r . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
701 $ hg parents --template '{rev} {desc}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
702 1 the parent commit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
703 $ hg cat -r . *.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
704 HELLO |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
705 WORLD |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
706 $ cat *.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
707 HELLO |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
708 WORLD |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
709 $ hg status |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
710 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
711 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
712 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
713 Same test with a dirty working copy. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
714 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
715 $ hg init fixdotanddirtywdir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
716 $ cd fixdotanddirtywdir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
717 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
718 $ printf "hello\n" > hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
719 $ printf "world\n" > world.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
720 $ hg commit -Aqm "the parent commit" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
721 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
722 $ printf "hello,\n" > hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
723 $ printf "world!\n" > world.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
724 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
725 $ hg parents --template '{rev} {desc}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
726 0 the parent commit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
727 $ hg fix --working-dir -r . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
728 $ hg parents --template '{rev} {desc}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
729 1 the parent commit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
730 $ hg cat -r . *.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
731 HELLO |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
732 WORLD |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
733 $ cat *.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
734 HELLO, |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
735 WORLD! |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
736 $ hg status |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
737 M hello.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
738 M world.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
739 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
740 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
741 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
742 When we have a chain of commits that change mutually exclusive lines of code, |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
743 we should be able to do incremental fixing that causes each commit in the chain |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
744 to include fixes made to the previous commits. This prevents children from |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
745 backing out the fixes made in their parents. A dirty working directory is |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
746 conceptually similar to another commit in the chain. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
747 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
748 $ hg init incrementallyfixchain |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
749 $ cd incrementallyfixchain |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
750 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
751 $ cat > file.changed <<EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
752 > first |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
753 > second |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
754 > third |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
755 > fourth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
756 > fifth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
757 > EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
758 $ hg commit -Aqm "the common ancestor (the baserev)" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
759 $ cat > file.changed <<EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
760 > first (changed) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
761 > second |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
762 > third |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
763 > fourth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
764 > fifth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
765 > EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
766 $ hg commit -Aqm "the first commit to fix" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
767 $ cat > file.changed <<EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
768 > first (changed) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
769 > second |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
770 > third (changed) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
771 > fourth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
772 > fifth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
773 > EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
774 $ hg commit -Aqm "the second commit to fix" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
775 $ cat > file.changed <<EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
776 > first (changed) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
777 > second |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
778 > third (changed) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
779 > fourth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
780 > fifth (changed) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
781 > EOF |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
782 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
783 $ hg fix -r . -r '.^' --working-dir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
784 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
785 $ hg parents --template '{rev}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
786 4 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
787 $ hg cat -r '.^^' file.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
788 first |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
789 second |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
790 third |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
791 fourth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
792 fifth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
793 $ hg cat -r '.^' file.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
794 FIRST (CHANGED) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
795 second |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
796 third |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
797 fourth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
798 fifth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
799 $ hg cat -r . file.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
800 FIRST (CHANGED) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
801 second |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
802 THIRD (CHANGED) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
803 fourth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
804 fifth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
805 $ cat file.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
806 FIRST (CHANGED) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
807 second |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
808 THIRD (CHANGED) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
809 fourth |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
810 FIFTH (CHANGED) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
811 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
812 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
813 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
814 If we incrementally fix a merge commit, we should fix any lines that changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
815 versus either parent. You could imagine only fixing the intersection or some |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
816 other subset, but this is necessary if either parent is being fixed. It |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
817 prevents us from forgetting fixes made in either parent. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
818 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
819 $ hg init incrementallyfixmergecommit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
820 $ cd incrementallyfixmergecommit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
821 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
822 $ printf "a\nb\nc\n" > file.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
823 $ hg commit -Aqm "ancestor" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
824 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
825 $ printf "aa\nb\nc\n" > file.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
826 $ hg commit -m "change a" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
827 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
828 $ hg checkout '.^' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
829 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
|
830 $ printf "a\nb\ncc\n" > file.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
831 $ hg commit -m "change c" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
832 created new head |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
833 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
834 $ hg merge |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
835 merging file.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
836 0 files updated, 1 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
|
837 (branch merge, don't forget to commit) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
838 $ hg commit -m "merge" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
839 $ hg cat -r . file.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
840 aa |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
841 b |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
842 cc |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
843 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
844 $ hg fix -r . --working-dir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
845 $ hg cat -r . file.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
846 AA |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
847 b |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
848 CC |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
849 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
850 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
851 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
852 Abort fixing revisions if there is an unfinished operation. We don't want to |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
853 make things worse by editing files or stripping/obsoleting things. Also abort |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
854 fixing the working directory if there are unresolved merge conflicts. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
855 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
856 $ hg init abortunresolved |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
857 $ cd abortunresolved |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
858 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
859 $ echo "foo1" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
860 $ hg commit -Aqm "foo 1" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
861 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
862 $ hg update null |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
863 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
|
864 $ echo "foo2" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
865 $ hg commit -Aqm "foo 2" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
866 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
867 $ hg --config extensions.rebase= rebase -r 1 -d 0 |
45771
f90a5c211251
rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents:
45218
diff
changeset
|
868 rebasing 1:c3b6dc0e177a tip "foo 2" |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
869 merging foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
870 warning: conflicts while merging foo.whole! (edit, then use 'hg resolve --mark') |
45150
dc5e5577af39
error: unify the error message formats for 'rebase' and 'unshelve'
Daniel Ploch <dploch@google.com>
parents:
44575
diff
changeset
|
871 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue') |
45826
21733e8c924f
errors: add config that lets user get more detailed exit codes
Martin von Zweigbergk <martinvonz@google.com>
parents:
45807
diff
changeset
|
872 [240] |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
873 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
874 $ hg --config extensions.rebase= fix --working-dir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
875 abort: unresolved conflicts |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
876 (use 'hg resolve') |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
877 [255] |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
878 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
879 $ hg --config extensions.rebase= fix -r . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
880 abort: rebase in progress |
45215
a253ded5b03d
morestatus: mention --stop even if not using --verbose
Kyle Lippincott <spectral@google.com>
parents:
45150
diff
changeset
|
881 (use 'hg rebase --continue', 'hg rebase --abort', or 'hg rebase --stop') |
45840
527ce85c2e60
errors: introduce StateError and use it from commands and cmdutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
45826
diff
changeset
|
882 [20] |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
883 |
42363
b02f3aa2fab5
test: add missing 'cd ..' to test case
Danny Hooper <hooper@google.com>
parents:
42194
diff
changeset
|
884 $ cd .. |
b02f3aa2fab5
test: add missing 'cd ..' to test case
Danny Hooper <hooper@google.com>
parents:
42194
diff
changeset
|
885 |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
886 When fixing a file that was renamed, we should diff against the source of the |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
887 rename for incremental fixing and we should correctly reproduce the rename in |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
888 the replacement revision. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
889 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
890 $ hg init fixrenamecommit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
891 $ cd fixrenamecommit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
892 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
893 $ printf "a\nb\nc\n" > source.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
894 $ hg commit -Aqm "source revision" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
895 $ hg move source.changed dest.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
896 $ printf "a\nb\ncc\n" > dest.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
897 $ hg commit -m "dest revision" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
898 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
899 $ hg fix -r . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
900 $ hg log -r tip --copies --template "{file_copies}\n" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
901 dest.changed (source.changed) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
902 $ hg cat -r tip dest.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
903 a |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
904 b |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
905 CC |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
906 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
907 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
908 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
909 When fixing revisions that remove files we must ensure that the replacement |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
910 actually removes the file, whereas it could accidentally leave it unchanged or |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
911 write an empty string to it. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
912 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
913 $ hg init fixremovedfile |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
914 $ cd fixremovedfile |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
915 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
916 $ printf "foo\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
917 $ printf "bar\n" > bar.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
918 $ hg commit -Aqm "add files" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
919 $ hg remove bar.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
920 $ hg commit -m "remove file" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
921 $ hg status --change . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
922 R bar.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
923 $ hg fix -r . foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
924 $ hg status --change tip |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
925 M foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
926 R bar.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
927 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
928 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
929 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
930 If fixing a revision finds no fixes to make, no replacement revision should be |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
931 created. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
932 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
933 $ hg init nofixesneeded |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
934 $ cd nofixesneeded |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
935 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
936 $ printf "FOO\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
937 $ hg commit -Aqm "add file" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
938 $ hg log --template '{rev}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
939 0 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
940 $ hg fix -r . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
941 $ hg log --template '{rev}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
942 0 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
943 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
944 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
945 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
946 If fixing a commit reverts all the changes in the commit, we replace it with a |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
947 commit that changes no files. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
948 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
949 $ hg init nochangesleft |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
950 $ cd nochangesleft |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
951 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
952 $ printf "FOO\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
953 $ hg commit -Aqm "add file" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
954 $ printf "foo\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
955 $ hg commit -m "edit file" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
956 $ hg status --change . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
957 M foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
958 $ hg fix -r . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
959 $ hg status --change tip |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
960 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
961 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
962 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
963 If we fix a parent and child revision together, the child revision must be |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
964 replaced if the parent is replaced, even if the diffs of the child needed no |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
965 fixes. However, we're free to not replace revisions that need no fixes and have |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
966 no ancestors that are replaced. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
967 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
968 $ hg init mustreplacechild |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
969 $ cd mustreplacechild |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
970 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
971 $ printf "FOO\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
972 $ hg commit -Aqm "add foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
973 $ printf "foo\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
974 $ hg commit -m "edit foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
975 $ printf "BAR\n" > bar.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
976 $ hg commit -Aqm "add bar" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
977 |
40569
19e1c26213f1
cleanup: use revision numbers instead of hashes in test output
Danny Hooper <hooper@google.com>
parents:
40566
diff
changeset
|
978 $ hg log --graph --template '{rev} {files}' |
19e1c26213f1
cleanup: use revision numbers instead of hashes in test output
Danny Hooper <hooper@google.com>
parents:
40566
diff
changeset
|
979 @ 2 bar.whole |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
980 | |
40569
19e1c26213f1
cleanup: use revision numbers instead of hashes in test output
Danny Hooper <hooper@google.com>
parents:
40566
diff
changeset
|
981 o 1 foo.whole |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
982 | |
40569
19e1c26213f1
cleanup: use revision numbers instead of hashes in test output
Danny Hooper <hooper@google.com>
parents:
40566
diff
changeset
|
983 o 0 foo.whole |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
984 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
985 $ hg fix -r 0:2 |
40569
19e1c26213f1
cleanup: use revision numbers instead of hashes in test output
Danny Hooper <hooper@google.com>
parents:
40566
diff
changeset
|
986 $ hg log --graph --template '{rev} {files}' |
19e1c26213f1
cleanup: use revision numbers instead of hashes in test output
Danny Hooper <hooper@google.com>
parents:
40566
diff
changeset
|
987 o 4 bar.whole |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
988 | |
40569
19e1c26213f1
cleanup: use revision numbers instead of hashes in test output
Danny Hooper <hooper@google.com>
parents:
40566
diff
changeset
|
989 o 3 |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
990 | |
40569
19e1c26213f1
cleanup: use revision numbers instead of hashes in test output
Danny Hooper <hooper@google.com>
parents:
40566
diff
changeset
|
991 | @ 2 bar.whole |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
992 | | |
40569
19e1c26213f1
cleanup: use revision numbers instead of hashes in test output
Danny Hooper <hooper@google.com>
parents:
40566
diff
changeset
|
993 | x 1 foo.whole |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
994 |/ |
40569
19e1c26213f1
cleanup: use revision numbers instead of hashes in test output
Danny Hooper <hooper@google.com>
parents:
40566
diff
changeset
|
995 o 0 foo.whole |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
996 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
997 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
998 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
999 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1000 It's also possible that the child needs absolutely no changes, but we still |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1001 need to replace it to update its parent. If we skipped replacing the child |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1002 because it had no file content changes, it would become an orphan for no good |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1003 reason. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1004 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1005 $ hg init mustreplacechildevenifnop |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1006 $ cd mustreplacechildevenifnop |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1007 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1008 $ printf "Foo\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1009 $ hg commit -Aqm "add a bad foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1010 $ printf "FOO\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1011 $ hg commit -m "add a good foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1012 $ hg fix -r . -r '.^' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1013 $ hg log --graph --template '{rev} {desc}' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1014 o 3 add a good foo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1015 | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1016 o 2 add a bad foo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1017 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1018 @ 1 add a good foo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1019 | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1020 x 0 add a bad foo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1021 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1022 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1023 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1024 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1025 Similar to the case above, the child revision may become empty as a result of |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1026 fixing its parent. We should still create an empty replacement child. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1027 TODO: determine how this should interact with ui.allowemptycommit given that |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1028 the empty replacement could have children. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1029 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1030 $ hg init mustreplacechildevenifempty |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1031 $ cd mustreplacechildevenifempty |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1032 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1033 $ printf "foo\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1034 $ hg commit -Aqm "add foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1035 $ printf "Foo\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1036 $ hg commit -m "edit foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1037 $ hg fix -r . -r '.^' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1038 $ hg log --graph --template '{rev} {desc}\n' --stat |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1039 o 3 edit foo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1040 | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1041 o 2 add foo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1042 foo.whole | 1 + |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1043 1 files changed, 1 insertions(+), 0 deletions(-) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1044 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1045 @ 1 edit foo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1046 | foo.whole | 2 +- |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1047 | 1 files changed, 1 insertions(+), 1 deletions(-) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1048 | |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1049 x 0 add foo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1050 foo.whole | 1 + |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1051 1 files changed, 1 insertions(+), 0 deletions(-) |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1052 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1053 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1054 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1055 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1056 Fixing a secret commit should replace it with another secret commit. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1057 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1058 $ hg init fixsecretcommit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1059 $ cd fixsecretcommit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1060 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1061 $ printf "foo\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1062 $ hg commit -Aqm "add foo" --secret |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1063 $ hg fix -r . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1064 $ hg log --template '{rev} {phase}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1065 1 secret |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1066 0 secret |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1067 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1068 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1069 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1070 We should also preserve phase when fixing a draft commit while the user has |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1071 their default set to secret. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1072 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1073 $ hg init respectphasesnewcommit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1074 $ cd respectphasesnewcommit |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1075 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1076 $ printf "foo\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1077 $ hg commit -Aqm "add foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1078 $ hg --config phases.newcommit=secret fix -r . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1079 $ hg log --template '{rev} {phase}\n' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1080 1 draft |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1081 0 draft |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1082 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1083 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1084 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1085 Debug output should show what fixer commands are being subprocessed, which is |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1086 useful for anyone trying to set up a new config. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1087 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1088 $ hg init debugoutput |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1089 $ cd debugoutput |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1090 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1091 $ printf "foo\nbar\nbaz\n" > foo.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1092 $ hg commit -Aqm "foo" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1093 $ printf "Foo\nbar\nBaz\n" > foo.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1094 $ hg --debug fix --working-dir |
37560
41ba336d9f1e
fix: use a portable python script instead of sed in test
Danny Hooper <hooper@google.com>
parents:
37183
diff
changeset
|
1095 subprocess: * $TESTTMP/uppercase.py 1-1 3-3 (glob) |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1096 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1097 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1098 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1099 Fixing an obsolete revision can cause divergence, so we abort unless the user |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1100 configures to allow it. This is not yet smart enough to know whether there is a |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1101 successor, but even then it is not likely intentional or idiomatic to fix an |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1102 obsolete revision. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1103 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1104 $ hg init abortobsoleterev |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1105 $ cd abortobsoleterev |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1106 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1107 $ printf "foo\n" > foo.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1108 $ hg commit -Aqm "foo" |
46838
d083c12032c6
tests: update divergence test for `hg fix` to actually result in divergence
Martin von Zweigbergk <martinvonz@google.com>
parents:
45853
diff
changeset
|
1109 $ hg ci --amend -m rewritten |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1110 $ hg --hidden fix -r 0 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1111 abort: fixing obsolete revision could cause divergence |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1112 [255] |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1113 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1114 $ hg --hidden fix -r 0 --config experimental.evolution.allowdivergence=true |
46838
d083c12032c6
tests: update divergence test for `hg fix` to actually result in divergence
Martin von Zweigbergk <martinvonz@google.com>
parents:
45853
diff
changeset
|
1115 2 new content-divergent changesets |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1116 $ hg cat -r tip foo.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1117 FOO |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1118 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1119 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1120 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1121 Test all of the available substitution values for fixer commands. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1122 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1123 $ hg init substitution |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1124 $ cd substitution |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1125 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1126 $ mkdir foo |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1127 $ printf "hello\ngoodbye\n" > foo/bar |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1128 $ hg add |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1129 adding foo/bar |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1130 $ hg --config "fix.fail:command=printf '%s\n' '{rootpath}' '{basename}'" \ |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1131 > --config "fix.fail:linerange='{first}' '{last}'" \ |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
1132 > --config "fix.fail:pattern=foo/bar" \ |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1133 > fix --working-dir |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1134 $ cat foo/bar |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1135 foo/bar |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1136 bar |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1137 1 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1138 2 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1139 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1140 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1141 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1142 The --base flag should allow picking the revisions to diff against for changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1143 files and incremental line formatting. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1144 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1145 $ hg init baseflag |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1146 $ cd baseflag |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1147 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1148 $ printf "one\ntwo\n" > foo.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1149 $ printf "bar\n" > bar.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1150 $ hg commit -Aqm "first" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1151 $ printf "one\nTwo\n" > foo.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1152 $ hg commit -m "second" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1153 $ hg fix -w --base . |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1154 $ hg status |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1155 $ hg fix -w --base null |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1156 $ cat foo.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1157 ONE |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1158 TWO |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1159 $ cat bar.changed |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1160 BAR |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1161 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1162 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1163 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1164 If the user asks to fix the parent of another commit, they are asking to create |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1165 an orphan. We must respect experimental.evolution.allowunstable. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1166 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1167 $ hg init allowunstable |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1168 $ cd allowunstable |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1169 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1170 $ printf "one\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1171 $ hg commit -Aqm "first" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1172 $ printf "two\n" > foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1173 $ hg commit -m "second" |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1174 $ hg --config experimental.evolution.allowunstable=False fix -r '.^' |
43936
699d6be3820a
fix: use rewriteutil.precheck() instead of reimplementing it
Martin von Zweigbergk <martinvonz@google.com>
parents:
43227
diff
changeset
|
1175 abort: cannot fix changeset with children |
45853
b4694ef45db5
errors: raise more specific errors from rewriteutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
45840
diff
changeset
|
1176 [10] |
37183
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1177 $ hg fix -r '.^' |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1178 1 new orphan changesets |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1179 $ hg cat -r 2 foo.whole |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1180 ONE |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1181 |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1182 $ cd .. |
ded5ea279a93
fix: new extension for automatically modifying file contents
Danny Hooper <hooper@google.com>
parents:
diff
changeset
|
1183 |
38590
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1184 The --base flag affects the set of files being fixed. So while the --whole flag |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1185 makes the base irrelevant for changed line ranges, it still changes the |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1186 meaning and effect of the command. In this example, no files or lines are fixed |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1187 until we specify the base, but then we do fix unchanged lines. |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1188 |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1189 $ hg init basewhole |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1190 $ cd basewhole |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1191 $ printf "foo1\n" > foo.changed |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1192 $ hg commit -Aqm "first" |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1193 $ printf "foo2\n" >> foo.changed |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1194 $ printf "bar\n" > bar.changed |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1195 $ hg commit -Aqm "second" |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1196 |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1197 $ hg fix --working-dir --whole |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1198 $ cat *.changed |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1199 bar |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1200 foo1 |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1201 foo2 |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1202 |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1203 $ hg fix --working-dir --base 0 --whole |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1204 $ cat *.changed |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1205 BAR |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1206 FOO1 |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1207 FOO2 |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1208 |
f068495a1c28
fix: add test case that shows why --whole with --base is useful
Danny Hooper <hooper@google.com>
parents:
37809
diff
changeset
|
1209 $ cd .. |
40533
2ecf5c24d0cd
fix: rename :fileset subconfig to :pattern
Danny Hooper <hooper@google.com>
parents:
40532
diff
changeset
|
1210 |
40566
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1211 The execution order of tools can be controlled. This example doesn't work if |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1212 you sort after truncating, but the config defines the correct order while the |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1213 definitions are out of order (which might imply the incorrect order given the |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1214 implementation of fix). The goal is to use multiple tools to select the lowest |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1215 5 numbers in the file. |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1216 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1217 $ hg init priorityexample |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1218 $ cd priorityexample |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1219 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1220 $ cat >> .hg/hgrc <<EOF |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1221 > [fix] |
41126
d8f5c615e811
tests: use more portable flags in test-fix.t
Danny Hooper <hooper@google.com>
parents:
41010
diff
changeset
|
1222 > head:command = head -n 5 |
40566
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1223 > head:pattern = numbers.txt |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1224 > head:priority = 1 |
41126
d8f5c615e811
tests: use more portable flags in test-fix.t
Danny Hooper <hooper@google.com>
parents:
41010
diff
changeset
|
1225 > sort:command = sort -n |
40566
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1226 > sort:pattern = numbers.txt |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1227 > sort:priority = 2 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1228 > EOF |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1229 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1230 $ printf "8\n2\n3\n6\n7\n4\n9\n5\n1\n0\n" > numbers.txt |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1231 $ hg add -q |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1232 $ hg fix -w |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1233 $ cat numbers.txt |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1234 0 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1235 1 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1236 2 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1237 3 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1238 4 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1239 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1240 And of course we should be able to break this by reversing the execution order. |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1241 Test negative priorities while we're at it. |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1242 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1243 $ cat >> .hg/hgrc <<EOF |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1244 > [fix] |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1245 > head:priority = -1 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1246 > sort:priority = -2 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1247 > EOF |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1248 $ printf "8\n2\n3\n6\n7\n4\n9\n5\n1\n0\n" > numbers.txt |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1249 $ hg fix -w |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1250 $ cat numbers.txt |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1251 2 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1252 3 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1253 6 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1254 7 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1255 8 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1256 |
b9557567cc3f
fix: add suboption for configuring execution order of tools
Danny Hooper <hooper@google.com>
parents:
40564
diff
changeset
|
1257 $ cd .. |
40570
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1258 |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1259 It's possible for repeated applications of a fixer tool to create cycles in the |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1260 generated content of a file. For example, two users with different versions of |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1261 a code formatter might fight over the formatting when they run hg fix. In the |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1262 absence of other changes, this means we could produce commits with the same |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1263 hash in subsequent runs of hg fix. This is a problem unless we support |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1264 obsolescence cycles well. We avoid this by adding an extra field to the |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1265 successor which forces it to have a new hash. That's why this test creates |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1266 three revisions instead of two. |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1267 |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1268 $ hg init cyclictool |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1269 $ cd cyclictool |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1270 |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1271 $ cat >> .hg/hgrc <<EOF |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1272 > [fix] |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1273 > swapletters:command = tr ab ba |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1274 > swapletters:pattern = foo |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1275 > EOF |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1276 |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1277 $ echo ab > foo |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1278 $ hg commit -Aqm foo |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1279 |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1280 $ hg fix -r 0 |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1281 $ hg fix -r 1 |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1282 |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1283 $ hg cat -r 0 foo --hidden |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1284 ab |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1285 $ hg cat -r 1 foo --hidden |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1286 ba |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1287 $ hg cat -r 2 foo |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1288 ab |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1289 |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1290 $ cd .. |
ad71c792a8d8
fix: add extra field to fixed revisions to avoid creating obsolescence cycles
Danny Hooper <hooper@google.com>
parents:
40569
diff
changeset
|
1291 |
42673
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1292 We run fixer tools in the repo root so they can look for config files or other |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1293 important things in the working directory. This does NOT mean we are |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1294 reconstructing a working copy of every revision being fixed; we're just giving |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1295 the tool knowledge of the repo's location in case it can do something |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1296 reasonable with that. |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1297 |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1298 $ hg init subprocesscwd |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1299 $ cd subprocesscwd |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1300 |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1301 $ cat >> .hg/hgrc <<EOF |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1302 > [fix] |
42938
a2dffe68b4ea
tests: stabilize test-fix.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
42893
diff
changeset
|
1303 > printcwd:command = "$PYTHON" -c "import os; print(os.getcwd())" |
43226
5272bd7e7517
tests: add test showing that fixer patterns are currently relative to $PWD
Martin von Zweigbergk <martinvonz@google.com>
parents:
43220
diff
changeset
|
1304 > printcwd:pattern = relpath:foo/bar |
43948
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1305 > filesetpwd:command = "$PYTHON" -c "import os; print('fs: ' + os.getcwd())" |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1306 > filesetpwd:pattern = set:**quux |
42673
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1307 > EOF |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1308 |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1309 $ mkdir foo |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1310 $ printf "bar\n" > foo/bar |
43948
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1311 $ printf "quux\n" > quux |
42673
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1312 $ hg commit -Aqm blah |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1313 |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1314 $ hg fix -w -r . foo/bar |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1315 $ hg cat -r tip foo/bar |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1316 $TESTTMP/subprocesscwd |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1317 $ cat foo/bar |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1318 $TESTTMP/subprocesscwd |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1319 |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1320 $ cd foo |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1321 |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1322 $ hg fix -w -r . bar |
43948
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1323 $ hg cat -r tip bar ../quux |
42673
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1324 $TESTTMP/subprocesscwd |
43948
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1325 quux |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1326 $ cat bar ../quux |
42673
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1327 $TESTTMP/subprocesscwd |
43948
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1328 quux |
43226
5272bd7e7517
tests: add test showing that fixer patterns are currently relative to $PWD
Martin von Zweigbergk <martinvonz@google.com>
parents:
43220
diff
changeset
|
1329 $ echo modified > bar |
5272bd7e7517
tests: add test showing that fixer patterns are currently relative to $PWD
Martin von Zweigbergk <martinvonz@google.com>
parents:
43220
diff
changeset
|
1330 $ hg fix -w bar |
5272bd7e7517
tests: add test showing that fixer patterns are currently relative to $PWD
Martin von Zweigbergk <martinvonz@google.com>
parents:
43220
diff
changeset
|
1331 $ cat bar |
43227
f02d3c0eed18
fix: match patterns relative to root
Martin von Zweigbergk <martinvonz@google.com>
parents:
43226
diff
changeset
|
1332 $TESTTMP/subprocesscwd |
42673
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1333 |
43948
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1334 Apparently fixing p1() and its descendants doesn't include wdir() unless |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1335 explicitly stated. |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1336 |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1337 $ hg fix -r '.::' |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1338 $ hg cat -r . ../quux |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1339 quux |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1340 $ hg cat -r tip ../quux |
44009
e685fac56693
match: resolve filesets against the passed `cwd`, not the current one
Matt Harbison <matt_harbison@yahoo.com>
parents:
43962
diff
changeset
|
1341 fs: $TESTTMP/subprocesscwd |
43948
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1342 $ cat ../quux |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1343 quux |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1344 |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1345 Clean files are not fixed unless explicitly named |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1346 $ echo 'dirty' > ../quux |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1347 |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1348 $ hg fix --working-dir |
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1349 $ cat ../quux |
44009
e685fac56693
match: resolve filesets against the passed `cwd`, not the current one
Matt Harbison <matt_harbison@yahoo.com>
parents:
43962
diff
changeset
|
1350 fs: $TESTTMP/subprocesscwd |
43948
9595b6a9f0d5
tests: show that fileset patterns don't work with `fix` when not in repo root
Matt Harbison <matt_harbison@yahoo.com>
parents:
43936
diff
changeset
|
1351 |
42673
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1352 $ cd ../.. |
74b4cd091e0d
fix: run fixer tools in the repo root as cwd so they can use the working copy
Danny Hooper <hooper@google.com>
parents:
42663
diff
changeset
|
1353 |
42655
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1354 Tools configured without a pattern are ignored. It would be too dangerous to |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1355 run them on all files, because this might happen while testing a configuration |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1356 that also deletes all of the file content. There is no reasonable subset of the |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1357 files to use as a default. Users should be explicit about what files are |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1358 affected by a tool. This test also confirms that we don't crash when the |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1359 pattern config is missing, and that we only warn about it once. |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1360 |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1361 $ hg init nopatternconfigured |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1362 $ cd nopatternconfigured |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1363 |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1364 $ printf "foo" > foo |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1365 $ printf "bar" > bar |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1366 $ hg add -q |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1367 $ hg fix --debug --working-dir --config "fix.nopattern:command=echo fixed" |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1368 fixer tool has no pattern configuration: nopattern |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1369 $ cat foo bar |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1370 foobar (no-eol) |
43220
d3d1a3afe7aa
fix: warn when a fixer doesn't have a configured command
Martin von Zweigbergk <martinvonz@google.com>
parents:
43058
diff
changeset
|
1371 $ hg fix --debug --working-dir --config "fix.nocommand:pattern=foo.bar" |
d3d1a3afe7aa
fix: warn when a fixer doesn't have a configured command
Martin von Zweigbergk <martinvonz@google.com>
parents:
43058
diff
changeset
|
1372 fixer tool has no command configuration: nocommand |
42655
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1373 |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1374 $ cd .. |
2987d015aba4
fix: ignore fixer tool configurations that are missing patterns
Danny Hooper <hooper@google.com>
parents:
42654
diff
changeset
|
1375 |
43058
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1376 Tools can be disabled. Disabled tools do nothing but print a debug message. |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1377 |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1378 $ hg init disabled |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1379 $ cd disabled |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1380 |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1381 $ printf "foo\n" > foo |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1382 $ hg add -q |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1383 $ hg fix --debug --working-dir --config "fix.disabled:command=echo fixed" \ |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1384 > --config "fix.disabled:pattern=foo" \ |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1385 > --config "fix.disabled:enabled=false" |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1386 ignoring disabled fixer tool: disabled |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1387 $ cat foo |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1388 foo |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1389 |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1390 $ cd .. |
808a57a08470
fix: add :enabled sub-config for fixer tools
Danny Hooper <hooper@google.com>
parents:
42938
diff
changeset
|
1391 |
42654
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1392 Test that we can configure a fixer to affect all files regardless of the cwd. |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1393 The way we invoke matching must not prohibit this. |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1394 |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1395 $ hg init affectallfiles |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1396 $ cd affectallfiles |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1397 |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1398 $ mkdir foo bar |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1399 $ printf "foo" > foo/file |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1400 $ printf "bar" > bar/file |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1401 $ printf "baz" > baz_file |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1402 $ hg add -q |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1403 |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1404 $ cd bar |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1405 $ hg fix --working-dir --config "fix.cooltool:command=echo fixed" \ |
43226
5272bd7e7517
tests: add test showing that fixer patterns are currently relative to $PWD
Martin von Zweigbergk <martinvonz@google.com>
parents:
43220
diff
changeset
|
1406 > --config "fix.cooltool:pattern=glob:**" |
42654
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1407 $ cd .. |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1408 |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1409 $ cat foo/file |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1410 fixed |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1411 $ cat bar/file |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1412 fixed |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1413 $ cat baz_file |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1414 fixed |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1415 |
22c4bd7d1cbf
fix: add a test case around the effect of cwd on pattern matching
Danny Hooper <hooper@google.com>
parents:
42653
diff
changeset
|
1416 $ cd .. |
42756
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1417 |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1418 Tools should be able to run on unchanged files, even if they set :linerange. |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1419 This includes a corner case where deleted chunks of a file are not considered |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1420 changes. |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1421 |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1422 $ hg init skipclean |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1423 $ cd skipclean |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1424 |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1425 $ printf "a\nb\nc\n" > foo |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1426 $ printf "a\nb\nc\n" > bar |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1427 $ printf "a\nb\nc\n" > baz |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1428 $ hg commit -Aqm "base" |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1429 |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1430 $ printf "a\nc\n" > foo |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1431 $ printf "a\nx\nc\n" > baz |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1432 |
42938
a2dffe68b4ea
tests: stabilize test-fix.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
42893
diff
changeset
|
1433 $ cat >> print.py <<EOF |
a2dffe68b4ea
tests: stabilize test-fix.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
42893
diff
changeset
|
1434 > import sys |
a2dffe68b4ea
tests: stabilize test-fix.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
42893
diff
changeset
|
1435 > for a in sys.argv[1:]: |
a2dffe68b4ea
tests: stabilize test-fix.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
42893
diff
changeset
|
1436 > print(a) |
a2dffe68b4ea
tests: stabilize test-fix.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
42893
diff
changeset
|
1437 > EOF |
a2dffe68b4ea
tests: stabilize test-fix.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
42893
diff
changeset
|
1438 |
42756
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1439 $ hg fix --working-dir foo bar baz \ |
42938
a2dffe68b4ea
tests: stabilize test-fix.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
42893
diff
changeset
|
1440 > --config "fix.changedlines:command=\"$PYTHON\" print.py \"Line ranges:\"" \ |
a2dffe68b4ea
tests: stabilize test-fix.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
42893
diff
changeset
|
1441 > --config 'fix.changedlines:linerange="{first} through {last}"' \ |
43226
5272bd7e7517
tests: add test showing that fixer patterns are currently relative to $PWD
Martin von Zweigbergk <martinvonz@google.com>
parents:
43220
diff
changeset
|
1442 > --config 'fix.changedlines:pattern=glob:**' \ |
42756
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1443 > --config 'fix.changedlines:skipclean=false' |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1444 |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1445 $ cat foo |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1446 Line ranges: |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1447 $ cat bar |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1448 Line ranges: |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1449 $ cat baz |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1450 Line ranges: |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1451 2 through 2 |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1452 |
ed0da6e0d6ee
fix: allow tools to use :linerange, but also run if a file is unchanged
Danny Hooper <hooper@google.com>
parents:
42673
diff
changeset
|
1453 $ cd .. |
43962
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1454 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1455 Test various cases around merges. We were previously dropping files if they were |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1456 created on only the p2 side of the merge, so let's test permutations of: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1457 * added, was fixed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1458 * added, considered for fixing but was already good |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1459 * added, not considered for fixing |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1460 * modified, was fixed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1461 * modified, considered for fixing but was already good |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1462 * modified, not considered for fixing |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1463 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1464 Before the bug was fixed where we would drop files, this test demonstrated the |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1465 following issues: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1466 * new_in_r1.ignored, new_in_r1_already_good.changed, and |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1467 > mod_in_r1_already_good.changed were NOT in the manifest for the merge commit |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1468 * mod_in_r1.ignored had its contents from r0, NOT r1. |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1469 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1470 We're also setting a named branch for every commit to demonstrate that the |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1471 branch is kept intact and there aren't issues updating to another branch in the |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1472 middle of fix. |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1473 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1474 $ hg init merge_keeps_files |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1475 $ cd merge_keeps_files |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1476 $ for f in r0 mod_in_r1 mod_in_r2 mod_in_merge mod_in_child; do |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1477 > for c in changed whole ignored; do |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1478 > printf "hello\n" > $f.$c |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1479 > done |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1480 > printf "HELLO\n" > "mod_in_${f}_already_good.changed" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1481 > done |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1482 $ hg branch -q r0 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1483 $ hg ci -Aqm 'r0' |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1484 $ hg phase -p |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1485 $ make_test_files() { |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1486 > printf "world\n" >> "mod_in_$1.changed" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1487 > printf "world\n" >> "mod_in_$1.whole" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1488 > printf "world\n" >> "mod_in_$1.ignored" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1489 > printf "WORLD\n" >> "mod_in_$1_already_good.changed" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1490 > printf "new in $1\n" > "new_in_$1.changed" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1491 > printf "new in $1\n" > "new_in_$1.whole" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1492 > printf "new in $1\n" > "new_in_$1.ignored" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1493 > printf "ALREADY GOOD, NEW IN THIS REV\n" > "new_in_$1_already_good.changed" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1494 > } |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1495 $ make_test_commit() { |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1496 > make_test_files "$1" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1497 > hg branch -q "$1" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1498 > hg ci -Aqm "$2" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1499 > } |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1500 $ make_test_commit r1 "merge me, pt1" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1501 $ hg co -q ".^" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1502 $ make_test_commit r2 "merge me, pt2" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1503 $ hg merge -qr 1 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1504 $ make_test_commit merge "evil merge" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1505 $ make_test_commit child "child of merge" |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1506 $ make_test_files wdir |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1507 $ hg fix -r 'not public()' -w |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1508 $ hg log -G -T'{rev}:{shortest(node,8)}: branch:{branch} desc:{desc}' |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1509 @ 8:c22ce900: branch:child desc:child of merge |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1510 | |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1511 o 7:5a30615a: branch:merge desc:evil merge |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1512 |\ |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1513 | o 6:4e5acdc4: branch:r2 desc:merge me, pt2 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1514 | | |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1515 o | 5:eea01878: branch:r1 desc:merge me, pt1 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1516 |/ |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1517 o 0:0c548d87: branch:r0 desc:r0 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1518 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1519 $ hg files -r tip |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1520 mod_in_child.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1521 mod_in_child.ignored |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1522 mod_in_child.whole |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1523 mod_in_child_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1524 mod_in_merge.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1525 mod_in_merge.ignored |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1526 mod_in_merge.whole |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1527 mod_in_merge_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1528 mod_in_mod_in_child_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1529 mod_in_mod_in_merge_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1530 mod_in_mod_in_r1_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1531 mod_in_mod_in_r2_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1532 mod_in_r0_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1533 mod_in_r1.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1534 mod_in_r1.ignored |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1535 mod_in_r1.whole |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1536 mod_in_r1_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1537 mod_in_r2.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1538 mod_in_r2.ignored |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1539 mod_in_r2.whole |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1540 mod_in_r2_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1541 new_in_child.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1542 new_in_child.ignored |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1543 new_in_child.whole |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1544 new_in_child_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1545 new_in_merge.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1546 new_in_merge.ignored |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1547 new_in_merge.whole |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1548 new_in_merge_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1549 new_in_r1.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1550 new_in_r1.ignored |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1551 new_in_r1.whole |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1552 new_in_r1_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1553 new_in_r2.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1554 new_in_r2.ignored |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1555 new_in_r2.whole |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1556 new_in_r2_already_good.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1557 r0.changed |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1558 r0.ignored |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1559 r0.whole |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1560 $ for f in "$(hg files -r tip)"; do hg cat -r tip $f -T'{path}:\n{data}\n'; done |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1561 mod_in_child.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1562 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1563 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1564 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1565 mod_in_child.ignored: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1566 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1567 world |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1568 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1569 mod_in_child.whole: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1570 HELLO |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1571 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1572 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1573 mod_in_child_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1574 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1575 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1576 mod_in_merge.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1577 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1578 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1579 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1580 mod_in_merge.ignored: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1581 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1582 world |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1583 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1584 mod_in_merge.whole: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1585 HELLO |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1586 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1587 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1588 mod_in_merge_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1589 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1590 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1591 mod_in_mod_in_child_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1592 HELLO |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1593 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1594 mod_in_mod_in_merge_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1595 HELLO |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1596 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1597 mod_in_mod_in_r1_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1598 HELLO |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1599 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1600 mod_in_mod_in_r2_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1601 HELLO |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1602 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1603 mod_in_r0_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1604 HELLO |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1605 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1606 mod_in_r1.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1607 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1608 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1609 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1610 mod_in_r1.ignored: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1611 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1612 world |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1613 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1614 mod_in_r1.whole: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1615 HELLO |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1616 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1617 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1618 mod_in_r1_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1619 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1620 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1621 mod_in_r2.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1622 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1623 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1624 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1625 mod_in_r2.ignored: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1626 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1627 world |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1628 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1629 mod_in_r2.whole: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1630 HELLO |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1631 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1632 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1633 mod_in_r2_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1634 WORLD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1635 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1636 new_in_child.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1637 NEW IN CHILD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1638 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1639 new_in_child.ignored: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1640 new in child |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1641 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1642 new_in_child.whole: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1643 NEW IN CHILD |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1644 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1645 new_in_child_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1646 ALREADY GOOD, NEW IN THIS REV |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1647 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1648 new_in_merge.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1649 NEW IN MERGE |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1650 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1651 new_in_merge.ignored: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1652 new in merge |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1653 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1654 new_in_merge.whole: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1655 NEW IN MERGE |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1656 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1657 new_in_merge_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1658 ALREADY GOOD, NEW IN THIS REV |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1659 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1660 new_in_r1.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1661 NEW IN R1 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1662 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1663 new_in_r1.ignored: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1664 new in r1 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1665 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1666 new_in_r1.whole: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1667 NEW IN R1 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1668 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1669 new_in_r1_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1670 ALREADY GOOD, NEW IN THIS REV |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1671 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1672 new_in_r2.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1673 NEW IN R2 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1674 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1675 new_in_r2.ignored: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1676 new in r2 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1677 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1678 new_in_r2.whole: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1679 NEW IN R2 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1680 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1681 new_in_r2_already_good.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1682 ALREADY GOOD, NEW IN THIS REV |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1683 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1684 r0.changed: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1685 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1686 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1687 r0.ignored: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1688 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1689 |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1690 r0.whole: |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1691 hello |
eebdd6709868
fix: fix handling of merge commits by using overlayworkingctx
Kyle Lippincott <spectral@google.com>
parents:
43948
diff
changeset
|
1692 |