Mercurial > hg
annotate tests/test-import-bypass.t @ 41163:0101a35deae2
phabricator: warn if unable to amend, instead of aborting after posting
There was a divergence in behavior here between obsolete and strip based
amending. I first noticed the abort when testing outside of the test harness,
but then had trouble recreating it here after reverting the code changes. It
turns out, strip based amend was successfully amending the public commit after
it was posted! It looks like the protection is in the `commit --amend` command,
not in the underlying code that it calls.
I considered doing a preflight check and aborting. But the locks are only
acquired at the end, if amending, and this is too large a section of code to be
wrapped in a maybe-it's-held-or-not context manager for my tastes.
Additionally, some people do post-push reviews, and amending is the default
behavior, so they shouldn't see a misleading error message.
The lack of a 'Differential Revision' entry in the commit message breaks a
{phabreview} test, so it had to be partially conditionalized.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 05 Jan 2019 15:20:33 -0500 |
parents | 5abc47d4ca6b |
children | d1cabce5ef05 |
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 |
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
29 abort: cannot use --exact with --edit |
e116abad3afa
import: disallow meaningless combination of "--exact" and "--edit"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21417
diff
changeset
|
30 [255] |
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 |
46 [255] | |
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 | |
191 abort: cannot use --no-commit with --bypass | |
192 [255] | |
193 $ hg import --bypass --similarity 50 ../test.diff | |
194 abort: cannot use --similarity with --bypass | |
195 [255] | |
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 |
093e8a5e995f
commands.import: accept a prefix option
Siddharth Agarwal <sid0@fb.com>
parents:
22947
diff
changeset
|
197 abort: cannot use --exact with --prefix |
093e8a5e995f
commands.import: accept a prefix option
Siddharth Agarwal <sid0@fb.com>
parents:
22947
diff
changeset
|
198 [255] |
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 | |
224 [255] | |
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 | |
237 [255] | |
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 .. |