Mercurial > hg
annotate tests/test-merge4.t @ 47072:4c041c71ec01
revlog: introduce an explicit tracking of what the revlog is about
Since the dawn of time, people have been forced to rely to lossy introspection
of the index filename to determine what the purpose and role of the revlog they
encounter is. This is hacky, error prone, inflexible, abstraction-leaky,
<insert-your-own-complaints-here>.
In f63299ee7e4d Raphaël introduced a new attribute to track this information:
`revlog_kind`. However it is initialized in an odd place and various instances
end up not having it set. In addition is only tracking some of the information
we end up having to introspect in various pieces of code.
So we add a new attribute that holds more data and is more strictly enforced.
This work is done in collaboration with Raphaël.
The `revlog_kind` one will be removed/adapted in the next changeset. We expect
to be able to clean up various existing piece of code and to simplify coming
work around the newer revlog format.
Differential Revision: https://phab.mercurial-scm.org/D10352
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 06 Apr 2021 05:20:24 +0200 |
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 |