Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-log @ 5210:90d9ec0dc69d
merge: forcefully mark files that we get from the second parent as dirty
After a hg merge, we want to include in the commit all the files that we
got from the second parent, so that we have the correct file-level
history. To make them visible to hg commit, we try to mark them as dirty.
Unfortunately, right now we can't really mark them as dirty[1] - the
best we can do is to mark them as needing a full comparison of their
contents, but they will still be considered clean if they happen to be
identical to the version in the first parent.
This changeset extends the dirstate format in a compatible way, so that
we can mark a file as dirty:
Right now we use a negative file size to indicate we don't have valid
stat data for this entry. In practice, this size is always -1.
This patch uses -2 to indicate that the entry is dirty. Older versions
of hg won't choke on this dirstate, but they may happily mark the file
as clean after a full comparison, destroying all of our hard work.
The patch adds a dirstate.normallookup method with the semantics of the
current normaldirty, and changes normaldirty to forcefully mark the
entry as dirty.
This should fix issue522.
[1] - well, we could put them in state 'm', but that state has a
different meaning.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Thu, 23 Aug 2007 01:48:29 -0300 |
parents | e0bc2c575044 |
children |
rev | line source |
---|---|
2741
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
1 #!/bin/sh |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
2 |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
3 hg init a |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
4 |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
5 cd a |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
6 echo a > a |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
7 hg ci -Ama -d '1 0' |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
8 |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
9 hg cp a b |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
10 hg ci -mb -d '2 0' |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
11 |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
12 mkdir dir |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
13 hg mv b dir |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
14 hg ci -mc -d '3 0' |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
15 |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
16 hg mv a b |
3837
7df171ea50cd
Fix log regression where log -p file showed diffs for other files
Matt Mackall <mpm@selenic.com>
parents:
3718
diff
changeset
|
17 echo a > d |
7df171ea50cd
Fix log regression where log -p file showed diffs for other files
Matt Mackall <mpm@selenic.com>
parents:
3718
diff
changeset
|
18 hg add d |
2741
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
19 hg ci -md -d '4 0' |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
20 |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
21 hg mv dir/b e |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
22 hg ci -me -d '5 0' |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
23 |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
24 hg log a |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
25 echo % -f, directory |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
26 hg log -f dir |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
27 echo % -f, but no args |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
28 hg log -f |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
29 echo % one rename |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
30 hg log -vf a |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
31 echo % many renames |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
32 hg log -vf e |
2780
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
33 |
3190 | 34 echo % log copies |
35 hg log -vC --template '{rev} {file_copies%filecopy}\n' | |
36 | |
3382
c7c6f1a45348
Test case for log --copies on non-linear manifests (issue391)
Brendan Cully <brendan@kublai.com>
parents:
3190
diff
changeset
|
37 echo % log copies, non-linear manifest |
c7c6f1a45348
Test case for log --copies on non-linear manifests (issue391)
Brendan Cully <brendan@kublai.com>
parents:
3190
diff
changeset
|
38 hg up -C 3 |
c7c6f1a45348
Test case for log --copies on non-linear manifests (issue391)
Brendan Cully <brendan@kublai.com>
parents:
3190
diff
changeset
|
39 hg mv dir/b e |
c7c6f1a45348
Test case for log --copies on non-linear manifests (issue391)
Brendan Cully <brendan@kublai.com>
parents:
3190
diff
changeset
|
40 echo foo > foo |
c7c6f1a45348
Test case for log --copies on non-linear manifests (issue391)
Brendan Cully <brendan@kublai.com>
parents:
3190
diff
changeset
|
41 hg ci -Ame2 -d '6 0' |
c7c6f1a45348
Test case for log --copies on non-linear manifests (issue391)
Brendan Cully <brendan@kublai.com>
parents:
3190
diff
changeset
|
42 hg log -vC --template '{rev} {file_copies%filecopy}\n' -r 5 |
c7c6f1a45348
Test case for log --copies on non-linear manifests (issue391)
Brendan Cully <brendan@kublai.com>
parents:
3190
diff
changeset
|
43 |
3837
7df171ea50cd
Fix log regression where log -p file showed diffs for other files
Matt Mackall <mpm@selenic.com>
parents:
3718
diff
changeset
|
44 echo '% log -p d' |
7df171ea50cd
Fix log regression where log -p file showed diffs for other files
Matt Mackall <mpm@selenic.com>
parents:
3718
diff
changeset
|
45 hg log -pv d |
7df171ea50cd
Fix log regression where log -p file showed diffs for other files
Matt Mackall <mpm@selenic.com>
parents:
3718
diff
changeset
|
46 |
2780
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
47 # log --follow tests |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
48 hg init ../follow |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
49 cd ../follow |
4510
e0bc2c575044
Issue a warning if "-r ." is used with two working directory parents.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4208
diff
changeset
|
50 |
2780
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
51 echo base > base |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
52 hg ci -Ambase -d '1 0' |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
53 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
54 echo r1 >> base |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
55 hg ci -Amr1 -d '1 0' |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
56 echo r2 >> base |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
57 hg ci -Amr2 -d '1 0' |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
58 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
59 hg up -C 1 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
60 echo b1 > b1 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
61 hg ci -Amb1 -d '1 0' |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
62 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
63 echo % log -f |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
64 hg log -f |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
65 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
66 hg up -C 0 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
67 echo b2 > b2 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
68 hg ci -Amb2 -d '1 0' |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
69 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
70 echo % log -f -r 1:tip |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
71 hg log -f -r 1:tip |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
72 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
73 hg up -C 3 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
74 hg merge tip |
4510
e0bc2c575044
Issue a warning if "-r ." is used with two working directory parents.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4208
diff
changeset
|
75 |
e0bc2c575044
Issue a warning if "-r ." is used with two working directory parents.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4208
diff
changeset
|
76 echo % log -r . with two parents |
e0bc2c575044
Issue a warning if "-r ." is used with two working directory parents.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4208
diff
changeset
|
77 hg log -r . |
e0bc2c575044
Issue a warning if "-r ." is used with two working directory parents.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4208
diff
changeset
|
78 |
2780
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
79 hg ci -mm12 -d '1 0' |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
80 |
4510
e0bc2c575044
Issue a warning if "-r ." is used with two working directory parents.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4208
diff
changeset
|
81 echo % log -r . with one parent |
e0bc2c575044
Issue a warning if "-r ." is used with two working directory parents.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4208
diff
changeset
|
82 hg log -r . |
e0bc2c575044
Issue a warning if "-r ." is used with two working directory parents.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4208
diff
changeset
|
83 |
2780
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
84 echo postm >> b1 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
85 hg ci -Amb1.1 -d'1 0' |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
86 |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
87 echo % log --follow-first |
e7f70588af30
Test suite for log --follow and --follow-first.
Brendan Cully <brendan@kublai.com>
parents:
2741
diff
changeset
|
88 hg log --follow-first |
2886 | 89 |
90 echo % log -P 2 | |
91 hg log -P 2 | |
3718
7db88b094b14
fix hg log -r ''
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3382
diff
changeset
|
92 |
7db88b094b14
fix hg log -r ''
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3382
diff
changeset
|
93 echo '% log -r ""' |
7db88b094b14
fix hg log -r ''
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3382
diff
changeset
|
94 hg log -r '' |
7db88b094b14
fix hg log -r ''
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3382
diff
changeset
|
95 |
7db88b094b14
fix hg log -r ''
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3382
diff
changeset
|
96 exit 0 |