Mercurial > hg
annotate tests/test-import-bypass.t @ 51181:dcaa2df1f688
changelog: never inline changelog
The test suite mostly use small repositories, that implies that most changelog in the
tests are inlined. As a result, non-inlined changelog are quite poorly tested.
Since non-inline changelog are most common case for serious repositories, this
lack of testing is a significant problem that results in high profile issue like
the one recently fixed by 66417f55ea33 and 849745d7da89.
Inlining the changelog does not bring much to the table, the number of total
file saved is negligible, and the changelog will be read by most operation
anyway.
So this changeset is make it so we never inline the changelog, and de-inline the
one that are still inlined whenever we touch them.
By doing that, we remove the "dual code path" situation for writing new entry to
the changelog and move to a "single code path" situation. Having a single
code path simplify the code and make sure it is covered by test (if test cover
that situation obviously)
This impact all tests that care about the number of file and the exchange size,
but there is nothing too complicated in them just a lot of churn.
The churn is made "worse" by the fact rust will use the persistent nodemap on
any changelog now. Which is overall a win as it means testing the persistent
nodemap more and having less special cases.
In short, having inline changelog is mostly useless and an endless source of
pain. We get rid of it.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 11 Dec 2023 22:27:59 +0100 |
parents | 6a454e7053a1 |
children |
rev | line source |
---|---|
14611 | 1 $ echo "[extensions]" >> $HGRCPATH |
2 $ echo "purge=" >> $HGRCPATH | |
3 | |
4 $ shortlog() { | |
20117
aa9385f983fa
tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents:
16913
diff
changeset
|
5 > hg log -G --template '{rev}:{node|short} {author} {date|hgdate} - {branch} - {desc|firstline}\n' |
14611 | 6 > } |
7 | |
8 Test --bypass with other options | |
9 | |
10 $ hg init repo-options | |
11 $ cd repo-options | |
12 $ echo a > a | |
13 $ hg ci -Am adda | |
14 adding a | |
15 $ echo a >> a | |
16 $ hg branch foo | |
17 marked working directory as branch foo | |
15615 | 18 (branches are permanent and global, did you want a bookmark?) |
14611 | 19 $ hg ci -Am changea |
20 $ hg export . > ../test.diff | |
21 $ hg up null | |
22 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
23 | |
24 Test importing an existing revision | |
22277
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
25 (this also tests that "hg import" disallows combination of '--exact' |
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
26 and '--edit') |
14611 | 27 |
22277
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
28 $ hg import --bypass --exact --edit ../test.diff |
45740
d1cabce5ef05
import: leverage cmdutil.check_incompatible_arguments()
Martin von Zweigbergk <martinvonz@google.com>
parents:
39707
diff
changeset
|
29 abort: cannot specify both --exact and --edit |
45827
8d72e29ad1e0
errors: introduce InputError and use it from commands and cmdutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
45740
diff
changeset
|
30 [10] |
22277
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
31 $ hg import --bypass --exact ../test.diff |
14611 | 32 applying ../test.diff |
33 $ shortlog | |
34 o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
35 | | |
36 o 0:07f494440405 test 0 0 - default - adda | |
37 | |
38 | |
39 Test failure without --exact | |
40 | |
41 $ hg import --bypass ../test.diff | |
42 applying ../test.diff | |
43 unable to find 'a' for patching | |
29900
50f2966f86ca
import: report directory-relative paths in error messages (issue5224)
liscju <piotr.listkiewicz@gmail.com>
parents:
24260
diff
changeset
|
44 (use '--prefix' to apply patch relative to the current directory) |
14611 | 45 abort: patch failed to apply |
48363
6a454e7053a1
errors: return more detailed errors when failing to parse or apply patch
Martin von Zweigbergk <martinvonz@google.com>
parents:
45827
diff
changeset
|
46 [20] |
14611 | 47 $ hg st |
48 $ shortlog | |
49 o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
50 | | |
51 o 0:07f494440405 test 0 0 - default - adda | |
52 | |
53 | |
54 Test --user, --date and --message | |
55 | |
56 $ hg up 0 | |
57 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
58 $ hg import --bypass --u test2 -d '1 0' -m patch2 ../test.diff | |
59 applying ../test.diff | |
60 $ cat .hg/last-message.txt | |
61 patch2 (no-eol) | |
62 $ shortlog | |
63 o 2:2e127d1da504 test2 1 0 - default - patch2 | |
64 | | |
65 | o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
66 |/ | |
67 @ 0:07f494440405 test 0 0 - default - adda | |
68 | |
15198
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
69 $ hg rollback |
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
70 repository tip rolled back to revision 1 (undo import) |
14611 | 71 |
72 Test --import-branch | |
22277
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
73 (this also tests that editor is not invoked for '--bypass', if the |
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
74 patch contains the commit message, regardless of '--edit') |
14611 | 75 |
22277
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
76 $ HGEDITOR=cat hg import --bypass --import-branch --edit ../test.diff |
14611 | 77 applying ../test.diff |
78 $ shortlog | |
79 o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
80 | | |
81 @ 0:07f494440405 test 0 0 - default - adda | |
82 | |
15198
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
83 $ hg rollback |
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
84 repository tip rolled back to revision 1 (undo import) |
14611 | 85 |
86 Test --strip | |
87 | |
88 $ hg import --bypass --strip 0 - <<EOF | |
89 > # HG changeset patch | |
90 > # User test | |
91 > # Date 0 0 | |
92 > # Branch foo | |
93 > # Node ID 4e322f7ce8e3e4203950eac9ece27bf7e45ffa6c | |
94 > # Parent 07f4944404050f47db2e5c5071e0e84e7a27bba9 | |
95 > changea | |
96 > | |
97 > diff -r 07f494440405 -r 4e322f7ce8e3 a | |
98 > --- a Thu Jan 01 00:00:00 1970 +0000 | |
99 > +++ a Thu Jan 01 00:00:00 1970 +0000 | |
100 > @@ -1,1 +1,2 @@ | |
101 > a | |
102 > +a | |
103 > EOF | |
104 applying patch from stdin | |
15198
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
105 $ hg rollback |
62dc0e7ab092
import: wrap a transaction around the whole command
Greg Ward <greg@gerg.ca>
parents:
15194
diff
changeset
|
106 repository tip rolled back to revision 1 (undo import) |
14611 | 107 |
24260
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
108 Test --strip with --bypass |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
109 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
110 $ mkdir -p dir/dir2 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
111 $ echo bb > dir/dir2/b |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
112 $ echo cc > dir/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
113 $ echo d > dir/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
114 $ hg ci -Am 'addabcd' |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
115 adding dir/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
116 adding dir/dir2/b |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
117 adding dir/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
118 $ shortlog |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
119 @ 2:d805bc8236b6 test 0 0 - default - addabcd |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
120 | |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
121 | o 1:4e322f7ce8e3 test 0 0 - foo - changea |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
122 |/ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
123 o 0:07f494440405 test 0 0 - default - adda |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
124 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
125 $ hg import --bypass --strip 2 --prefix dir/ - <<EOF |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
126 > # HG changeset patch |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
127 > # User test |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
128 > # Date 0 0 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
129 > # Branch foo |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
130 > changeabcd |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
131 > |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
132 > diff --git a/foo/a b/foo/a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
133 > new file mode 100644 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
134 > --- /dev/null |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
135 > +++ b/foo/a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
136 > @@ -0,0 +1 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
137 > +a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
138 > diff --git a/foo/dir2/b b/foo/dir2/b2 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
139 > rename from foo/dir2/b |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
140 > rename to foo/dir2/b2 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
141 > diff --git a/foo/dir2/c b/foo/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
142 > --- a/foo/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
143 > +++ b/foo/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
144 > @@ -0,0 +1 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
145 > +cc |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
146 > diff --git a/foo/d b/foo/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
147 > deleted file mode 100644 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
148 > --- a/foo/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
149 > +++ /dev/null |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
150 > @@ -1,1 +0,0 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
151 > -d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
152 > EOF |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
153 applying patch from stdin |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
154 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
155 $ shortlog |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
156 o 3:5bd46886ca3e test 0 0 - default - changeabcd |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
157 | |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
158 @ 2:d805bc8236b6 test 0 0 - default - addabcd |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
159 | |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
160 | o 1:4e322f7ce8e3 test 0 0 - foo - changea |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
161 |/ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
162 o 0:07f494440405 test 0 0 - default - adda |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
163 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
164 $ hg diff --change 3 --git |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
165 diff --git a/dir/a b/dir/a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
166 new file mode 100644 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
167 --- /dev/null |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
168 +++ b/dir/a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
169 @@ -0,0 +1,1 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
170 +a |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
171 diff --git a/dir/d b/dir/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
172 deleted file mode 100644 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
173 --- a/dir/d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
174 +++ /dev/null |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
175 @@ -1,1 +0,0 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
176 -d |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
177 diff --git a/dir/dir2/b b/dir/dir2/b2 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
178 rename from dir/dir2/b |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
179 rename to dir/dir2/b2 |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
180 diff --git a/dir/dir2/c b/dir/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
181 --- a/dir/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
182 +++ b/dir/dir2/c |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
183 @@ -1,1 +1,2 @@ |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
184 cc |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
185 +cc |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
186 $ hg -q --config extensions.strip= strip . |
76225ab5a5da
cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com>
parents:
24258
diff
changeset
|
187 |
14611 | 188 Test unsupported combinations |
189 | |
190 $ hg import --bypass --no-commit ../test.diff | |
45740
d1cabce5ef05
import: leverage cmdutil.check_incompatible_arguments()
Martin von Zweigbergk <martinvonz@google.com>
parents:
39707
diff
changeset
|
191 abort: cannot specify both --no-commit and --bypass |
45827
8d72e29ad1e0
errors: introduce InputError and use it from commands and cmdutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
45740
diff
changeset
|
192 [10] |
14611 | 193 $ hg import --bypass --similarity 50 ../test.diff |
194 abort: cannot use --similarity with --bypass | |
45827
8d72e29ad1e0
errors: introduce InputError and use it from commands and cmdutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
45740
diff
changeset
|
195 [10] |
24258
093e8a5e995f
commands.import: accept a prefix option
Siddharth Agarwal <sid0@fb.com>
parents:
22947
diff
changeset
|
196 $ hg import --exact --prefix dir/ ../test.diff |
45740
d1cabce5ef05
import: leverage cmdutil.check_incompatible_arguments()
Martin von Zweigbergk <martinvonz@google.com>
parents:
39707
diff
changeset
|
197 abort: cannot specify both --exact and --prefix |
45827
8d72e29ad1e0
errors: introduce InputError and use it from commands and cmdutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
45740
diff
changeset
|
198 [10] |
14611 | 199 |
200 Test commit editor | |
21417
308aaeb956e2
import: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20117
diff
changeset
|
201 (this also tests that editor is invoked, if the patch doesn't contain |
308aaeb956e2
import: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20117
diff
changeset
|
202 the commit message, regardless of '--edit') |
14611 | 203 |
16124
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
204 $ cat > ../test.diff <<EOF |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
205 > diff -r 07f494440405 -r 4e322f7ce8e3 a |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
206 > --- a/a Thu Jan 01 00:00:00 1970 +0000 |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
207 > +++ b/a Thu Jan 01 00:00:00 1970 +0000 |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
208 > @@ -1,1 +1,2 @@ |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
209 > -a |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
210 > +b |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
211 > +c |
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
212 > EOF |
14611 | 213 $ HGEDITOR=cat hg import --bypass ../test.diff |
214 applying ../test.diff | |
215 | |
216 | |
217 HG: Enter commit message. Lines beginning with 'HG:' are removed. | |
218 HG: Leave message empty to abort commit. | |
219 HG: -- | |
220 HG: user: test | |
221 HG: branch 'default' | |
222 HG: changed a | |
223 abort: empty commit message | |
45827
8d72e29ad1e0
errors: introduce InputError and use it from commands and cmdutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
45740
diff
changeset
|
224 [10] |
14611 | 225 |
226 Test patch.eol is handled | |
21417
308aaeb956e2
import: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20117
diff
changeset
|
227 (this also tests that editor is not invoked for '--bypass', if the |
308aaeb956e2
import: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20117
diff
changeset
|
228 commit message is explicitly specified, regardless of '--edit') |
14611 | 229 |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
36027
diff
changeset
|
230 $ "$PYTHON" -c 'open("a", "wb").write(b"a\r\n")' |
14611 | 231 $ hg ci -m makeacrlf |
21417
308aaeb956e2
import: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
20117
diff
changeset
|
232 $ HGEDITOR=cat hg import -m 'should fail because of eol' --edit --bypass ../test.diff |
14611 | 233 applying ../test.diff |
234 patching file a | |
235 Hunk #1 FAILED at 0 | |
236 abort: patch failed to apply | |
48363
6a454e7053a1
errors: return more detailed errors when failing to parse or apply patch
Martin von Zweigbergk <martinvonz@google.com>
parents:
45827
diff
changeset
|
237 [20] |
14611 | 238 $ hg --config patch.eol=auto import -d '0 0' -m 'test patch.eol' --bypass ../test.diff |
239 applying ../test.diff | |
240 $ shortlog | |
16124
0e0060bf2f44
patch: fuzz more aggressively to match patch(1) behaviour
Patrick Mezard <patrick@mezard.eu>
parents:
15623
diff
changeset
|
241 o 3:c606edafba99 test 0 0 - default - test patch.eol |
14611 | 242 | |
243 @ 2:872023de769d test 0 0 - default - makeacrlf | |
244 | | |
245 | o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
246 |/ | |
247 o 0:07f494440405 test 0 0 - default - adda | |
248 | |
249 | |
250 Test applying multiple patches | |
251 | |
252 $ hg up -qC 0 | |
253 $ echo e > e | |
254 $ hg ci -Am adde | |
255 adding e | |
256 created new head | |
257 $ hg export . > ../patch1.diff | |
258 $ hg up -qC 1 | |
259 $ echo f > f | |
260 $ hg ci -Am addf | |
261 adding f | |
262 $ hg export . > ../patch2.diff | |
263 $ cd .. | |
264 $ hg clone -r1 repo-options repo-multi1 | |
265 adding changesets | |
266 adding manifests | |
267 adding file changes | |
268 added 2 changesets with 2 changes to 1 files | |
34661
eb586ed5d8ce
transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
29900
diff
changeset
|
269 new changesets 07f494440405:4e322f7ce8e3 |
14611 | 270 updating to branch foo |
271 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
272 $ cd repo-multi1 | |
273 $ hg up 0 | |
274 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
275 $ hg import --bypass ../patch1.diff ../patch2.diff | |
276 applying ../patch1.diff | |
277 applying ../patch2.diff | |
278 $ shortlog | |
279 o 3:bc8ca3f8a7c4 test 0 0 - default - addf | |
280 | | |
281 o 2:16581080145e test 0 0 - default - adde | |
282 | | |
283 | o 1:4e322f7ce8e3 test 0 0 - foo - changea | |
284 |/ | |
285 @ 0:07f494440405 test 0 0 - default - adda | |
286 | |
287 | |
288 Test applying multiple patches with --exact | |
289 | |
290 $ cd .. | |
291 $ hg clone -r1 repo-options repo-multi2 | |
292 adding changesets | |
293 adding manifests | |
294 adding file changes | |
295 added 2 changesets with 2 changes to 1 files | |
34661
eb586ed5d8ce
transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
29900
diff
changeset
|
296 new changesets 07f494440405:4e322f7ce8e3 |
14611 | 297 updating to branch foo |
298 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
299 $ cd repo-multi2 | |
300 $ hg import --bypass --exact ../patch1.diff ../patch2.diff | |
301 applying ../patch1.diff | |
302 applying ../patch2.diff | |
303 $ shortlog | |
304 o 3:d60cb8989666 test 0 0 - foo - addf | |
305 | | |
306 | o 2:16581080145e test 0 0 - default - adde | |
307 | | | |
308 @ | 1:4e322f7ce8e3 test 0 0 - foo - changea | |
309 |/ | |
310 o 0:07f494440405 test 0 0 - default - adda | |
311 | |
312 | |
313 $ cd .. | |
314 | |
22278
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
315 Test avoiding editor invocation at applying the patch with --exact |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
316 even if commit message is empty |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
317 |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
318 $ cd repo-options |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
319 |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
320 $ echo a >> a |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
321 $ hg commit -m ' ' |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
322 $ hg tip -T "{node}\n" |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
323 1b77bc7d1db9f0e7f1716d515b630516ab386c89 |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
324 $ hg export -o ../empty-log.diff . |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
325 $ hg update -q -C ".^1" |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
326 $ hg --config extensions.strip= strip -q tip |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
327 $ HGEDITOR=cat hg import --exact --bypass ../empty-log.diff |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
328 applying ../empty-log.diff |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
329 $ hg tip -T "{node}\n" |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
330 1b77bc7d1db9f0e7f1716d515b630516ab386c89 |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
331 |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
332 $ cd .. |
ffaaa80fa724
import: avoid editor invocation when importing with "--exact" for exact-ness
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
22277
diff
changeset
|
333 |
16899
8149ff405c78
tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16124
diff
changeset
|
334 #if symlink execbit |
8149ff405c78
tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16124
diff
changeset
|
335 |
14611 | 336 Test complicated patch with --exact |
337 | |
338 $ hg init repo-exact | |
339 $ cd repo-exact | |
340 $ echo a > a | |
341 $ echo c > c | |
342 $ echo d > d | |
343 $ echo e > e | |
344 $ echo f > f | |
345 $ chmod +x f | |
346 $ ln -s c linkc | |
347 $ hg ci -Am t | |
348 adding a | |
349 adding c | |
350 adding d | |
351 adding e | |
352 adding f | |
353 adding linkc | |
354 $ hg cp a aa1 | |
355 $ echo b >> a | |
356 $ echo b > b | |
357 $ hg add b | |
358 $ hg cp a aa2 | |
359 $ echo aa >> aa2 | |
360 $ chmod +x e | |
361 $ chmod -x f | |
362 $ ln -s a linka | |
363 $ hg rm d | |
364 $ hg rm linkc | |
365 $ hg mv c cc | |
366 $ hg ci -m patch | |
367 $ hg export --git . > ../test.diff | |
368 $ hg up -C null | |
369 0 files updated, 0 files merged, 7 files removed, 0 files unresolved | |
370 $ hg purge | |
371 $ hg st | |
372 $ hg import --bypass --exact ../test.diff | |
373 applying ../test.diff | |
374 | |
375 The patch should have matched the exported revision and generated no additional | |
376 data. If not, diff both heads to debug it. | |
377 | |
378 $ shortlog | |
379 o 1:2978fd5c8aa4 test 0 0 - default - patch | |
380 | | |
381 o 0:a0e19e636a43 test 0 0 - default - t | |
382 | |
16899
8149ff405c78
tests: convert some 'hghave execbit' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16124
diff
changeset
|
383 #endif |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16899
diff
changeset
|
384 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16899
diff
changeset
|
385 $ cd .. |