Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-rename @ 5192:33015dac5df5
convert: fix mercurial_sink.putcommit
Changeset 4ebc8693ce72 added some code to putcommit to avoid creating a
revision that touches no files, but this can break regular conversions
from some repositories:
- conceptually, since we're converting a repo, we should try to make
the new hg repo as similar as possible to the original repo - we
should create a new changeset, even if the original revision didn't
touch any files (maybe the commit message had some important bit);
- even if a "regular" revision that doesn't touch any file may seem
weird (and maybe even broken), it's completely legitimate for a merge
revision to not touch any file, and, if we just skip it, the
converted repo will end up with wrong history and possibly an extra
head.
As an example, say the crew and main hg repos are sync'ed. Somebody
sends an important patch to the mailing list. Matt quickly applies
and pushes it. But at the same time somebody also applies it to crew
and pushes it. Suppose the commit message ended up being a bit
different (say, there was a typo and somebody didn't fix it) or that
the date ended up being different (because of different patch-applying
scripts): the changeset hashes will be different, but the manifests
will be the same.
Since both changesets were pushed to public repos, it's hard to recall
them. If both are merged, the manifest from the resulting merge
revision will have the exact same contents as its parents - i.e. the
merge revision really doesn't touch any file at all.
To keep the file filtering stuff "working", the generic code was changed
to skip empty revisions if we're filtering the repo, fixing a bug in the
process (we want parents[0] instead of tip).
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Fri, 17 Aug 2007 20:18:05 -0300 |
parents | 438603c1eb6f |
children | 7e6138cb8d38 |
rev | line source |
---|---|
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
1 #!/bin/sh |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
2 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
3 hg init |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
4 mkdir d1 d1/d11 d2 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
5 echo d1/a > d1/a |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
6 echo d1/ba > d1/ba |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
7 echo d1/a1 > d1/d11/a1 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
8 echo d1/b > d1/b |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
9 echo d2/b > d2/b |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
10 hg add d1/a d1/b d1/ba d1/d11/a1 d2/b |
1933
7544700fd931
Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1822
diff
changeset
|
11 hg commit -m "1" -d "1000000 0" |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
12 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
13 echo "# rename a single file" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
14 hg rename d1/d11/a1 d2/c |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
15 hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
16 hg update -C |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
17 |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
18 echo "# rename --after a single file" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
19 mv d1/d11/a1 d2/c |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
20 hg rename --after d1/d11/a1 d2/c |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
21 hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
22 hg update -C |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
23 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
24 echo "# move a single file to an existing directory" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
25 hg rename d1/d11/a1 d2 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
26 hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
27 hg update -C |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
28 |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
29 echo "# move --after a single file to an existing directory" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
30 mv d1/d11/a1 d2 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
31 hg rename --after d1/d11/a1 d2 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
32 hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
33 hg update -C |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
34 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
35 echo "# rename a file using a relative path" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
36 (cd d1/d11; hg rename ../../d2/b e) |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
37 hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
38 hg update -C |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
39 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
40 echo "# rename --after a file using a relative path" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
41 (cd d1/d11; mv ../../d2/b e; hg rename --after ../../d2/b e) |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
42 hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
43 hg update -C |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
44 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
45 echo "# rename directory d1 as d3" |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
46 hg rename d1/ d3 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
47 hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
48 hg update -C |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
49 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
50 echo "# rename --after directory d1 as d3" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
51 mv d1 d3 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
52 hg rename --after d1 d3 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
53 hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
54 hg update -C |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
55 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
56 echo "# move a directory using a relative path" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
57 (cd d2; mkdir d3; hg rename ../d1/d11 d3) |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
58 hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
59 hg update -C |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
60 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
61 echo "# move --after a directory using a relative path" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
62 (cd d2; mkdir d3; mv ../d1/d11 d3; hg rename --after ../d1/d11 d3) |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
63 hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
64 hg update -C |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
65 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
66 echo "# move directory d1/d11 to an existing directory d2 (removes empty d1)" |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
67 hg rename d1/d11/ d2 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
68 hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
69 hg update -C |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
70 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
71 echo "# move directories d1 and d2 to a new directory d3" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
72 mkdir d3 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
73 hg rename d1 d2 d3 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
74 hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
75 hg update -C |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
76 |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
77 echo "# move --after directories d1 and d2 to a new directory d3" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
78 mkdir d3 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
79 mv d1 d2 d3 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
80 hg rename --after d1 d2 d3 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
81 hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
82 hg update -C |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
83 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
84 echo "# move everything under directory d1 to existing directory d2, do not" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
85 echo "# overwrite existing files (d2/b)" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
86 hg rename d1/* d2 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
87 hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
88 diff d1/b d2/b |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
89 hg update -C |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
90 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
91 echo "# attempt to move potentially more than one file into a non-existent" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
92 echo "# directory" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
93 hg rename 'glob:d1/**' dx |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
94 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
95 echo "# move every file under d1 to d2/d21 (glob)" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
96 mkdir d2/d21 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
97 hg rename 'glob:d1/**' d2/d21 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
98 hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
99 hg update -C |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
100 |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
101 echo "# move --after some files under d1 to d2/d21 (glob)" |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
102 mkdir d2/d21 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
103 mv d1/a d1/d11/a1 d2/d21 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
104 hg rename --after 'glob:d1/**' d2/d21 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
105 hg status -C |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
106 hg update -C |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
107 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
108 echo "# move every file under d1 starting with an 'a' to d2/d21 (regexp)" |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
109 mkdir d2/d21 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
110 hg rename 're:d1/([^a][^/]*/)*a.*' d2/d21 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
111 hg status -C |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
112 hg update -C |
1513
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
113 |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
114 echo "# attempt to overwrite an existing file" |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
115 echo "ca" > d1/ca |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
116 hg rename d1/ba d1/ca |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
117 hg status -C |
1513
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
118 hg update -C |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
119 |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
120 echo "# forced overwrite of an existing file" |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
121 echo "ca" > d1/ca |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
122 hg rename --force d1/ba d1/ca |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
123 hg status -C |
1513
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
124 hg update -C |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
125 |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
126 echo "# replace a symlink with a file" |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
127 ln -s ba d1/ca |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
128 hg rename --force d1/ba d1/ca |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
129 hg status -C |
1513
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
130 hg update -C |
1514
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
131 |
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
132 echo "# do not copy more than one source file to the same destination file" |
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
133 mkdir d3 |
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
134 hg rename d1/* d2/* d3 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
135 hg status -C |
1514
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
136 hg update -C |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
137 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
138 echo "# move a whole subtree with \"hg rename .\"" |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
139 mkdir d3 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
140 (cd d1; hg rename . ../d3) |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
141 hg status -C |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
142 hg update -C |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
143 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
144 echo "# move a whole subtree with \"hg rename --after .\"" |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
145 mkdir d3 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
146 mv d1/* d3 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
147 (cd d1; hg rename --after . ../d3) |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
148 hg status -C |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
149 hg update -C |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
150 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
151 echo "# move the parent tree with \"hg rename ..\"" |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
152 (cd d1/d11; hg rename .. ../../d3) |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
153 hg status -C |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1565
diff
changeset
|
154 hg update -C |
1634
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
155 |
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
156 echo "# skip removed files" |
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
157 hg remove d1/b |
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
158 hg rename d1 d3 |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
159 hg status -C |
1634
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
160 hg update -C |
1747
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
161 |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
162 echo "# transitive rename" |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
163 hg rename d1/b d1/bb |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
164 hg rename d1/bb d1/bc |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
165 hg status -C |
1747
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
166 hg update -C |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
167 |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
168 echo "# transitive rename --after" |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
169 hg rename d1/b d1/bb |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
170 mv d1/bb d1/bc |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
171 hg rename --after d1/bb d1/bc |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
172 hg status -C |
1747
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1634
diff
changeset
|
173 hg update -C |
1822
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
174 |
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
175 echo "# idempotent renames (d1/b -> d1/bb followed by d1/bb -> d1/b)" |
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
176 hg rename d1/b d1/bb |
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
177 echo "some stuff added to d1/bb" >> d1/bb |
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
178 hg rename d1/bb d1/b |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
179 hg status -C |
1822
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1747
diff
changeset
|
180 hg update -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
181 |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
182 echo "# check illegal path components" |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
183 |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
184 hg rename d1/d11/a1 .hg/foo |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
185 hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
186 hg rename d1/d11/a1 ../foo |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
187 hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
188 |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
189 mv d1/d11/a1 .hg/foo |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
190 hg rename --after d1/d11/a1 .hg/foo |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
191 hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
192 hg update -C |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
193 rm .hg/foo |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
194 |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
195 hg rename d1/d11/a1 .hg |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
196 hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
197 hg rename d1/d11/a1 .. |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
198 hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
199 |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
200 mv d1/d11/a1 .hg |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
201 hg rename --after d1/d11/a1 .hg |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
202 hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
203 hg update -C |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
204 rm .hg/a1 |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
205 |
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
206 (cd d1/d11; hg rename ../../d2/b ../../.hg/foo) |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
207 hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
208 (cd d1/d11; hg rename ../../d2/b ../../../foo) |
4775
438603c1eb6f
test-rename: use hg status -C; don't use hg debugstate | grep copy
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
1976
diff
changeset
|
209 hg status -C |
1976
df8416346bb7
Enable path validation for copy, rename, debugwalk and other canonpath users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1933
diff
changeset
|
210 |