Mercurial > hg
annotate tests/test-double-merge.t @ 43422:b9f791090211
rust-cpython: rename PyLeakedRef to PyLeaked
This series will make PyLeaked* behave more like a Python iterator, which
means mutation of the owner object will be allowed and the leaked reference
(i.e. the iterator) will be invalidated instead.
I'll add PyLeakedRef/PyLeakedRefMut structs which will represent a "borrowed"
state, and prevent the underlying value from being mutably borrowed while the
leaked reference is in use:
let shared = self.inner_shared(py);
let leaked = shared.leak_immutable();
{
let leaked_ref: PyLeakedRef<_> = leaked.borrow(py);
shared.borrow_mut(); // panics since the underlying value is borrowed
}
shared.borrow_mut(); // allowed
The relation between PyLeaked* structs is quite similar to RefCell/Ref/RefMut,
but the implementation can't be reused because the borrowing state will have
to be shared across objects having no lifetime relation.
PyLeaked isn't named as PyLeakedCell since it isn't actually a cell in that
leaked.borrow_mut() will require &mut self.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 12 Oct 2019 19:10:51 +0900 |
parents | 91a0bc50b288 |
children | 17e12938f8e7 |
rev | line source |
---|---|
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
1 $ hg init repo |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
2 $ cd repo |
5042
f191bc3916f7
merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
3 |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
4 $ echo line 1 > foo |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11973
diff
changeset
|
5 $ hg ci -qAm 'add foo' |
5042
f191bc3916f7
merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
6 |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
7 copy foo to bar and change both files |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
8 $ hg cp foo bar |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
9 $ echo line 2-1 >> foo |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
10 $ echo line 2-2 >> bar |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11973
diff
changeset
|
11 $ hg ci -m 'cp foo bar; change both' |
5042
f191bc3916f7
merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
12 |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
13 in another branch, change foo in a way that doesn't conflict with |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
14 the other changes |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
15 $ hg up -qC 0 |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
16 $ echo line 0 > foo |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
17 $ hg cat foo >> foo |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11973
diff
changeset
|
18 $ hg ci -m 'change foo' |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
19 created new head |
5042
f191bc3916f7
merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
20 |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
21 we get conflicts that shouldn't be there |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
22 $ hg merge -P |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11973
diff
changeset
|
23 changeset: 1:484bf6903104 |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
24 user: test |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11973
diff
changeset
|
25 date: Thu Jan 01 00:00:00 1970 +0000 |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
26 summary: cp foo bar; change both |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
27 |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
28 $ hg merge --debug |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
29 unmatched files in other: |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
30 bar |
16795
e9ae770eff1c
merge: show renamed on one and deleted on the other side in debug output
Thomas Arendsen Hein <thomas@intevation.de>
parents:
15625
diff
changeset
|
31 all copies found (* = to merge, ! = divergent, % = renamed and deleted): |
18135
a6fe1b9cc68f
copies: make debug messages more sensible
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
32 src: 'foo' -> dst: 'bar' * |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
33 checking for directory renames |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
34 resolving manifests |
18605
bcf29565d89f
manifestmerge: pass in branchmerge and force separately
Siddharth Agarwal <sid0@fb.com>
parents:
18541
diff
changeset
|
35 branchmerge: True, force: False, partial: False |
15625
efdcce3fd2d5
merge: make debug output easier to read
Martin Geisler <mg@aragost.com>
parents:
12156
diff
changeset
|
36 ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104 |
21391
cb15835456cb
merge: change debug logging - test output changes but no real changes
Mads Kiilerich <madski@unity3d.com>
parents:
20945
diff
changeset
|
37 preserving foo for resolve of bar |
cb15835456cb
merge: change debug logging - test output changes but no real changes
Mads Kiilerich <madski@unity3d.com>
parents:
20945
diff
changeset
|
38 preserving foo for resolve of foo |
28318
564a354f7f35
tests: flag Windows specific lines about background closing as optional
Matt Harbison <matt_harbison@yahoo.com>
parents:
27161
diff
changeset
|
39 starting 4 threads for background file closing (?) |
26618
8e6d5b7317e6
merge.mergestate: perform all premerges before any merges (BC)
Siddharth Agarwal <sid0@fb.com>
parents:
26517
diff
changeset
|
40 bar: remote copied from foo -> m (premerge) |
27161
296d55def9c4
filemerge: add debug output for whether this is a change/delete conflict
Siddharth Agarwal <sid0@fb.com>
parents:
26618
diff
changeset
|
41 picked tool ':merge' for bar (binary False symlink False changedelete False) |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
42 merging foo and bar to bar |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11973
diff
changeset
|
43 my bar@6a0df1dad128+ other bar@484bf6903104 ancestor foo@e6dc8efe11cc |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
44 premerge successful |
26618
8e6d5b7317e6
merge.mergestate: perform all premerges before any merges (BC)
Siddharth Agarwal <sid0@fb.com>
parents:
26517
diff
changeset
|
45 foo: versions differ -> m (premerge) |
27161
296d55def9c4
filemerge: add debug output for whether this is a change/delete conflict
Siddharth Agarwal <sid0@fb.com>
parents:
26618
diff
changeset
|
46 picked tool ':merge' for foo (binary False symlink False changedelete False) |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
47 merging foo |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11973
diff
changeset
|
48 my foo@6a0df1dad128+ other foo@484bf6903104 ancestor foo@e6dc8efe11cc |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
49 premerge successful |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
50 0 files updated, 2 files merged, 0 files removed, 0 files unresolved |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
51 (branch merge, don't forget to commit) |
5042
f191bc3916f7
merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
52 |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
53 contents of foo |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
54 $ cat foo |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
55 line 0 |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
56 line 1 |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
57 line 2-1 |
5042
f191bc3916f7
merge: do early copy to deal with issue636
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
58 |
11973
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
59 contents of bar |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
60 $ cat bar |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
61 line 0 |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
62 line 1 |
b773ca489fd3
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com>
parents:
8834
diff
changeset
|
63 line 2-2 |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16795
diff
changeset
|
64 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16795
diff
changeset
|
65 $ cd .. |