Mercurial > hg
annotate tests/test-merge4.t @ 48976:877d7e1a4223 stable
amend: fix amend with copies in extras
If copy information is stored only in the commit extras and not in
filelogs, then they get lost on amend if the file wasn't also modified
in the working copy. That's because we create `filectx` object from
the old commit in those cases, and the `.copysource()` of such objects
read only from the filelog. This patch fixes it by always creating a
new `memfilectx` in these cases, passing the calculated copy
information to it.
Differential Revision: https://phab.mercurial-scm.org/D12387
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 18 Mar 2022 21:15:54 -0700 |
parents | fc4fb2f17dd4 |
children | 55c6ebd11cb9 |
rev | line source |
---|---|
11977
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
1 $ hg init |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
2 $ echo This is file a1 > a |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
3 $ hg add a |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11977
diff
changeset
|
4 $ hg commit -m "commit #0" |
11977
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
5 $ echo This is file b1 > b |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
6 $ hg add b |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11977
diff
changeset
|
7 $ hg commit -m "commit #1" |
11977
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
8 $ hg update 0 |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
9 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
10 $ echo This is file c1 > c |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
11 $ hg add c |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11977
diff
changeset
|
12 $ hg commit -m "commit #2" |
11977
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
13 created new head |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
14 $ hg merge 1 |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
15 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
16 (branch merge, don't forget to commit) |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
17 $ rm b |
db2a291e25e9
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
2283
diff
changeset
|
18 $ echo This is file c22 > c |
16536
63c817ea4a70
commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents:
12156
diff
changeset
|
19 |
63c817ea4a70
commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents:
12156
diff
changeset
|
20 Test hg behaves when committing with a missing file added by a merge |
63c817ea4a70
commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents:
12156
diff
changeset
|
21 |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11977
diff
changeset
|
22 $ hg commit -m "commit #3" |
16536
63c817ea4a70
commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents:
12156
diff
changeset
|
23 abort: cannot commit merge with missing files |
63c817ea4a70
commit: abort on merge with missing files
Patrick Mezard <patrick@mezard.eu>
parents:
12156
diff
changeset
|
24 [255] |
416
5e9e8b8d2629
[PATCH] Removal of a file added by merging branches
mpm@selenic.com
parents:
diff
changeset
|
25 |
44343
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
26 |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
27 Test conflict*() revsets |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
28 |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
29 # Bad usage |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
30 $ hg log -r 'conflictlocal(foo)' |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
31 hg: parse error: conflictlocal takes no arguments |
45895
fc4fb2f17dd4
errors: use exit code 10 for parse errors
Martin von Zweigbergk <martinvonz@google.com>
parents:
44343
diff
changeset
|
32 [10] |
44343
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
33 $ hg log -r 'conflictother(foo)' |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
34 hg: parse error: conflictother takes no arguments |
45895
fc4fb2f17dd4
errors: use exit code 10 for parse errors
Martin von Zweigbergk <martinvonz@google.com>
parents:
44343
diff
changeset
|
35 [10] |
44343
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
36 $ hg co -C . |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
37 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
38 # No merge parents when not merging |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
39 $ hg log -r 'conflictlocal() + conflictother()' |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
40 # No merge parents when there is no conflict |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
41 $ hg merge 1 |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
42 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
43 (branch merge, don't forget to commit) |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
44 $ hg log -r 'conflictlocal() + conflictother()' |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
45 $ hg co -C . |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
46 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
47 $ echo conflict > b |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
48 $ hg ci -Aqm 'conflicting change to b' |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
49 $ hg merge 1 |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
50 merging b |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
51 warning: conflicts while merging b! (edit, then use 'hg resolve --mark') |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
52 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
53 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
54 [1] |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
55 # Shows merge parents when there is a conflict |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
56 $ hg log -r 'conflictlocal()' -T '{rev} {desc}\n' |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
57 3 conflicting change to b |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
58 $ hg log -r 'conflictother()' -T '{rev} {desc}\n' |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
16536
diff
changeset
|
59 1 commit #1 |