Fix income/pull with bundle and -R (issue 820).
Uses ui.setconfig() to tell bundlerepo where the main repo is. This is
needed for when the --repository option is used.
Adds tests to test-bundle and a new test script
test-mq-pull-from-bundle, which plays out the situation that initially
made me detect this bug
(hg -R .hg/patches pull ../bundle.hg).
@ 8 "8: change foo" files: foo
|
o 7 "7: second merge; change bar" files: bar baz
|\
| o 6 "6: change foo baz" files: baz foo
| |
o | 5 "5: change bar baz quux" files: bar baz quux
|/
o 4 "4: first merge; change bar baz" files: bar baz
|\
| o 3 "3: change bar quux" files: bar quux
| |
o | 2 "2: change foo" files: foo
|/
o 1 "1: add bar quux; copy foo to copied" files: bar copied quux
|
o 0 "0: add foo baz dir/" files: baz dir/file dir/file2 foo
% final file versions in this repo:
9463f52fe115e377cf2878d4fc548117211063f2 644 bar
94c1be4dfde2ee8d78db8bbfcf81210813307c3d 644 baz
6ca237634e1f6bee1b6db94292fb44f092a25842 644 copied
3e20847584beff41d7cd16136b7331ab3d754be0 644 dir/file
75e6d3f8328f5f6ace6bf10b98df793416a09dca 644 dir/file2
9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux
copied renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
% foo: skip unwanted merges; use 1st parent in 1st merge, 2nd in 2nd
o 3 "8: change foo" files: foo
|
o 2 "6: change foo baz" files: foo
|
o 1 "2: change foo" files: foo
|
o 0 "0: add foo baz dir/" files: foo
9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
% bar: merges are not merges anymore
o 4 "7: second merge; change bar" files: bar
|
o 3 "5: change bar baz quux" files: bar
|
o 2 "4: first merge; change bar baz" files: bar
|
o 1 "3: change bar quux" files: bar
|
o 0 "1: add bar quux; copy foo to copied" files: bar
9463f52fe115e377cf2878d4fc548117211063f2 644 bar
% baz: 1st merge is not a merge anymore; 2nd still is
o 4 "7: second merge; change bar" files: baz
|\
| o 3 "6: change foo baz" files: baz
| |
o | 2 "5: change bar baz quux" files: baz
|/
o 1 "4: first merge; change bar baz" files: baz
|
o 0 "0: add foo baz dir/" files: baz
94c1be4dfde2ee8d78db8bbfcf81210813307c3d 644 baz
% foo quux: we add additional merges when they are interesting
o 8 "8: change foo" files: foo
|
o 7 "7: second merge; change bar" files:
|\
| o 6 "6: change foo baz" files: foo
| |
o | 5 "5: change bar baz quux" files: quux
|/
o 4 "4: first merge; change bar baz" files:
|\
| o 3 "3: change bar quux" files: quux
| |
o | 2 "2: change foo" files: foo
|/
o 1 "1: add bar quux; copy foo to copied" files: quux
|
o 0 "0: add foo baz dir/" files: foo
9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux
% bar quux: partial conversion
o 1 "3: change bar quux" files: bar quux
|
o 0 "1: add bar quux; copy foo to copied" files: bar quux
b79105bedc55102f394e90a789c9c380117c1b4a 644 bar
db0421cc6b685a458c8d86c7d5c004f94429ea23 644 quux
% bar quux: complete the partial conversion
o 4 "7: second merge; change bar" files: bar
|
o 3 "5: change bar baz quux" files: bar quux
|
o 2 "4: first merge; change bar baz" files: bar
|
o 1 "3: change bar quux" files: bar quux
|
o 0 "1: add bar quux; copy foo to copied" files: bar quux
9463f52fe115e377cf2878d4fc548117211063f2 644 bar
bc3eca3f47023a3e70ca0d8cc95a22a6827db19d 644 quux
% foo: partial conversion
o 0 "0: add foo baz dir/" files: foo
2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 foo
% foo: complete the partial conversion
o 3 "8: change foo" files: foo
|
o 2 "6: change foo baz" files: foo
|
o 1 "2: change foo" files: foo
|
o 0 "0: add foo baz dir/" files: foo
9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
% copied: copied file; source not included in new repo
o 0 "1: add bar quux; copy foo to copied" files: copied
2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 copied
copied not renamed
% foo copied: copied file; source included in new repo
o 4 "8: change foo" files: foo
|
o 3 "6: change foo baz" files: foo
|
o 2 "2: change foo" files: foo
|
o 1 "1: add bar quux; copy foo to copied" files: copied
|
o 0 "0: add foo baz dir/" files: foo
6ca237634e1f6bee1b6db94292fb44f092a25842 644 copied
9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo
copied renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
o 4 "8: change foo" files: foo2
|
o 3 "6: change foo baz" files: foo2
|
o 2 "2: change foo" files: foo2
|
o 1 "1: add bar quux; copy foo to copied" files: copied2
|
o 0 "0: add foo baz dir/" files: dir2/file foo2
e5e3d520be9be45937d0b06b004fadcd6c221fa2 644 copied2
3e20847584beff41d7cd16136b7331ab3d754be0 644 dir2/file
9a7b52012991e4873687192c3e17e61ba3e837a3 644 foo2
copied2 renamed from foo2:2ed2a3912a0b24502043eae84ee4b279c18b90dd
copied:
foo
copied2:
foo