Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-copy2 @ 5483:0c43f87baba3 default tip
Fix file-changed-to-dir and dir-to-file commits (issue660).
Allow adding to dirstate files that clash with previously existing
but marked for removal. Protect from reintroducing clashes by revert.
This change doesn't address related issues with update. Current
workaround is to do "clean" update by manually removing conflicting
files/dirs from working directory.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sat, 27 Oct 2007 16:27:55 +0400 |
parents | 44e17f5029d0 |
children |
rev | line source |
---|---|
1117 | 1 #!/bin/sh |
2 | |
3 hg init | |
4 echo foo > foo | |
4777
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
5 echo "# should fail - foo is not managed" |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
6 hg mv foo bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
7 hg st -A |
1117 | 8 hg add foo |
4777
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
9 echo "# dry-run; print a warning that this is not a real copy; foo is added" |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
10 hg mv --dry-run foo bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
11 hg st -A |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
12 echo "# should print a warning that this is not a real copy; bar is added" |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
13 hg mv foo bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
14 hg st -A |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
15 echo "# should print a warning that this is not a real copy; foo is added" |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
16 hg cp bar foo |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
17 hg rm -f bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
18 rm bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
19 hg st -A |
1117 | 20 hg commit -m1 -d"0 0" |
21 | |
4777
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
22 echo "# dry-run; should show that foo is clean" |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
23 hg copy --dry-run foo bar |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4776
diff
changeset
|
24 hg st -A |
1117 | 25 echo "# should show copy" |
26 hg copy foo bar | |
4776
719c402258ee
test-copy2: use status -C instead of debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4677
diff
changeset
|
27 hg st -C |
1117 | 28 |
29 echo "# shouldn't show copy" | |
30 hg commit -m2 -d"0 0" | |
4776
719c402258ee
test-copy2: use status -C instead of debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4677
diff
changeset
|
31 hg st -C |
1117 | 32 |
33 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
|
34 hg debugindex .hg/store/data/foo.i |
1117 | 35 hg debugrename bar |
36 | |
37 echo bleah > foo | |
38 echo quux > bar | |
39 hg commit -m3 -d"0 0" | |
40 | |
41 echo "# should not be renamed" | |
42 hg debugrename bar | |
43 | |
1249
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1168
diff
changeset
|
44 hg copy -f foo bar |
1117 | 45 echo "# should show copy" |
4776
719c402258ee
test-copy2: use status -C instead of debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4677
diff
changeset
|
46 hg st -C |
1117 | 47 hg commit -m3 -d"0 0" |
48 | |
49 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
|
50 hg debugindex .hg/store/data/bar.i |
1117 | 51 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
|
52 hg debugindex .hg/store/data/foo.i |
1117 | 53 hg debugrename bar |
54 | |
55 echo "# should show no copies" | |
4776
719c402258ee
test-copy2: use status -C instead of debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4677
diff
changeset
|
56 hg st -C |
1127
19b048da4da9
Fixed test-copy2 with only looking at copied files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1117
diff
changeset
|
57 |
4374
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
58 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
|
59 cp bar baz |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
60 hg add baz |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
61 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
|
62 hg st -C |
de612b5f8d59
Make copy --after work for files that have been hg added.
Brendan Cully <brendan@kublai.com>
parents:
3853
diff
changeset
|
63 |
4677
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4374
diff
changeset
|
64 echo "# foo was clean:" |
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4374
diff
changeset
|
65 hg st -AC foo |
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4374
diff
changeset
|
66 echo "# but it's considered modified after a copy --after --force" |
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4374
diff
changeset
|
67 hg copy -Af bar foo |
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4374
diff
changeset
|
68 hg st -AC foo |
de8ec7e1753a
dirstate.status: if a file is marked as copied, consider it modified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4374
diff
changeset
|
69 |
1127
19b048da4da9
Fixed test-copy2 with only looking at copied files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1117
diff
changeset
|
70 exit 0 |