Mercurial > hg
annotate tests/test-tag @ 5378:8a2915f57dfc
convert: add a mode where mercurial_sink skips empty revisions.
The getchanges function of some converter_source classes can return
some false positives. I.e. they sometimes claim that a file "foo"
was changed in some revision, even though its contents are still the
same.
convert_svn is particularly bad, but I think this can also happen with
convert_cvs and, at least in theory, with mercurial_source.
For regular conversions this is not really a problem - as long as
getfile returns the right contents, we'll get a converted revision
with the right contents. But when we use --filemap, this could lead
to superfluous revisions being converted.
Instead of fixing every converter_source, I decided to change
mercurial_sink to work around this problem.
When --filemap is used, we're interested only in revisions that touch
some specific files. If a revision doesn't change any of these files,
then we're not interested in it (at least for revisions with a single
parent; merges are special).
For mercurial_sink, we abuse this property and rollback a commit if
the manifest text hasn't changed. This avoids duplicating the logic
from localrepo.filecommit to detect unchanged files.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Thu, 04 Oct 2007 23:21:37 -0300 |
parents | 5fb8f5992a3d |
children | 55ba3bc5b8fd |
rev | line source |
---|---|
800
ec85f9e6f3b1
Don't use 'set -x', fix exports, sed and hexdump usage for Solaris.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
749
diff
changeset
|
1 #!/bin/sh |
401
af4848f83e68
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents:
diff
changeset
|
2 |
af4848f83e68
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents:
diff
changeset
|
3 hg init |
af4848f83e68
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents:
diff
changeset
|
4 echo a > a |
af4848f83e68
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents:
diff
changeset
|
5 hg add a |
1933
7544700fd931
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1654
diff
changeset
|
6 hg commit -m "test" -d "1000000 0" |
401
af4848f83e68
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents:
diff
changeset
|
7 hg history |
1933
7544700fd931
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1654
diff
changeset
|
8 hg tag -d "1000000 0" "bleah" |
401
af4848f83e68
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents:
diff
changeset
|
9 hg history |
af4848f83e68
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents:
diff
changeset
|
10 |
af4848f83e68
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents:
diff
changeset
|
11 echo foo >> .hgtags |
1933
7544700fd931
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1654
diff
changeset
|
12 hg tag -d "1000000 0" "bleah2" || echo "failed" |
7544700fd931
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1654
diff
changeset
|
13 hg tag -d "1000000 0" -r 0 "bleah2" 1 || echo "failed" |
401
af4848f83e68
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents:
diff
changeset
|
14 |
1596
41366b7d6709
fix 'hg tag <tagname> <revision>
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1561
diff
changeset
|
15 hg revert .hgtags |
1933
7544700fd931
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1654
diff
changeset
|
16 hg tag -d "1000000 0" -r 0 "bleah0" |
7544700fd931
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1654
diff
changeset
|
17 hg tag -l -d "1000000 0" "bleah1" 1 |
1596
41366b7d6709
fix 'hg tag <tagname> <revision>
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1561
diff
changeset
|
18 |
41366b7d6709
fix 'hg tag <tagname> <revision>
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1561
diff
changeset
|
19 cat .hgtags |
41366b7d6709
fix 'hg tag <tagname> <revision>
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1561
diff
changeset
|
20 cat .hg/localtags |
41366b7d6709
fix 'hg tag <tagname> <revision>
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1561
diff
changeset
|
21 |
2647
46182568b4ce
change 'hg tag' to tag the parent rev instead of tip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1933
diff
changeset
|
22 hg update 0 |
46182568b4ce
change 'hg tag' to tag the parent rev instead of tip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1933
diff
changeset
|
23 hg tag -d "1000000 0" "foobar" |
46182568b4ce
change 'hg tag' to tag the parent rev instead of tip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1933
diff
changeset
|
24 cat .hgtags |
46182568b4ce
change 'hg tag' to tag the parent rev instead of tip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1933
diff
changeset
|
25 cat .hg/localtags |
46182568b4ce
change 'hg tag' to tag the parent rev instead of tip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1933
diff
changeset
|
26 |
1561
9c6d0abdb94e
disallow '\n' and '\r' in tag names
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1308
diff
changeset
|
27 hg tag -l 'xx |
9c6d0abdb94e
disallow '\n' and '\r' in tag names
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1308
diff
changeset
|
28 newline' |
9c6d0abdb94e
disallow '\n' and '\r' in tag names
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1308
diff
changeset
|
29 hg tag -l 'xx:xx' |
4932
f0c25ed40ec6
tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
Bryan O'Sullivan <bos@serpentine.com>
parents:
2647
diff
changeset
|
30 |
f0c25ed40ec6
tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
Bryan O'Sullivan <bos@serpentine.com>
parents:
2647
diff
changeset
|
31 echo % issue 601 |
4933
5fb8f5992a3d
fix test-tag on Solaris
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4932
diff
changeset
|
32 python << EOF |
5fb8f5992a3d
fix test-tag on Solaris
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4932
diff
changeset
|
33 f = file('.hg/localtags'); last = f.readlines()[-1][:-1]; f.close() |
5fb8f5992a3d
fix test-tag on Solaris
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4932
diff
changeset
|
34 f = file('.hg/localtags', 'w'); f.write(last); f.close() |
5fb8f5992a3d
fix test-tag on Solaris
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4932
diff
changeset
|
35 EOF |
4932
f0c25ed40ec6
tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
Bryan O'Sullivan <bos@serpentine.com>
parents:
2647
diff
changeset
|
36 cat .hg/localtags |
f0c25ed40ec6
tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
Bryan O'Sullivan <bos@serpentine.com>
parents:
2647
diff
changeset
|
37 hg tag -l localnewline |
f0c25ed40ec6
tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
Bryan O'Sullivan <bos@serpentine.com>
parents:
2647
diff
changeset
|
38 cat .hg/localtags |
f0c25ed40ec6
tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
Bryan O'Sullivan <bos@serpentine.com>
parents:
2647
diff
changeset
|
39 |
4933
5fb8f5992a3d
fix test-tag on Solaris
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4932
diff
changeset
|
40 python << EOF |
5fb8f5992a3d
fix test-tag on Solaris
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4932
diff
changeset
|
41 f = file('.hgtags'); last = f.readlines()[-1][:-1]; f.close() |
5fb8f5992a3d
fix test-tag on Solaris
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4932
diff
changeset
|
42 f = file('.hgtags', 'w'); f.write(last); f.close() |
5fb8f5992a3d
fix test-tag on Solaris
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4932
diff
changeset
|
43 EOF |
4932
f0c25ed40ec6
tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
Bryan O'Sullivan <bos@serpentine.com>
parents:
2647
diff
changeset
|
44 hg ci -d '1000000 0' -m'broken manual edit of .hgtags' |
f0c25ed40ec6
tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
Bryan O'Sullivan <bos@serpentine.com>
parents:
2647
diff
changeset
|
45 cat .hgtags |
f0c25ed40ec6
tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
Bryan O'Sullivan <bos@serpentine.com>
parents:
2647
diff
changeset
|
46 hg tag -d '1000000 0' newline |
f0c25ed40ec6
tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
Bryan O'Sullivan <bos@serpentine.com>
parents:
2647
diff
changeset
|
47 cat .hgtags |