Mercurial > public > mercurial-scm > hg
annotate tests/test-copy2 @ 4531:b51a8138292a
Avoid extra filelogs entries.
Right now, there are some situations in which localrepo.filecommit can
create filelog entries even though they're not needed. For example:
- permissions for a file have changed;
- qrefresh can create a filelog entry identical to its parent (see the
added test);
- convert-repo creates extra filelog entries in every merge where the
first parent has added files (for example, changeset ebebe9577a1a of
the kernel repo added extra filelog entries to files in the
arch/blackfin directory, even though the merge should only touch the
drivers/ata directory). This makes "hg log file" in a converted repo
less useful than it could be, since it may mention many merges that
don't actually touch that specific file.
They all come from the same basic problem: localrepo.commit (through
filecommit) creates new filelog entries for all files passed to it
(except for some cases during a merge).
Patch and test case provided by Benoit.
This should fix issue351.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sat, 09 Jun 2007 01:04:28 -0300 |
parents | de612b5f8d59 |
children | de8ec7e1753a |
rev | line source |
---|---|
1117 | 1 #!/bin/sh |
2 | |
3 hg init | |
4 echo foo > foo | |
5 hg add foo | |
6 hg commit -m1 -d"0 0" | |
7 | |
8 echo "# should show copy" | |
9 hg copy foo bar | |
1168
235e0effa672
Fixed two tests to run with bourne shell.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1127
diff
changeset
|
10 hg debugstate|grep '^copy' |
1117 | 11 |
12 echo "# shouldn't show copy" | |
13 hg commit -m2 -d"0 0" | |
1168
235e0effa672
Fixed two tests to run with bourne shell.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1127
diff
changeset
|
14 hg debugstate|grep '^copy' |
1117 | 15 |
16 echo "# should match" | |
3853
c0b449154a90
switch to the .hg/store layout, fix the tests
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1252
diff
changeset
|
17 hg debugindex .hg/store/data/foo.i |
1117 | 18 hg debugrename bar |
19 | |
20 echo bleah > foo | |
21 echo quux > bar | |
22 hg commit -m3 -d"0 0" | |
23 | |
24 echo "# should not be renamed" | |
25 hg debugrename bar | |
26 | |
1249
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1168
diff
changeset
|
27 hg copy -f foo bar |
1117 | 28 echo "# should show copy" |
1168
235e0effa672
Fixed two tests to run with bourne shell.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1127
diff
changeset
|
29 hg debugstate|grep '^copy' |
1117 | 30 hg commit -m3 -d"0 0" |
31 | |
32 echo "# should show no parents for tip" | |
3853
c0b449154a90
switch to the .hg/store layout, fix the tests
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1252
diff
changeset
|
33 hg debugindex .hg/store/data/bar.i |
1117 | 34 echo "# should match" |
3853
c0b449154a90
switch to the .hg/store layout, fix the tests
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1252
diff
changeset
|
35 hg debugindex .hg/store/data/foo.i |
1117 | 36 hg debugrename bar |
37 | |
38 echo "# should show no copies" | |
1168
235e0effa672
Fixed two tests to run with bourne shell.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1127
diff
changeset
|
39 hg debugstate|grep '^copy' |
1127
19b048da4da9
Fixed test-copy2 with only looking at copied files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1117
diff
changeset
|
40 |
4376
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
41 echo "# copy --after on an added file" |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
42 cp bar baz |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
43 hg add baz |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
44 hg cp -A bar baz |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
45 hg st -C |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
46 |
1127
19b048da4da9
Fixed test-copy2 with only looking at copied files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1117
diff
changeset
|
47 exit 0 |