view tests/test-convert-filemap.out @ 5403:477136fa6571

Always copy the necessary files before applying a git patch This patch removes the "copymod" attribute from the gitpatch class. AFAICS, that attribute was only used to delay the copying of renamed/copied files if there are no other changes to the target, but in this case, if there are changes to the source, we'll end up copying the wrong version. This should fix issue762.
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Sat, 06 Oct 2007 15:30:15 -0300
parents d3e51dc804f8
children 8feb33c2d153
line wrap: on
line source

@  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