Show More
@@ -0,0 +1,280 b'' | |||
|
1 | SVN-fs-dump-format-version: 2 | |
|
2 | ||
|
3 | UUID: afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af | |
|
4 | ||
|
5 | Revision-number: 0 | |
|
6 | Prop-content-length: 56 | |
|
7 | Content-length: 56 | |
|
8 | ||
|
9 | K 8 | |
|
10 | svn:date | |
|
11 | V 27 | |
|
12 | 2009-06-21T16:34:55.835945Z | |
|
13 | PROPS-END | |
|
14 | ||
|
15 | Revision-number: 1 | |
|
16 | Prop-content-length: 112 | |
|
17 | Content-length: 112 | |
|
18 | ||
|
19 | K 7 | |
|
20 | svn:log | |
|
21 | V 10 | |
|
22 | init projA | |
|
23 | K 10 | |
|
24 | svn:author | |
|
25 | V 7 | |
|
26 | pmezard | |
|
27 | K 8 | |
|
28 | svn:date | |
|
29 | V 27 | |
|
30 | 2009-06-21T16:34:55.909545Z | |
|
31 | PROPS-END | |
|
32 | ||
|
33 | Node-path: branches | |
|
34 | Node-kind: dir | |
|
35 | Node-action: add | |
|
36 | Prop-content-length: 10 | |
|
37 | Content-length: 10 | |
|
38 | ||
|
39 | PROPS-END | |
|
40 | ||
|
41 | ||
|
42 | Node-path: tags | |
|
43 | Node-kind: dir | |
|
44 | Node-action: add | |
|
45 | Prop-content-length: 10 | |
|
46 | Content-length: 10 | |
|
47 | ||
|
48 | PROPS-END | |
|
49 | ||
|
50 | ||
|
51 | Node-path: trunk | |
|
52 | Node-kind: dir | |
|
53 | Node-action: add | |
|
54 | Prop-content-length: 10 | |
|
55 | Content-length: 10 | |
|
56 | ||
|
57 | PROPS-END | |
|
58 | ||
|
59 | ||
|
60 | Revision-number: 2 | |
|
61 | Prop-content-length: 106 | |
|
62 | Content-length: 106 | |
|
63 | ||
|
64 | K 7 | |
|
65 | svn:log | |
|
66 | V 5 | |
|
67 | hello | |
|
68 | K 10 | |
|
69 | svn:author | |
|
70 | V 7 | |
|
71 | pmezard | |
|
72 | K 8 | |
|
73 | svn:date | |
|
74 | V 27 | |
|
75 | 2009-06-21T16:34:56.150049Z | |
|
76 | PROPS-END | |
|
77 | ||
|
78 | Node-path: trunk/à | |
|
79 | Node-kind: dir | |
|
80 | Node-action: add | |
|
81 | Prop-content-length: 10 | |
|
82 | Content-length: 10 | |
|
83 | ||
|
84 | PROPS-END | |
|
85 | ||
|
86 | ||
|
87 | Node-path: trunk/à/é | |
|
88 | Node-kind: file | |
|
89 | Node-action: add | |
|
90 | Prop-content-length: 10 | |
|
91 | Text-content-length: 2 | |
|
92 | Text-content-md5: e29311f6f1bf1af907f9ef9f44b8328b | |
|
93 | Text-content-sha1: e983f374794de9c64e3d1c1de1d490c0756eeeff | |
|
94 | Content-length: 12 | |
|
95 | ||
|
96 | PROPS-END | |
|
97 | d | |
|
98 | ||
|
99 | ||
|
100 | Node-path: trunk/é | |
|
101 | Node-kind: file | |
|
102 | Node-action: add | |
|
103 | Prop-content-length: 10 | |
|
104 | Text-content-length: 2 | |
|
105 | Text-content-md5: 9ffbf43126e33be52cd2bf7e01d627f9 | |
|
106 | Text-content-sha1: 094e3afb2fe8dfe82f63731cdcd3b999f4856cff | |
|
107 | Content-length: 12 | |
|
108 | ||
|
109 | PROPS-END | |
|
110 | e | |
|
111 | ||
|
112 | ||
|
113 | Revision-number: 3 | |
|
114 | Prop-content-length: 112 | |
|
115 | Content-length: 112 | |
|
116 | ||
|
117 | K 7 | |
|
118 | svn:log | |
|
119 | V 10 | |
|
120 | copy files | |
|
121 | K 10 | |
|
122 | svn:author | |
|
123 | V 7 | |
|
124 | pmezard | |
|
125 | K 8 | |
|
126 | svn:date | |
|
127 | V 27 | |
|
128 | 2009-06-21T16:34:59.089402Z | |
|
129 | PROPS-END | |
|
130 | ||
|
131 | Node-path: trunk/è | |
|
132 | Node-kind: file | |
|
133 | Node-action: add | |
|
134 | Node-copyfrom-rev: 2 | |
|
135 | Node-copyfrom-path: trunk/é | |
|
136 | Text-copy-source-md5: 9ffbf43126e33be52cd2bf7e01d627f9 | |
|
137 | Text-copy-source-sha1: 094e3afb2fe8dfe82f63731cdcd3b999f4856cff | |
|
138 | ||
|
139 | ||
|
140 | Node-path: trunk/ù | |
|
141 | Node-kind: dir | |
|
142 | Node-action: add | |
|
143 | Node-copyfrom-rev: 2 | |
|
144 | Node-copyfrom-path: trunk/à | |
|
145 | ||
|
146 | ||
|
147 | Node-path: trunk/à | |
|
148 | Node-action: delete | |
|
149 | ||
|
150 | ||
|
151 | Node-path: trunk/é | |
|
152 | Node-action: delete | |
|
153 | ||
|
154 | ||
|
155 | Revision-number: 4 | |
|
156 | Prop-content-length: 114 | |
|
157 | Content-length: 114 | |
|
158 | ||
|
159 | K 7 | |
|
160 | svn:log | |
|
161 | V 12 | |
|
162 | remove files | |
|
163 | K 10 | |
|
164 | svn:author | |
|
165 | V 7 | |
|
166 | pmezard | |
|
167 | K 8 | |
|
168 | svn:date | |
|
169 | V 27 | |
|
170 | 2009-06-21T16:35:00.165121Z | |
|
171 | PROPS-END | |
|
172 | ||
|
173 | Node-path: trunk/è | |
|
174 | Node-action: delete | |
|
175 | ||
|
176 | ||
|
177 | Node-path: trunk/ù | |
|
178 | Node-action: delete | |
|
179 | ||
|
180 | ||
|
181 | Revision-number: 5 | |
|
182 | Prop-content-length: 120 | |
|
183 | Content-length: 120 | |
|
184 | ||
|
185 | K 7 | |
|
186 | svn:log | |
|
187 | V 18 | |
|
188 | branch to branché | |
|
189 | K 10 | |
|
190 | svn:author | |
|
191 | V 7 | |
|
192 | pmezard | |
|
193 | K 8 | |
|
194 | svn:date | |
|
195 | V 27 | |
|
196 | 2009-06-21T16:35:03.079138Z | |
|
197 | PROPS-END | |
|
198 | ||
|
199 | Node-path: branches/branché | |
|
200 | Node-kind: dir | |
|
201 | Node-action: add | |
|
202 | Node-copyfrom-rev: 4 | |
|
203 | Node-copyfrom-path: trunk | |
|
204 | ||
|
205 | ||
|
206 | Revision-number: 6 | |
|
207 | Prop-content-length: 121 | |
|
208 | Content-length: 121 | |
|
209 | ||
|
210 | K 7 | |
|
211 | svn:log | |
|
212 | V 19 | |
|
213 | branch to branchée | |
|
214 | K 10 | |
|
215 | svn:author | |
|
216 | V 7 | |
|
217 | pmezard | |
|
218 | K 8 | |
|
219 | svn:date | |
|
220 | V 27 | |
|
221 | 2009-06-21T16:35:06.060801Z | |
|
222 | PROPS-END | |
|
223 | ||
|
224 | Node-path: branches/branchée | |
|
225 | Node-kind: dir | |
|
226 | Node-action: add | |
|
227 | Node-copyfrom-rev: 5 | |
|
228 | Node-copyfrom-path: branches/branché | |
|
229 | ||
|
230 | ||
|
231 | Revision-number: 7 | |
|
232 | Prop-content-length: 110 | |
|
233 | Content-length: 110 | |
|
234 | ||
|
235 | K 7 | |
|
236 | svn:log | |
|
237 | V 9 | |
|
238 | tag trunk | |
|
239 | K 10 | |
|
240 | svn:author | |
|
241 | V 7 | |
|
242 | pmezard | |
|
243 | K 8 | |
|
244 | svn:date | |
|
245 | V 27 | |
|
246 | 2009-06-21T16:35:09.061530Z | |
|
247 | PROPS-END | |
|
248 | ||
|
249 | Node-path: tags/branché | |
|
250 | Node-kind: dir | |
|
251 | Node-action: add | |
|
252 | Node-copyfrom-rev: 6 | |
|
253 | Node-copyfrom-path: trunk | |
|
254 | ||
|
255 | ||
|
256 | Revision-number: 8 | |
|
257 | Prop-content-length: 114 | |
|
258 | Content-length: 114 | |
|
259 | ||
|
260 | K 7 | |
|
261 | svn:log | |
|
262 | V 12 | |
|
263 | tag branché | |
|
264 | K 10 | |
|
265 | svn:author | |
|
266 | V 7 | |
|
267 | pmezard | |
|
268 | K 8 | |
|
269 | svn:date | |
|
270 | V 27 | |
|
271 | 2009-06-21T16:35:11.068562Z | |
|
272 | PROPS-END | |
|
273 | ||
|
274 | Node-path: tags/branchée | |
|
275 | Node-kind: dir | |
|
276 | Node-action: add | |
|
277 | Node-copyfrom-rev: 6 | |
|
278 | Node-copyfrom-path: branches/branchée | |
|
279 | ||
|
280 |
@@ -0,0 +1,57 b'' | |||
|
1 | # -*- coding: utf-8 -*- | |
|
2 | #!/bin/sh | |
|
3 | # | |
|
4 | # Use this script to generate encoding.svndump | |
|
5 | # | |
|
6 | ||
|
7 | mkdir temp | |
|
8 | cd temp | |
|
9 | ||
|
10 | mkdir project-orig | |
|
11 | cd project-orig | |
|
12 | mkdir trunk | |
|
13 | mkdir branches | |
|
14 | mkdir tags | |
|
15 | cd .. | |
|
16 | ||
|
17 | svnadmin create svn-repo | |
|
18 | svnurl=file://`pwd`/svn-repo | |
|
19 | svn import project-orig $svnurl -m "init projA" | |
|
20 | ||
|
21 | svn co $svnurl project | |
|
22 | cd project | |
|
23 | echo e > trunk/é | |
|
24 | mkdir trunk/à | |
|
25 | echo d > trunk/à/é | |
|
26 | svn add trunk/é trunk/à | |
|
27 | svn ci -m hello | |
|
28 | ||
|
29 | # Copy files and directories | |
|
30 | svn mv trunk/é trunk/è | |
|
31 | svn mv trunk/à trunk/ù | |
|
32 | svn ci -m "copy files" | |
|
33 | ||
|
34 | # Remove files | |
|
35 | svn rm trunk/è | |
|
36 | svn rm trunk/ù | |
|
37 | svn ci -m 'remove files' | |
|
38 | ||
|
39 | # Create branches with and from weird names | |
|
40 | svn up | |
|
41 | svn cp trunk branches/branché | |
|
42 | echo a > branches/branché/a | |
|
43 | svn ci -m 'branch to branché' | |
|
44 | svn up | |
|
45 | svn cp branches/branché branches/branchée | |
|
46 | echo a >> branches/branché/a | |
|
47 | svn ci -m 'branch to branchée' | |
|
48 | ||
|
49 | # Create tag with weird name | |
|
50 | svn up | |
|
51 | svn cp trunk tags/branché | |
|
52 | svn ci -m 'tag trunk' | |
|
53 | svn cp branches/branchée tags/branchée | |
|
54 | svn ci -m 'tag branché' | |
|
55 | cd .. | |
|
56 | ||
|
57 | svnadmin dump svn-repo > ../encoding.svndump |
@@ -0,0 +1,17 b'' | |||
|
1 | #!/bin/sh | |
|
2 | ||
|
3 | "$TESTDIR/hghave" svn svn-bindings || exit 80 | |
|
4 | ||
|
5 | echo "[extensions]" >> $HGRCPATH | |
|
6 | echo "convert = " >> $HGRCPATH | |
|
7 | ||
|
8 | svnadmin create svn-repo | |
|
9 | cat "$TESTDIR/svn/encoding.svndump" | svnadmin load svn-repo > /dev/null | |
|
10 | ||
|
11 | echo '% convert while testing all possible outputs' | |
|
12 | hg --debug convert svn-repo A-hg > /dev/null | |
|
13 | cd A-hg | |
|
14 | hg up | |
|
15 | echo '% check tags are in UTF-8' | |
|
16 | python -c "print '\n'.join([('%r' % l) for l in file('.hgtags', 'rb').readlines()])" | |
|
17 | cd .. |
@@ -0,0 +1,5 b'' | |||
|
1 | % convert while testing all possible outputs | |
|
2 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
3 | % check tags are in UTF-8 | |
|
4 | '1c1b4062874e8197a68e7ce9e498479a37d0215c branch\xc3\xa9e\n' | |
|
5 | 'edc96568720ef79eefa6372677b18d855de3abee branch\xc3\xa9\n' |
@@ -6,18 +6,23 b'' | |||
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | # |
|
8 | 8 | |
|
9 | '''provide simple hooks for access control | |
|
9 | '''control access to a repository using simple hooks | |
|
10 | 10 | |
|
11 | Authorization is against local user name on system where hook is run, not | |
|
12 | committer of original changeset (since that is easy to spoof). | |
|
11 | This hook makes it possible to allow or deny write access to portions | |
|
12 | of a repository when receiving incoming changesets. | |
|
13 | ||
|
14 | The authorization is matched based on the local user name on the | |
|
15 | system where the hook runs, and not the committer of the original | |
|
16 | changeset (since the latter is merely informative). | |
|
13 | 17 | |
|
14 |
The acl hook is best |
|
|
15 | authenticated users to only push to / pull from. It's not safe if user has | |
|
16 | interactive shell access, because they can disable the hook. It's also not | |
|
17 | safe if remote users share one local account, because then there's no way to | |
|
18 | tell remote users apart. | |
|
18 | The acl hook is best used along with a restricted shell like hgsh, | |
|
19 | preventing authenticating users from doing anything other than | |
|
20 | pushing or pulling. The hook is not safe to use if users have | |
|
21 | interactive shell access, as they can then disable the hook. | |
|
22 | Nor is it safe if remote users share an account, because then there | |
|
23 | is no way to distinguish them. | |
|
19 | 24 | |
|
20 | To use, configure the acl extension in hgrc like this: | |
|
25 | To use this hook, configure the acl extension in your hgrc like this: | |
|
21 | 26 | |
|
22 | 27 | [extensions] |
|
23 | 28 | hgext.acl = |
@@ -26,21 +31,24 b' To use, configure the acl extension in h' | |||
|
26 | 31 | pretxnchangegroup.acl = python:hgext.acl.hook |
|
27 | 32 | |
|
28 | 33 | [acl] |
|
29 |
|
|
|
34 | # Check whether the source of incoming changes is in this list | |
|
30 | 35 |
|
|
36 | sources = serve | |
|
31 | 37 | |
|
32 |
|
|
|
33 | left and user names on right. The deny list is checked before the allow list. | |
|
38 | The allow and deny sections take a subtree pattern as key (with a | |
|
39 | glob syntax by default), and a comma separated list of users as | |
|
40 | the corresponding value. The deny list is checked before the allow | |
|
41 | list is. | |
|
34 | 42 | |
|
35 | 43 | [acl.allow] |
|
36 |
# |
|
|
37 |
# empty acl.allow |
|
|
44 | # If acl.allow is not present, all users are allowed by default. | |
|
45 | # An empty acl.allow section means no users allowed. | |
|
38 | 46 | docs/** = doc_writer |
|
39 | 47 | .hgtags = release_engineer |
|
40 | 48 | |
|
41 | 49 | [acl.deny] |
|
42 |
# |
|
|
43 |
# empty acl.deny |
|
|
50 | # If acl.deny is not present, no users are refused by default. | |
|
51 | # An empty acl.deny section means all users allowed. | |
|
44 | 52 | glob pattern = user4, user5 |
|
45 | 53 | ** = user6 |
|
46 | 54 | ''' |
@@ -5,24 +5,26 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 | '''Mercurial bookmarks | |
|
8 | '''track a line of development with movable markers | |
|
9 | ||
|
10 | Bookmarks are local movable markers to changesets. Every bookmark | |
|
11 | points to a changeset identified by its hash. If you commit a | |
|
12 | changeset that is based on a changeset that has a bookmark on it, | |
|
13 | the bookmark shifts to the new changeset. | |
|
9 | 14 | |
|
10 | Mercurial bookmarks are local moveable pointers to changesets. Every | |
|
11 | bookmark points to a changeset identified by its hash. If you commit a | |
|
12 | changeset that is based on a changeset that has a bookmark on it, the | |
|
13 | bookmark is forwarded to the new changeset. | |
|
15 | It is possible to use bookmark names in every revision lookup | |
|
16 | (e.g. hg merge, hg update). | |
|
14 | 17 | |
|
15 | It is possible to use bookmark names in every revision lookup (e.g. hg | |
|
16 | merge, hg update). | |
|
17 | ||
|
18 | The bookmark extension offers the possiblity to have a more git-like | |
|
19 | experience by adding the following configuration option to your .hgrc: | |
|
18 | By default, when several bookmarks point to the same changeset, they | |
|
19 | will all move forward together. It is possible to obtain a more | |
|
20 | git-like experience by adding the following configuration option to | |
|
21 | your .hgrc: | |
|
20 | 22 | |
|
21 | 23 | [bookmarks] |
|
22 | 24 | track.current = True |
|
23 | 25 | |
|
24 |
This will cause |
|
|
25 |
|
|
|
26 | This will cause Mercurial to track the bookmark that you are currently | |
|
27 | using, and only update it. This is similar to git's approach to | |
|
26 | 28 | branching. |
|
27 | 29 | ''' |
|
28 | 30 | |
@@ -120,10 +122,10 b' def setcurrent(repo, mark):' | |||
|
120 | 122 | repo._bookmarkcurrent = mark |
|
121 | 123 | |
|
122 | 124 | def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False, rename=None): |
|
123 | '''Mercurial bookmarks | |
|
125 | '''track a line of development with movable markers | |
|
124 | 126 | |
|
125 | 127 | Bookmarks are pointers to certain commits that move when |
|
126 | commiting. Bookmarks are local. They can be renamed, copied and | |
|
128 | committing. Bookmarks are local. They can be renamed, copied and | |
|
127 | 129 | deleted. It is possible to use bookmark names in 'hg merge' and |
|
128 | 130 | 'hg update' to merge and update respectively to a given bookmark. |
|
129 | 131 |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 | '''Bugzilla integration | |
|
8 | '''integrate Mercurial with a Bugzilla bug tracker | |
|
9 | 9 | |
|
10 | 10 | This hook extension adds comments on bugs in Bugzilla when changesets |
|
11 | 11 | that refer to bugs by Bugzilla ID are seen. The hook does not change |
@@ -8,7 +8,7 b'' | |||
|
8 | 8 | # This software may be used and distributed according to the terms of the |
|
9 | 9 | # GNU General Public License version 2, incorporated herein by reference. |
|
10 | 10 | |
|
11 |
''' |
|
|
11 | '''display children changesets''' | |
|
12 | 12 | |
|
13 | 13 | from mercurial import cmdutil |
|
14 | 14 | from mercurial.commands import templateopts |
@@ -6,7 +6,7 b'' | |||
|
6 | 6 | # This software may be used and distributed according to the terms of the |
|
7 | 7 | # GNU General Public License version 2, incorporated herein by reference. |
|
8 | 8 | |
|
9 |
''' |
|
|
9 | '''display statistics about repository history''' | |
|
10 | 10 | |
|
11 | 11 | from mercurial.i18n import _ |
|
12 | 12 | from mercurial import patch, cmdutil, util, templater |
@@ -16,7 +16,7 b'' | |||
|
16 | 16 | # with this program; if not, write to the Free Software Foundation, Inc., |
|
17 | 17 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
|
18 | 18 | |
|
19 | '''add color output to status, qseries, and diff-related commands | |
|
19 | '''colorize output from some commands | |
|
20 | 20 | |
|
21 | 21 | This extension modifies the status command to add color to its output |
|
22 | 22 | to reflect file status, the qseries command to add color to reflect |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 |
''' |
|
|
8 | '''import from foreign VCS repositories into Mercurial''' | |
|
9 | 9 | |
|
10 | 10 | import convcmd |
|
11 | 11 | import cvsps |
@@ -103,7 +103,10 b' class converter_source(object):' | |||
|
103 | 103 | raise NotImplementedError() |
|
104 | 104 | |
|
105 | 105 | def gettags(self): |
|
106 |
"""Return the tags as a dictionary of name: revision |
|
|
106 | """Return the tags as a dictionary of name: revision | |
|
107 | ||
|
108 | Tag names must be UTF-8 strings. | |
|
109 | """ | |
|
107 | 110 | raise NotImplementedError() |
|
108 | 111 | |
|
109 | 112 | def recode(self, s, encoding=None): |
@@ -198,7 +201,9 b' class converter_sink(object):' | |||
|
198 | 201 | |
|
199 | 202 | def puttags(self, tags): |
|
200 | 203 | """Put tags into sink. |
|
201 | tags: {tagname: sink_rev_id, ...}""" | |
|
204 | ||
|
205 | tags: {tagname: sink_rev_id, ...} where tagname is an UTF-8 string. | |
|
206 | """ | |
|
202 | 207 | raise NotImplementedError() |
|
203 | 208 | |
|
204 | 209 | def setbranch(self, branch, pbranches): |
@@ -511,7 +511,9 b' def createchangeset(ui, log, fuzz=60, me' | |||
|
511 | 511 | e.comment == c.comment and |
|
512 | 512 | e.author == c.author and |
|
513 | 513 | e.branch == c.branch and |
|
514 |
e |
|
|
514 | (not hasattr(e, 'branchpoints') or | |
|
515 | not hasattr (c, 'branchpoints') or | |
|
516 | e.branchpoints == c.branchpoints) and | |
|
515 | 517 | ((c.date[0] + c.date[1]) <= |
|
516 | 518 | (e.date[0] + e.date[1]) <= |
|
517 | 519 | (c.date[0] + c.date[1]) + fuzz) and |
@@ -1,19 +1,6 b'' | |||
|
1 | 1 | # Subversion 1.4/1.5 Python API backend |
|
2 | 2 | # |
|
3 | 3 | # Copyright(C) 2007 Daniel Holth et al |
|
4 | # | |
|
5 | # Configuration options: | |
|
6 | # | |
|
7 | # convert.svn.trunk | |
|
8 | # Relative path to the trunk (default: "trunk") | |
|
9 | # convert.svn.branches | |
|
10 | # Relative path to tree of branches (default: "branches") | |
|
11 | # convert.svn.tags | |
|
12 | # Relative path to tree of tags (default: "tags") | |
|
13 | # | |
|
14 | # Set these in a hgrc, or on the command line as follows: | |
|
15 | # | |
|
16 | # hg convert --config convert.svn.trunk=wackoname [...] | |
|
17 | 4 | |
|
18 | 5 | import locale |
|
19 | 6 | import os |
@@ -23,7 +10,7 b' import cPickle as pickle' | |||
|
23 | 10 | import tempfile |
|
24 | 11 | import urllib |
|
25 | 12 | |
|
26 | from mercurial import strutil, util | |
|
13 | from mercurial import strutil, util, encoding | |
|
27 | 14 | from mercurial.i18n import _ |
|
28 | 15 | |
|
29 | 16 | # Subversion stuff. Works best with very recent Python SVN bindings |
@@ -63,6 +50,9 b' def geturl(path):' | |||
|
63 | 50 | path = os.path.normpath(os.path.abspath(path)) |
|
64 | 51 | if os.name == 'nt': |
|
65 | 52 | path = '/' + util.normpath(path) |
|
53 | # Module URL is later compared with the repository URL returned | |
|
54 | # by svn API, which is UTF-8. | |
|
55 | path = encoding.tolocal(path) | |
|
66 | 56 | return 'file://%s' % urllib.quote(path) |
|
67 | 57 | return path |
|
68 | 58 | |
@@ -213,7 +203,6 b' class svn_source(converter_source):' | |||
|
213 | 203 | raise MissingTool(_('Subversion python bindings are too old, 1.4 ' |
|
214 | 204 | 'or later required')) |
|
215 | 205 | |
|
216 | self.encoding = locale.getpreferredencoding() | |
|
217 | 206 | self.lastrevs = {} |
|
218 | 207 | |
|
219 | 208 | latest = None |
@@ -240,7 +229,7 b' class svn_source(converter_source):' | |||
|
240 | 229 | self.rootmodule = self.module |
|
241 | 230 | self.commits = {} |
|
242 | 231 | self.paths = {} |
|
243 |
self.uuid = svn.ra.get_uuid(self.ra) |
|
|
232 | self.uuid = svn.ra.get_uuid(self.ra) | |
|
244 | 233 | except SubversionException: |
|
245 | 234 | ui.traceback() |
|
246 | 235 | raise NoRepo("%s does not look like a Subversion repo" % self.url) |
@@ -260,15 +249,10 b' class svn_source(converter_source):' | |||
|
260 | 249 | raise util.Abort(_('svn: start revision %s is not an integer') |
|
261 | 250 | % self.startrev) |
|
262 | 251 | |
|
263 | try: | |
|
264 | self.get_blacklist() | |
|
265 | except IOError: | |
|
266 | pass | |
|
267 | ||
|
268 | 252 | self.head = self.latest(self.module, latest) |
|
269 | 253 | if not self.head: |
|
270 |
raise util.Abort(_('no revision found in module %s') |
|
|
271 |
self.module |
|
|
254 | raise util.Abort(_('no revision found in module %s') | |
|
255 | % self.module) | |
|
272 | 256 | self.last_changed = self.revnum(self.head) |
|
273 | 257 | |
|
274 | 258 | self._changescache = None |
@@ -328,8 +312,8 b' class svn_source(converter_source):' | |||
|
328 | 312 | self.module += '/' + trunk |
|
329 | 313 | self.head = self.latest(self.module, self.last_changed) |
|
330 | 314 | if not self.head: |
|
331 |
raise util.Abort(_('no revision found in module %s') |
|
|
332 |
self.module |
|
|
315 | raise util.Abort(_('no revision found in module %s') | |
|
316 | % self.module) | |
|
333 | 317 | |
|
334 | 318 | # First head in the list is the module's head |
|
335 | 319 | self.heads = [self.head] |
@@ -347,8 +331,7 b' class svn_source(converter_source):' | |||
|
347 | 331 | continue |
|
348 | 332 | brevid = self.latest(module, self.last_changed) |
|
349 | 333 | if not brevid: |
|
350 | self.ui.note(_('ignoring empty branch %s\n') % | |
|
351 | branch.encode(self.encoding)) | |
|
334 | self.ui.note(_('ignoring empty branch %s\n') % branch) | |
|
352 | 335 | continue |
|
353 | 336 | self.ui.note(_('found branch %s at %d\n') % |
|
354 | 337 | (branch, self.revnum(brevid))) |
@@ -524,19 +507,14 b' class svn_source(converter_source):' | |||
|
524 | 507 | self.convertfp.write('%s %d\n' % (destrev, self.revnum(rev))) |
|
525 | 508 | self.convertfp.flush() |
|
526 | 509 | |
|
527 | # -- helper functions -- | |
|
528 | ||
|
529 | 510 | def revid(self, revnum, module=None): |
|
530 | if not module: | |
|
531 | module = self.module | |
|
532 | return u"svn:%s%s@%s" % (self.uuid, module.decode(self.encoding), | |
|
533 | revnum) | |
|
511 | return 'svn:%s%s@%s' % (self.uuid, module or self.module, revnum) | |
|
534 | 512 | |
|
535 | 513 | def revnum(self, rev): |
|
536 | 514 | return int(rev.split('@')[-1]) |
|
537 | 515 | |
|
538 | 516 | def revsplit(self, rev): |
|
539 |
url, revnum = rev. |
|
|
517 | url, revnum = rev.rsplit('@', 1) | |
|
540 | 518 | revnum = int(revnum) |
|
541 | 519 | parts = url.split('/', 1) |
|
542 | 520 | uuid = parts.pop(0)[4:] |
@@ -593,25 +571,6 b' class svn_source(converter_source):' | |||
|
593 | 571 | return None |
|
594 | 572 | return self.revid(dirent.created_rev, path) |
|
595 | 573 | |
|
596 | def get_blacklist(self): | |
|
597 | """Avoid certain revision numbers. | |
|
598 | It is not uncommon for two nearby revisions to cancel each other | |
|
599 | out, e.g. 'I copied trunk into a subdirectory of itself instead | |
|
600 | of making a branch'. The converted repository is significantly | |
|
601 | smaller if we ignore such revisions.""" | |
|
602 | self.blacklist = set() | |
|
603 | blacklist = self.blacklist | |
|
604 | for line in file("blacklist.txt", "r"): | |
|
605 | if not line.startswith("#"): | |
|
606 | try: | |
|
607 | svn_rev = int(line.strip()) | |
|
608 | blacklist.add(svn_rev) | |
|
609 | except ValueError: | |
|
610 | pass # not an integer or a comment | |
|
611 | ||
|
612 | def is_blacklisted(self, svn_rev): | |
|
613 | return svn_rev in self.blacklist | |
|
614 | ||
|
615 | 574 | def reparent(self, module): |
|
616 | 575 | """Reparent the svn transport and return the previous parent.""" |
|
617 | 576 | if self.prevmodule == module: |
@@ -639,11 +598,10 b' class svn_source(converter_source):' | |||
|
639 | 598 | |
|
640 | 599 | for path, ent in paths: |
|
641 | 600 | entrypath = self.getrelpath(path) |
|
642 | entry = entrypath.decode(self.encoding) | |
|
643 | 601 | |
|
644 | 602 | kind = self._checkpath(entrypath, revnum) |
|
645 | 603 | if kind == svn.core.svn_node_file: |
|
646 | entries.append(self.recode(entry)) | |
|
604 | entries.append(self.recode(entrypath)) | |
|
647 | 605 | if not ent.copyfrom_path or not parents: |
|
648 | 606 | continue |
|
649 | 607 | # Copy sources not in parent revisions cannot be |
@@ -656,102 +614,46 b' class svn_source(converter_source):' | |||
|
656 | 614 | continue |
|
657 | 615 | self.ui.debug(_("copied to %s from %s@%s\n") % |
|
658 | 616 | (entrypath, copyfrom_path, ent.copyfrom_rev)) |
|
659 | copies[self.recode(entry)] = self.recode(copyfrom_path) | |
|
617 | copies[self.recode(entrypath)] = self.recode(copyfrom_path) | |
|
660 | 618 | elif kind == 0: # gone, but had better be a deleted *file* |
|
661 | 619 | self.ui.debug(_("gone from %s\n") % ent.copyfrom_rev) |
|
662 | ||
|
663 | # if a branch is created but entries are removed in | |
|
664 | # the same changeset, get the right fromrev | |
|
665 | # parents cannot be empty here, you cannot remove | |
|
666 | # things from a root revision. | |
|
667 | uuid, old_module, fromrev = self.revsplit(parents[0]) | |
|
668 | ||
|
669 | basepath = old_module + "/" + self.getrelpath(path) | |
|
670 | entrypath = basepath | |
|
671 | ||
|
672 | def lookup_parts(p): | |
|
673 | rc = None | |
|
674 | parts = p.split("/") | |
|
675 | for i in range(len(parts)): | |
|
676 | part = "/".join(parts[:i]) | |
|
677 | info = part, copyfrom.get(part, None) | |
|
678 | if info[1] is not None: | |
|
679 | self.ui.debug(_("found parent directory %s\n") % info[1]) | |
|
680 | rc = info | |
|
681 | return rc | |
|
682 | ||
|
683 | self.ui.debug(_("base, entry %s %s\n") % (basepath, entrypath)) | |
|
684 | ||
|
685 | frompath, froment = lookup_parts(entrypath) or (None, revnum - 1) | |
|
686 | ||
|
687 | # need to remove fragment from lookup_parts and | |
|
688 | # replace with copyfrom_path | |
|
689 | if frompath is not None: | |
|
690 | self.ui.debug(_("munge-o-matic\n")) | |
|
691 | self.ui.debug(entrypath + '\n') | |
|
692 | self.ui.debug(entrypath[len(frompath):] + '\n') | |
|
693 | entrypath = froment.copyfrom_path + entrypath[len(frompath):] | |
|
694 | fromrev = froment.copyfrom_rev | |
|
695 | self.ui.debug(_("info: %s %s %s %s\n") % (frompath, froment, ent, entrypath)) | |
|
620 | pmodule, prevnum = self.revsplit(parents[0])[1:] | |
|
621 | parentpath = pmodule + "/" + entrypath | |
|
622 | self.ui.debug(_("entry %s\n") % parentpath) | |
|
696 | 623 | |
|
697 | 624 | # We can avoid the reparent calls if the module has |
|
698 | 625 | # not changed but it probably does not worth the pain. |
|
699 | 626 | prevmodule = self.reparent('') |
|
700 |
fromkind = svn.ra.check_path(self.ra, ent |
|
|
627 | fromkind = svn.ra.check_path(self.ra, parentpath.strip('/'), prevnum) | |
|
701 | 628 | self.reparent(prevmodule) |
|
702 | 629 | |
|
703 |
if fromkind == svn.core.svn_node_file: |
|
|
704 | entries.append(self.recode(entry)) | |
|
630 | if fromkind == svn.core.svn_node_file: | |
|
631 | entries.append(self.recode(entrypath)) | |
|
705 | 632 | elif fromkind == svn.core.svn_node_dir: |
|
706 | # print "Deleted/moved non-file:", revnum, path, ent | |
|
707 | # children = self._find_children(path, revnum - 1) | |
|
708 | # print ("find children %s@%d from %d action %s" % | |
|
709 | # (path, revnum, ent.copyfrom_rev, ent.action)) | |
|
710 | # Sometimes this is tricky. For example: in | |
|
711 | # The Subversion Repository revision 6940 a dir | |
|
712 | # was copied and one of its files was deleted | |
|
713 | # from the new location in the same commit. This | |
|
714 | # code can't deal with that yet. | |
|
715 | 633 | if ent.action == 'C': |
|
716 |
children = self._find_children(path, |
|
|
634 | children = self._find_children(path, prevnum) | |
|
717 | 635 | else: |
|
718 |
oroot = ent |
|
|
636 | oroot = parentpath.strip('/') | |
|
719 | 637 | nroot = path.strip('/') |
|
720 |
children = self._find_children(oroot, |
|
|
638 | children = self._find_children(oroot, prevnum) | |
|
721 | 639 | children = [s.replace(oroot,nroot) for s in children] |
|
722 | # Mark all [files, not directories] as deleted. | |
|
640 | ||
|
723 | 641 | for child in children: |
|
724 | # Can we move a child directory and its | |
|
725 | # parent in the same commit? (probably can). Could | |
|
726 | # cause problems if instead of revnum -1, | |
|
727 |
|
|
|
728 | entrypath = self.getrelpath("/" + child, module=old_module) | |
|
729 |
|
|
|
730 | entry = self.recode(entrypath.decode(self.encoding)) | |
|
731 | if entry in copies: | |
|
732 | # deleted file within a copy | |
|
733 | del copies[entry] | |
|
734 | else: | |
|
735 | entries.append(entry) | |
|
642 | childpath = self.getrelpath("/" + child, pmodule) | |
|
643 | if not childpath: | |
|
644 | continue | |
|
645 | if childpath in copies: | |
|
646 | del copies[childpath] | |
|
647 | entries.append(childpath) | |
|
736 | 648 | else: |
|
737 | 649 | self.ui.debug(_('unknown path in revision %d: %s\n') % \ |
|
738 | 650 | (revnum, path)) |
|
739 | 651 | elif kind == svn.core.svn_node_dir: |
|
740 | # Should probably synthesize normal file entries | |
|
741 | # and handle as above to clean up copy/rename handling. | |
|
742 | ||
|
743 | 652 | # If the directory just had a prop change, |
|
744 | 653 | # then we shouldn't need to look for its children. |
|
745 | 654 | if ent.action == 'M': |
|
746 | 655 | continue |
|
747 | 656 | |
|
748 | # Also this could create duplicate entries. Not sure | |
|
749 | # whether this will matter. Maybe should make entries a set. | |
|
750 | # print "Changed directory", revnum, path, ent.action, \ | |
|
751 | # ent.copyfrom_path, ent.copyfrom_rev | |
|
752 | # This will fail if a directory was copied | |
|
753 | # from another branch and then some of its files | |
|
754 | # were deleted in the same transaction. | |
|
755 | 657 | children = sorted(self._find_children(path, revnum)) |
|
756 | 658 | for child in children: |
|
757 | 659 | # Can we move a child directory and its |
@@ -759,15 +661,13 b' class svn_source(converter_source):' | |||
|
759 | 661 | # cause problems if instead of revnum -1, |
|
760 | 662 | # we have to look in (copyfrom_path, revnum - 1) |
|
761 | 663 | entrypath = self.getrelpath("/" + child) |
|
762 | # print child, self.module, entrypath | |
|
763 | 664 | if entrypath: |
|
764 | 665 | # Need to filter out directories here... |
|
765 | 666 | kind = self._checkpath(entrypath, revnum) |
|
766 | 667 | if kind != svn.core.svn_node_dir: |
|
767 | 668 | entries.append(self.recode(entrypath)) |
|
768 | 669 | |
|
769 | # Copies here (must copy all from source) Probably not | |
|
770 | # a real problem for us if source does not exist | |
|
670 | # Handle directory copies | |
|
771 | 671 | if not ent.copyfrom_path or not parents: |
|
772 | 672 | continue |
|
773 | 673 | # Copy sources not in parent revisions cannot be |
@@ -775,8 +675,7 b' class svn_source(converter_source):' | |||
|
775 | 675 | pmodule, prevnum = self.revsplit(parents[0])[1:] |
|
776 | 676 | if ent.copyfrom_rev < prevnum: |
|
777 | 677 | continue |
|
778 |
copyfrompath = ent.copyfrom_path |
|
|
779 | copyfrompath = self.getrelpath(copyfrompath, pmodule) | |
|
678 | copyfrompath = self.getrelpath(ent.copyfrom_path, pmodule) | |
|
780 | 679 | if not copyfrompath: |
|
781 | 680 | continue |
|
782 | 681 | copyfrom[path] = ent |
@@ -788,10 +687,9 b' class svn_source(converter_source):' | |||
|
788 | 687 | entrypath = self.getrelpath("/" + child, pmodule) |
|
789 | 688 | if not entrypath: |
|
790 | 689 | continue |
|
791 |
|
|
|
792 | copytopath = path + entry[len(copyfrompath):] | |
|
690 | copytopath = path + entrypath[len(copyfrompath):] | |
|
793 | 691 | copytopath = self.getrelpath(copytopath) |
|
794 |
copies[self.recode(copytopath)] = self.recode(entry |
|
|
692 | copies[self.recode(copytopath)] = self.recode(entrypath) | |
|
795 | 693 | |
|
796 | 694 | return (list(set(entries)), copies) |
|
797 | 695 | |
@@ -862,7 +760,7 b' class svn_source(converter_source):' | |||
|
862 | 760 | desc=log, |
|
863 | 761 | parents=parents, |
|
864 | 762 | branch=branch, |
|
865 |
rev=rev |
|
|
763 | rev=rev) | |
|
866 | 764 | |
|
867 | 765 | self.commits[rev] = cset |
|
868 | 766 | # The parents list is *shared* among self.paths and the |
@@ -886,10 +784,6 b' class svn_source(converter_source):' | |||
|
886 | 784 | if revnum < self.startrev: |
|
887 | 785 | lastonbranch = True |
|
888 | 786 | break |
|
889 | if self.is_blacklisted(revnum): | |
|
890 | self.ui.note(_('skipping blacklisted revision %d\n') | |
|
891 | % revnum) | |
|
892 | continue | |
|
893 | 787 | if not paths: |
|
894 | 788 | self.ui.debug(_('revision %d has no entries\n') % revnum) |
|
895 | 789 | continue |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 |
'''pull |
|
|
8 | '''pull, update and merge in one command''' | |
|
9 | 9 | |
|
10 | 10 | from mercurial.i18n import _ |
|
11 | 11 | from mercurial.node import nullid, short |
@@ -3,7 +3,7 b'' | |||
|
3 | 3 | # This software may be used and distributed according to the terms of the |
|
4 | 4 | # GNU General Public License version 2, incorporated herein by reference. |
|
5 | 5 | |
|
6 | '''GnuPG signing extension for Mercurial''' | |
|
6 | '''sign and verify changesets''' | |
|
7 | 7 | |
|
8 | 8 | import os, tempfile, binascii |
|
9 | 9 | from mercurial import util, commands, match |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 |
'''show revision graphs in terminal |
|
|
8 | '''show revision graphs in terminals | |
|
9 | 9 | |
|
10 | 10 | This extension adds a --graph option to the incoming, outgoing and log |
|
11 | 11 | commands. When this options is given, an ASCII representation of the |
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | # Copyright (C) 2007-8 Brendan Cully <brendan@kublai.com> |
|
2 | 2 | # Published under the GNU GPL |
|
3 | 3 | |
|
4 | """CIA notification | |
|
4 | """integrate Mercurial with a CIA notification service | |
|
5 | 5 | |
|
6 | 6 | This is meant to be run as a changegroup or incoming hook. |
|
7 | 7 | To configure it, set the following options in your hgrc: |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 |
'''brows |
|
|
8 | '''browse the repository in a graphical way | |
|
9 | 9 | |
|
10 | 10 | The hgk extension allows browsing the history of a repository in a |
|
11 | 11 | graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is not |
@@ -8,7 +8,7 b'' | |||
|
8 | 8 | # The original module was split in an interface and an implementation |
|
9 | 9 | # file to defer pygments loading and speedup extension setup. |
|
10 | 10 | |
|
11 |
"""syntax highlighting |
|
|
11 | """syntax highlighting for hgweb | |
|
12 | 12 | |
|
13 | 13 | It depends on the Pygments syntax highlighting library: |
|
14 | 14 | http://pygments.org/ |
@@ -6,8 +6,7 b'' | |||
|
6 | 6 | # This software may be used and distributed according to the terms of the |
|
7 | 7 | # GNU General Public License version 2, incorporated herein by reference. |
|
8 | 8 | |
|
9 | '''inotify-based status acceleration for Linux systems | |
|
10 | ''' | |
|
9 | '''accelerate status report using system level services''' | |
|
11 | 10 | |
|
12 | 11 | # todo: socket permissions |
|
13 | 12 |
@@ -26,7 +26,7 b'' | |||
|
26 | 26 | # |
|
27 | 27 | # Run "hg help keyword" and "hg kwdemo" to get info on configuration. |
|
28 | 28 | |
|
29 |
'''keyword |
|
|
29 | '''expand keywords in tracked files | |
|
30 | 30 | |
|
31 | 31 | This extension expands RCS/CVS-like or self-customized $Keywords$ in |
|
32 | 32 | tracked text files selected by your configuration. |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 | '''patch management and development | |
|
8 | '''work with a stack of patches | |
|
9 | 9 | |
|
10 | 10 | This extension lets you work with a stack of patches in a Mercurial |
|
11 | 11 | repository. It manages two stacks of patches - all known patches, and |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 |
''' |
|
|
8 | '''send e-mail notifications for commits/pushes | |
|
9 | 9 | |
|
10 | 10 | Subscriptions can be managed through hgrc. Default mode is to print |
|
11 | 11 | messages to stdout, for testing and configuring. |
@@ -12,7 +12,7 b'' | |||
|
12 | 12 | # |
|
13 | 13 | # Run "hg help pager" to get info on configuration. |
|
14 | 14 | |
|
15 | '''browse command output with external pager | |
|
15 | '''browse command output with an external pager | |
|
16 | 16 | |
|
17 | 17 | To set the pager that should be used, set the application variable: |
|
18 | 18 |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 |
''' |
|
|
8 | '''interpret suffixes to refer to ancestor revisions | |
|
9 | 9 | |
|
10 | 10 | This extension allows you to use git-style suffixes to refer to the |
|
11 | 11 | ancestors of a specific revision. |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 |
'''send |
|
|
8 | '''send Mercurial changesets as a series of patch e-mails | |
|
9 | 9 | |
|
10 | 10 | The series is started off with a "[PATCH 0 of N]" introduction, which |
|
11 | 11 | describes the series as a whole. |
@@ -23,7 +23,7 b'' | |||
|
23 | 23 | # along with this program; if not, write to the Free Software |
|
24 | 24 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|
25 | 25 | |
|
26 | '''enable removing untracked files only''' | |
|
26 | '''delete files not tracked from the working directory''' | |
|
27 | 27 | |
|
28 | 28 | from mercurial import util, commands, cmdutil |
|
29 | 29 | from mercurial.i18n import _ |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 |
'''interactive |
|
|
8 | '''interactively select which sets of changes to commit/qrefresh''' | |
|
9 | 9 | |
|
10 | 10 | from mercurial.i18n import gettext, _ |
|
11 | 11 | from mercurial import cmdutil, commands, extensions, hg, mdiff, patch |
@@ -3,7 +3,7 b'' | |||
|
3 | 3 | # This software may be used and distributed according to the terms of the |
|
4 | 4 | # GNU General Public License version 2, incorporated herein by reference. |
|
5 | 5 | |
|
6 | '''provides the hg share command''' | |
|
6 | '''share a common history between several working directories''' | |
|
7 | 7 | |
|
8 | 8 | import os |
|
9 | 9 | from mercurial.i18n import _ |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 | '''patch transplanting tool | |
|
8 | '''transplant changesets from another branch | |
|
9 | 9 | |
|
10 | 10 | This extension allows you to transplant patches from another branch. |
|
11 | 11 |
@@ -9,7 +9,7 b'' | |||
|
9 | 9 | # GNU General Public License version 2, incorporated herein by reference. |
|
10 | 10 | # |
|
11 | 11 | |
|
12 |
|
|
|
12 | '''allow the use of MBCS paths with problematic encoding | |
|
13 | 13 | |
|
14 | 14 | Some MBCS encodings are not good for some path operations (i.e. |
|
15 | 15 | splitting path, case conversion, etc.) with its encoded bytes. We call |
@@ -36,8 +36,7 b' Note that there are some limitations on ' | |||
|
36 | 36 | Path encoding conversion are done between Unicode and |
|
37 | 37 | encoding.encoding which is decided by Mercurial from current locale |
|
38 | 38 | setting or HGENCODING. |
|
39 | ||
|
40 | """ | |
|
39 | ''' | |
|
41 | 40 | |
|
42 | 41 | import os |
|
43 | 42 | from mercurial.i18n import _ |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 | '''LF <-> CRLF/CR translation utilities | |
|
8 | '''perform automatic newline conversion | |
|
9 | 9 | |
|
10 | 10 | To perform automatic newline conversion, use: |
|
11 | 11 |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 | '''zeroconf support for Mercurial repositories | |
|
8 | '''discover and advertise repositories on the local network | |
|
9 | 9 | |
|
10 | 10 | Zeroconf enabled repositories will be announced in a network without |
|
11 | 11 | the need to configure a server or a service. They can be discovered |
@@ -5,7 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 |
import imp, os |
|
|
8 | import imp, os | |
|
9 | 9 | import util, cmdutil, help |
|
10 | 10 | from i18n import _, gettext |
|
11 | 11 |
@@ -5,6 +5,7 b'' | |||
|
5 | 5 | # This software may be used and distributed according to the terms of the |
|
6 | 6 | # GNU General Public License version 2, incorporated herein by reference. |
|
7 | 7 | |
|
8 | import textwrap | |
|
8 | 9 | from i18n import _ |
|
9 | 10 | import extensions |
|
10 | 11 | |
@@ -45,21 +46,27 b' def listexts(header, exts, maxlength):' | |||
|
45 | 46 | return '' |
|
46 | 47 | result = '\n%s\n\n' % header |
|
47 | 48 | for name, desc in sorted(exts.iteritems()): |
|
48 | result += ' %s %s\n' % (name.ljust(maxlength), desc) | |
|
49 | # wrap desc at 70 characters, just like the main help texts | |
|
50 | desc = textwrap.wrap(desc, width=70 - maxlength - 4) | |
|
51 | pad = '\n' + ' ' * (maxlength + 4) | |
|
52 | result += ' %s %s\n' % (name.ljust(maxlength), | |
|
53 | pad.join(desc)) | |
|
49 | 54 | return result |
|
50 | 55 | |
|
51 | 56 | def extshelp(): |
|
52 | 57 | doc = _(r''' |
|
53 |
Mercurial has |
|
|
54 |
|
|
|
55 | hooks, or change Mercurial's behavior. | |
|
58 | Mercurial has the ability to add new features through the use of | |
|
59 | extensions. Extensions may add new commands, add options to | |
|
60 | existing commands, change the default behavior of commands, or | |
|
61 | implement hooks. | |
|
56 | 62 | |
|
57 |
Extensions are not loaded by default for a variety of reasons |
|
|
58 | they may be meant for advanced users or provide potentially | |
|
59 | dangerous commands (e.g. mq and rebase allow history to be | |
|
60 | rewritten), they might not be ready for prime-time yet, or | |
|
61 | they may alter Mercurial's behavior. It is thus up to the user | |
|
62 | to activate extensions as desired. | |
|
63 | Extensions are not loaded by default for a variety of reasons: | |
|
64 | they can increase startup overhead; they may be meant for | |
|
65 | advanced usage only; they may provide potentially dangerous | |
|
66 | abilities (such as letting you destroy or modify history); they | |
|
67 | might not be ready for prime time; or they may alter some | |
|
68 | usual behaviors of stock Mercurial. It is thus up to the user to | |
|
69 | activate extensions as needed. | |
|
63 | 70 | |
|
64 | 71 | To enable the "foo" extension, either shipped with Mercurial |
|
65 | 72 | or in the Python search path, create an entry for it in your |
@@ -77,7 +84,7 b' def extshelp():' | |||
|
77 | 84 | scope, prepend its path with !: |
|
78 | 85 | |
|
79 | 86 | [extensions] |
|
80 |
# disabling extension bar residing in / |
|
|
87 | # disabling extension bar residing in /path/to/extension/bar.py | |
|
81 | 88 | hgext.bar = !/path/to/extension/bar.py |
|
82 | 89 | # ditto, but no path was supplied for extension baz |
|
83 | 90 | hgext.baz = ! |
@@ -228,7 +228,7 b' def readgitpatch(lr):' | |||
|
228 | 228 | |
|
229 | 229 | return (dopatch, gitpatches) |
|
230 | 230 | |
|
231 | class linereader: | |
|
231 | class linereader(object): | |
|
232 | 232 | # simple class to allow pushing lines back into the input stream |
|
233 | 233 | def __init__(self, fp, textmode=False): |
|
234 | 234 | self.fp = fp |
@@ -1,6 +1,6 b'' | |||
|
1 | 1 | SVN-fs-dump-format-version: 2 |
|
2 | 2 | |
|
3 | UUID: 7b60030a-5a1f-4344-a009-73f0c1c2adf2 | |
|
3 | UUID: 3c3c228a-b3dd-467c-a766-896f4b7cd0af | |
|
4 | 4 | |
|
5 | 5 | Revision-number: 0 |
|
6 | 6 | Prop-content-length: 56 |
@@ -9,7 +9,7 b' Content-length: 56' | |||
|
9 | 9 | K 8 |
|
10 | 10 | svn:date |
|
11 | 11 | V 27 |
|
12 | 2008-12-06T12:47:52.296168Z | |
|
12 | 2009-06-21T12:38:53.023457Z | |
|
13 | 13 | PROPS-END |
|
14 | 14 | |
|
15 | 15 | Revision-number: 1 |
@@ -27,7 +27,7 b' pmezard' | |||
|
27 | 27 | K 8 |
|
28 | 28 | svn:date |
|
29 | 29 | V 27 |
|
30 | 2008-12-06T12:47:52.342238Z | |
|
30 | 2009-06-21T12:38:53.111986Z | |
|
31 | 31 | PROPS-END |
|
32 | 32 | |
|
33 | 33 | Node-path: branches |
@@ -72,7 +72,7 b' pmezard' | |||
|
72 | 72 | K 8 |
|
73 | 73 | svn:date |
|
74 | 74 | V 27 |
|
75 |
200 |
|
|
75 | 2009-06-21T12:38:54.182594Z | |
|
76 | 76 | PROPS-END |
|
77 | 77 | |
|
78 | 78 | Node-path: branches/notinbranch |
@@ -81,6 +81,7 b' Node-action: add' | |||
|
81 | 81 | Prop-content-length: 10 |
|
82 | 82 | Text-content-length: 2 |
|
83 | 83 | Text-content-md5: e29311f6f1bf1af907f9ef9f44b8328b |
|
84 | Text-content-sha1: e983f374794de9c64e3d1c1de1d490c0756eeeff | |
|
84 | 85 | Content-length: 12 |
|
85 | 86 | |
|
86 | 87 | PROPS-END |
@@ -93,6 +94,7 b' Node-action: add' | |||
|
93 | 94 | Prop-content-length: 10 |
|
94 | 95 | Text-content-length: 2 |
|
95 | 96 | Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3 |
|
97 | Text-content-sha1: 3f786850e387550fdab836ed7e6dc881de23001b | |
|
96 | 98 | Content-length: 12 |
|
97 | 99 | |
|
98 | 100 | PROPS-END |
@@ -105,6 +107,7 b' Node-action: add' | |||
|
105 | 107 | Prop-content-length: 10 |
|
106 | 108 | Text-content-length: 2 |
|
107 | 109 | Text-content-md5: 3b5d5c3712955042212316173ccf37be |
|
110 | Text-content-sha1: 89e6c98d92887913cadf06b2adb97f26cde4849b | |
|
108 | 111 | Content-length: 12 |
|
109 | 112 | |
|
110 | 113 | PROPS-END |
@@ -117,20 +120,43 b' Node-action: add' | |||
|
117 | 120 | Prop-content-length: 10 |
|
118 | 121 | Text-content-length: 2 |
|
119 | 122 | Text-content-md5: 2cd6ee2c70b0bde53fbe6cac3c8b8bb1 |
|
123 | Text-content-sha1: 2b66fd261ee5c6cfc8de7fa466bab600bcfe4f69 | |
|
120 | 124 | Content-length: 12 |
|
121 | 125 | |
|
122 | 126 | PROPS-END |
|
123 | 127 | c |
|
124 | 128 | |
|
125 | 129 | |
|
130 | Node-path: trunk/dir | |
|
131 | Node-kind: dir | |
|
132 | Node-action: add | |
|
133 | Prop-content-length: 10 | |
|
134 | Content-length: 10 | |
|
135 | ||
|
136 | PROPS-END | |
|
137 | ||
|
138 | ||
|
139 | Node-path: trunk/dir/e | |
|
140 | Node-kind: file | |
|
141 | Node-action: add | |
|
142 | Prop-content-length: 10 | |
|
143 | Text-content-length: 2 | |
|
144 | Text-content-md5: 9ffbf43126e33be52cd2bf7e01d627f9 | |
|
145 | Text-content-sha1: 094e3afb2fe8dfe82f63731cdcd3b999f4856cff | |
|
146 | Content-length: 12 | |
|
147 | ||
|
148 | PROPS-END | |
|
149 | e | |
|
150 | ||
|
151 | ||
|
126 | 152 | Revision-number: 3 |
|
127 |
Prop-content-length: 12 |
|
|
128 |
Content-length: 12 |
|
|
153 | Prop-content-length: 132 | |
|
154 | Content-length: 132 | |
|
129 | 155 | |
|
130 | 156 | K 7 |
|
131 | 157 | svn:log |
|
132 | V 22 | |
|
133 | branch trunk, remove c | |
|
158 | V 30 | |
|
159 | branch trunk, remove c and dir | |
|
134 | 160 | K 10 |
|
135 | 161 | svn:author |
|
136 | 162 | V 7 |
@@ -138,38 +164,22 b' pmezard' | |||
|
138 | 164 | K 8 |
|
139 | 165 | svn:date |
|
140 | 166 | V 27 |
|
141 | 2008-12-06T12:47:55.188535Z | |
|
167 | 2009-06-21T12:38:57.166484Z | |
|
142 | 168 | PROPS-END |
|
143 | 169 | |
|
144 | 170 | Node-path: branches/old |
|
145 | 171 | Node-kind: dir |
|
146 | 172 | Node-action: add |
|
147 |
Node-copyfrom-rev: |
|
|
173 | Node-copyfrom-rev: 2 | |
|
148 | 174 | Node-copyfrom-path: trunk |
|
149 | Prop-content-length: 34 | |
|
150 | Content-length: 34 | |
|
151 | ||
|
152 | K 13 | |
|
153 | svn:mergeinfo | |
|
154 | V 0 | |
|
155 | ||
|
156 | PROPS-END | |
|
157 | 175 | |
|
158 | 176 | |
|
159 |
Node-path: branches/old/ |
|
|
160 |
Node- |
|
|
161 | Node-action: add | |
|
162 | Node-copyfrom-rev: 2 | |
|
163 | Node-copyfrom-path: trunk/a | |
|
164 | Text-copy-source-md5: 60b725f10c9c85c70d97880dfe8191b3 | |
|
177 | Node-path: branches/old/dir | |
|
178 | Node-action: delete | |
|
165 | 179 | |
|
166 | 180 | |
|
167 |
Node-path: branches/old/ |
|
|
168 |
Node- |
|
|
169 | Node-action: add | |
|
170 | Node-copyfrom-rev: 2 | |
|
171 | Node-copyfrom-path: trunk/b | |
|
172 | Text-copy-source-md5: 3b5d5c3712955042212316173ccf37be | |
|
181 | Node-path: branches/old/c | |
|
182 | Node-action: delete | |
|
173 | 183 | |
|
174 | 184 | |
|
175 | 185 | Revision-number: 4 |
@@ -187,7 +197,7 b' pmezard' | |||
|
187 | 197 | K 8 |
|
188 | 198 | svn:date |
|
189 | 199 | V 27 |
|
190 | 2008-12-06T12:47:57.146347Z | |
|
200 | 2009-06-21T12:38:59.084420Z | |
|
191 | 201 | PROPS-END |
|
192 | 202 | |
|
193 | 203 | Node-path: trunk/a |
@@ -195,6 +205,7 b' Node-kind: file' | |||
|
195 | 205 | Node-action: change |
|
196 | 206 | Text-content-length: 4 |
|
197 | 207 | Text-content-md5: 0d227f1abf8c2932d342e9b99cc957eb |
|
208 | Text-content-sha1: d7c8127a20a396cff08af086a1c695b0636f0c29 | |
|
198 | 209 | Content-length: 4 |
|
199 | 210 | |
|
200 | 211 | a |
@@ -216,7 +227,7 b' pmezard' | |||
|
216 | 227 | K 8 |
|
217 | 228 | svn:date |
|
218 | 229 | V 27 |
|
219 | 2008-12-06T12:47:58.150124Z | |
|
230 | 2009-06-21T12:39:00.093201Z | |
|
220 | 231 | PROPS-END |
|
221 | 232 | |
|
222 | 233 | Node-path: branches/old/b |
@@ -224,6 +235,7 b' Node-kind: file' | |||
|
224 | 235 | Node-action: change |
|
225 | 236 | Text-content-length: 4 |
|
226 | 237 | Text-content-md5: 06ac26ed8b614fc0b141e4542aa067c2 |
|
238 | Text-content-sha1: f6980469e74f7125178e88ec571e06fe6ce86e95 | |
|
227 | 239 | Content-length: 4 |
|
228 | 240 | |
|
229 | 241 | b |
@@ -245,7 +257,7 b' pmezard' | |||
|
245 | 257 | K 8 |
|
246 | 258 | svn:date |
|
247 | 259 | V 27 |
|
248 |
200 |
|
|
260 | 2009-06-21T12:39:02.078633Z | |
|
249 | 261 | PROPS-END |
|
250 | 262 | |
|
251 | 263 | Node-path: branches/old/c |
@@ -254,16 +266,12 b' Node-action: add' | |||
|
254 | 266 | Node-copyfrom-rev: 3 |
|
255 | 267 | Node-copyfrom-path: trunk/b |
|
256 | 268 | Text-copy-source-md5: 3b5d5c3712955042212316173ccf37be |
|
257 | Prop-content-length: 34 | |
|
269 | Text-copy-source-sha1: 89e6c98d92887913cadf06b2adb97f26cde4849b | |
|
258 | 270 | Text-content-length: 4 |
|
259 | 271 | Text-content-md5: 33cb6785d50937d8d307ebb66d6259a7 |
|
260 | Content-length: 38 | |
|
272 | Text-content-sha1: 7a6478264aa11a0f4befef356c03e83f2b1f6eba | |
|
273 | Content-length: 4 | |
|
261 | 274 | |
|
262 | K 13 | |
|
263 | svn:mergeinfo | |
|
264 | V 0 | |
|
265 | ||
|
266 | PROPS-END | |
|
267 | 275 | b |
|
268 | 276 | c |
|
269 | 277 | |
@@ -287,7 +295,7 b' pmezard' | |||
|
287 | 295 | K 8 |
|
288 | 296 | svn:date |
|
289 | 297 | V 27 |
|
290 |
200 |
|
|
298 | 2009-06-21T12:39:03.065537Z | |
|
291 | 299 | PROPS-END |
|
292 | 300 | |
|
293 | 301 | Node-path: branches/old/b |
@@ -295,6 +303,7 b' Node-kind: file' | |||
|
295 | 303 | Node-action: change |
|
296 | 304 | Text-content-length: 6 |
|
297 | 305 | Text-content-md5: cdcfb41554e2d092c13f5e6839e63577 |
|
306 | Text-content-sha1: 17ac58cabedebea235d1b5605531d5b1559797e9 | |
|
298 | 307 | Content-length: 6 |
|
299 | 308 | |
|
300 | 309 | b |
@@ -317,7 +326,7 b' pmezard' | |||
|
317 | 326 | K 8 |
|
318 | 327 | svn:date |
|
319 | 328 | V 27 |
|
320 | 2008-12-06T12:48:04.150915Z | |
|
329 | 2009-06-21T12:39:06.070275Z | |
|
321 | 330 | PROPS-END |
|
322 | 331 | |
|
323 | 332 | Node-path: branches/old2 |
@@ -346,7 +355,7 b' pmezard' | |||
|
346 | 355 | K 8 |
|
347 | 356 | svn:date |
|
348 | 357 | V 27 |
|
349 | 2008-12-06T12:48:06.149560Z | |
|
358 | 2009-06-21T12:39:08.082539Z | |
|
350 | 359 | PROPS-END |
|
351 | 360 | |
|
352 | 361 | Node-path: branches/old |
@@ -375,7 +384,7 b' pmezard' | |||
|
375 | 384 | K 8 |
|
376 | 385 | svn:date |
|
377 | 386 | V 27 |
|
378 | 2008-12-06T12:48:07.268498Z | |
|
387 | 2009-06-21T12:39:09.073290Z | |
|
379 | 388 | PROPS-END |
|
380 | 389 | |
|
381 | 390 | Node-path: trunk/a |
@@ -383,6 +392,7 b' Node-kind: file' | |||
|
383 | 392 | Node-action: change |
|
384 | 393 | Text-content-length: 2 |
|
385 | 394 | Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3 |
|
395 | Text-content-sha1: 3f786850e387550fdab836ed7e6dc881de23001b | |
|
386 | 396 | Content-length: 2 |
|
387 | 397 | |
|
388 | 398 | a |
@@ -403,7 +413,7 b' pmezard' | |||
|
403 | 413 | K 8 |
|
404 | 414 | svn:date |
|
405 | 415 | V 27 |
|
406 | 2008-12-06T12:48:09.151702Z | |
|
416 | 2009-06-21T12:39:11.070264Z | |
|
407 | 417 | PROPS-END |
|
408 | 418 | |
|
409 | 419 | Node-path: branches/old3 |
@@ -1,6 +1,6 b'' | |||
|
1 | 1 | SVN-fs-dump-format-version: 2 |
|
2 | 2 | |
|
3 | UUID: 0682b859-320d-4a69-a164-a7cab5695072 | |
|
3 | UUID: 9de99ecc-876b-46e5-bc59-bff9b2b58b1e | |
|
4 | 4 | |
|
5 | 5 | Revision-number: 0 |
|
6 | 6 | Prop-content-length: 56 |
@@ -9,7 +9,7 b' Content-length: 56' | |||
|
9 | 9 | K 8 |
|
10 | 10 | svn:date |
|
11 | 11 | V 27 |
|
12 |
200 |
|
|
12 | 2009-06-21T14:32:26.678698Z | |
|
13 | 13 | PROPS-END |
|
14 | 14 | |
|
15 | 15 | Revision-number: 1 |
@@ -27,7 +27,7 b' pmezard' | |||
|
27 | 27 | K 8 |
|
28 | 28 | svn:date |
|
29 | 29 | V 27 |
|
30 | 2008-12-06T13:33:37.083146Z | |
|
30 | 2009-06-21T14:32:27.278689Z | |
|
31 | 31 | PROPS-END |
|
32 | 32 | |
|
33 | 33 | Node-path: trunk |
@@ -45,6 +45,7 b' Node-action: add' | |||
|
45 | 45 | Prop-content-length: 10 |
|
46 | 46 | Text-content-length: 2 |
|
47 | 47 | Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3 |
|
48 | Text-content-sha1: 3f786850e387550fdab836ed7e6dc881de23001b | |
|
48 | 49 | Content-length: 12 |
|
49 | 50 | |
|
50 | 51 | PROPS-END |
@@ -66,6 +67,7 b' Node-action: add' | |||
|
66 | 67 | Prop-content-length: 10 |
|
67 | 68 | Text-content-length: 2 |
|
68 | 69 | Text-content-md5: 3b5d5c3712955042212316173ccf37be |
|
70 | Text-content-sha1: 89e6c98d92887913cadf06b2adb97f26cde4849b | |
|
69 | 71 | Content-length: 12 |
|
70 | 72 | |
|
71 | 73 | PROPS-END |
@@ -78,6 +80,7 b' Node-action: add' | |||
|
78 | 80 | Prop-content-length: 10 |
|
79 | 81 | Text-content-length: 2 |
|
80 | 82 | Text-content-md5: 2cd6ee2c70b0bde53fbe6cac3c8b8bb1 |
|
83 | Text-content-sha1: 2b66fd261ee5c6cfc8de7fa466bab600bcfe4f69 | |
|
81 | 84 | Content-length: 12 |
|
82 | 85 | |
|
83 | 86 | PROPS-END |
@@ -99,6 +102,7 b' Node-action: add' | |||
|
99 | 102 | Prop-content-length: 10 |
|
100 | 103 | Text-content-length: 2 |
|
101 | 104 | Text-content-md5: e29311f6f1bf1af907f9ef9f44b8328b |
|
105 | Text-content-sha1: e983f374794de9c64e3d1c1de1d490c0756eeeff | |
|
102 | 106 | Content-length: 12 |
|
103 | 107 | |
|
104 | 108 | PROPS-END |
@@ -120,7 +124,7 b' pmezard' | |||
|
120 | 124 | K 8 |
|
121 | 125 | svn:date |
|
122 | 126 | V 27 |
|
123 | 2008-12-06T13:33:38.152773Z | |
|
127 | 2009-06-21T14:32:28.312955Z | |
|
124 | 128 | PROPS-END |
|
125 | 129 | |
|
126 | 130 | Node-path: trunk/a |
@@ -128,6 +132,7 b' Node-kind: file' | |||
|
128 | 132 | Node-action: change |
|
129 | 133 | Text-content-length: 4 |
|
130 | 134 | Text-content-md5: 0d227f1abf8c2932d342e9b99cc957eb |
|
135 | Text-content-sha1: d7c8127a20a396cff08af086a1c695b0636f0c29 | |
|
131 | 136 | Content-length: 4 |
|
132 | 137 | |
|
133 | 138 | a |
@@ -139,6 +144,7 b' Node-kind: file' | |||
|
139 | 144 | Node-action: change |
|
140 | 145 | Text-content-length: 4 |
|
141 | 146 | Text-content-md5: 63fad9092ad37713ebe26b3193f89c41 |
|
147 | Text-content-sha1: ccfb93b7bac6f1520f0adc0eebc2cafe9da80f42 | |
|
142 | 148 | Content-length: 4 |
|
143 | 149 | |
|
144 | 150 | c |
@@ -160,7 +166,7 b' pmezard' | |||
|
160 | 166 | K 8 |
|
161 | 167 | svn:date |
|
162 | 168 | V 27 |
|
163 |
200 |
|
|
169 | 2009-06-21T14:32:29.183467Z | |
|
164 | 170 | PROPS-END |
|
165 | 171 | |
|
166 | 172 | Node-path: subproject |
@@ -189,7 +195,7 b' pmezard' | |||
|
189 | 195 | K 8 |
|
190 | 196 | svn:date |
|
191 | 197 | V 27 |
|
192 | 2008-12-06T13:33:40.179944Z | |
|
198 | 2009-06-21T14:32:30.300975Z | |
|
193 | 199 | PROPS-END |
|
194 | 200 | |
|
195 | 201 | Node-path: subproject/trunk |
@@ -216,7 +222,7 b' pmezard' | |||
|
216 | 222 | K 8 |
|
217 | 223 | svn:date |
|
218 | 224 | V 27 |
|
219 | 2008-12-06T13:33:41.184505Z | |
|
225 | 2009-06-21T14:32:31.354398Z | |
|
220 | 226 | PROPS-END |
|
221 | 227 | |
|
222 | 228 | Node-path: subproject/branches |
@@ -243,7 +249,7 b' pmezard' | |||
|
243 | 249 | K 8 |
|
244 | 250 | svn:date |
|
245 | 251 | V 27 |
|
246 | 2008-12-06T13:33:42.153312Z | |
|
252 | 2009-06-21T14:32:32.121901Z | |
|
247 | 253 | PROPS-END |
|
248 | 254 | |
|
249 | 255 | Node-path: subproject/trunk/d1 |
@@ -272,7 +278,7 b' pmezard' | |||
|
272 | 278 | K 8 |
|
273 | 279 | svn:date |
|
274 | 280 | V 27 |
|
275 | 2008-12-06T13:33:42.206313Z | |
|
281 | 2009-06-21T14:32:32.317815Z | |
|
276 | 282 | PROPS-END |
|
277 | 283 | |
|
278 | 284 | Node-path: subproject/trunk/d2 |
@@ -301,7 +307,7 b' pmezard' | |||
|
301 | 307 | K 8 |
|
302 | 308 | svn:date |
|
303 | 309 | V 27 |
|
304 |
200 |
|
|
310 | 2009-06-21T14:32:33.418320Z | |
|
305 | 311 | PROPS-END |
|
306 | 312 | |
|
307 | 313 | Node-path: subproject/trunk/d1/b |
@@ -309,6 +315,7 b' Node-kind: file' | |||
|
309 | 315 | Node-action: change |
|
310 | 316 | Text-content-length: 4 |
|
311 | 317 | Text-content-md5: 06ac26ed8b614fc0b141e4542aa067c2 |
|
318 | Text-content-sha1: f6980469e74f7125178e88ec571e06fe6ce86e95 | |
|
312 | 319 | Content-length: 4 |
|
313 | 320 | |
|
314 | 321 | b |
@@ -334,7 +341,7 b' pmezard' | |||
|
334 | 341 | K 8 |
|
335 | 342 | svn:date |
|
336 | 343 | V 27 |
|
337 |
200 |
|
|
344 | 2009-06-21T14:32:34.126542Z | |
|
338 | 345 | PROPS-END |
|
339 | 346 | |
|
340 | 347 | Node-path: subproject/branches/d1 |
@@ -363,7 +370,7 b' pmezard' | |||
|
363 | 370 | K 8 |
|
364 | 371 | svn:date |
|
365 | 372 | V 27 |
|
366 | 2008-12-06T13:33:44.298011Z | |
|
373 | 2009-06-21T14:32:34.436015Z | |
|
367 | 374 | PROPS-END |
|
368 | 375 | |
|
369 | 376 | Node-path: subproject/trunk/d |
@@ -372,6 +379,7 b' Node-action: add' | |||
|
372 | 379 | Node-copyfrom-rev: 7 |
|
373 | 380 | Node-copyfrom-path: subproject/trunk/d2/d |
|
374 | 381 | Text-copy-source-md5: e29311f6f1bf1af907f9ef9f44b8328b |
|
382 | Text-copy-source-sha1: e983f374794de9c64e3d1c1de1d490c0756eeeff | |
|
375 | 383 | |
|
376 | 384 | |
|
377 | 385 | Revision-number: 11 |
@@ -389,7 +397,7 b' pmezard' | |||
|
389 | 397 | K 8 |
|
390 | 398 | svn:date |
|
391 | 399 | V 27 |
|
392 | 2008-12-06T13:33:44.349920Z | |
|
400 | 2009-06-21T14:32:34.803189Z | |
|
393 | 401 | PROPS-END |
|
394 | 402 | |
|
395 | 403 | Node-path: subproject/trunk/d2 |
@@ -399,3 +407,94 b' Node-copyfrom-rev: 7' | |||
|
399 | 407 | Node-copyfrom-path: subproject/trunk/d2 |
|
400 | 408 | |
|
401 | 409 | |
|
410 | Revision-number: 12 | |
|
411 | Prop-content-length: 107 | |
|
412 | Content-length: 107 | |
|
413 | ||
|
414 | K 7 | |
|
415 | svn:log | |
|
416 | V 6 | |
|
417 | add d3 | |
|
418 | K 10 | |
|
419 | svn:author | |
|
420 | V 7 | |
|
421 | pmezard | |
|
422 | K 8 | |
|
423 | svn:date | |
|
424 | V 27 | |
|
425 | 2009-06-21T14:32:36.531735Z | |
|
426 | PROPS-END | |
|
427 | ||
|
428 | Node-path: subproject/trunk/d3 | |
|
429 | Node-kind: dir | |
|
430 | Node-action: add | |
|
431 | Prop-content-length: 10 | |
|
432 | Content-length: 10 | |
|
433 | ||
|
434 | PROPS-END | |
|
435 | ||
|
436 | ||
|
437 | Node-path: subproject/trunk/d3/d31 | |
|
438 | Node-kind: dir | |
|
439 | Node-action: add | |
|
440 | Prop-content-length: 10 | |
|
441 | Content-length: 10 | |
|
442 | ||
|
443 | PROPS-END | |
|
444 | ||
|
445 | ||
|
446 | Node-path: subproject/trunk/d3/d31/e | |
|
447 | Node-kind: file | |
|
448 | Node-action: add | |
|
449 | Prop-content-length: 10 | |
|
450 | Text-content-length: 2 | |
|
451 | Text-content-md5: 9ffbf43126e33be52cd2bf7e01d627f9 | |
|
452 | Text-content-sha1: 094e3afb2fe8dfe82f63731cdcd3b999f4856cff | |
|
453 | Content-length: 12 | |
|
454 | ||
|
455 | PROPS-END | |
|
456 | e | |
|
457 | ||
|
458 | ||
|
459 | Node-path: subproject/trunk/d3/f | |
|
460 | Node-kind: file | |
|
461 | Node-action: add | |
|
462 | Prop-content-length: 10 | |
|
463 | Text-content-length: 2 | |
|
464 | Text-content-md5: 9a8ad92c50cae39aa2c5604fd0ab6d8c | |
|
465 | Text-content-sha1: a9fcd54b25e7e863d72cd47c08af46e61b74b561 | |
|
466 | Content-length: 12 | |
|
467 | ||
|
468 | PROPS-END | |
|
469 | f | |
|
470 | ||
|
471 | ||
|
472 | Revision-number: 13 | |
|
473 | Prop-content-length: 128 | |
|
474 | Content-length: 128 | |
|
475 | ||
|
476 | K 7 | |
|
477 | svn:log | |
|
478 | V 26 | |
|
479 | copy dir and remove subdir | |
|
480 | K 10 | |
|
481 | svn:author | |
|
482 | V 7 | |
|
483 | pmezard | |
|
484 | K 8 | |
|
485 | svn:date | |
|
486 | V 27 | |
|
487 | 2009-06-21T14:32:38.281829Z | |
|
488 | PROPS-END | |
|
489 | ||
|
490 | Node-path: subproject/trunk/d3/d31 | |
|
491 | Node-action: delete | |
|
492 | ||
|
493 | ||
|
494 | Node-path: subproject/trunk/d4 | |
|
495 | Node-kind: dir | |
|
496 | Node-action: add | |
|
497 | Node-copyfrom-rev: 12 | |
|
498 | Node-copyfrom-path: subproject/trunk/d3 | |
|
499 | ||
|
500 |
@@ -22,15 +22,19 b' cd project' | |||
|
22 | 22 | echo a > trunk/a |
|
23 | 23 | echo b > trunk/b |
|
24 | 24 | echo c > trunk/c |
|
25 | mkdir trunk/dir | |
|
26 | echo e > trunk/dir/e | |
|
25 | 27 | # Add a file within branches, used to confuse branch detection |
|
26 | 28 | echo d > branches/notinbranch |
|
27 | svn add trunk/a trunk/b trunk/c branches/notinbranch | |
|
29 | svn add trunk/a trunk/b trunk/c trunk/dir branches/notinbranch | |
|
28 | 30 | svn ci -m hello |
|
31 | svn up | |
|
29 | 32 | |
|
30 | 33 | # Branch to old |
|
31 | 34 | svn copy trunk branches/old |
|
32 | 35 | svn rm branches/old/c |
|
33 | svn ci -m "branch trunk, remove c" | |
|
36 | svn rm branches/old/dir | |
|
37 | svn ci -m "branch trunk, remove c and dir" | |
|
34 | 38 | svn up |
|
35 | 39 | |
|
36 | 40 | # Update trunk |
@@ -57,6 +57,17 b' else' | |||
|
57 | 57 | # Copy a directory from a past revision |
|
58 | 58 | svn copy -r 7 $svnurl/subproject/trunk/d2 $svnurl/subproject/trunk -m copydirfrompast |
|
59 | 59 | fi |
|
60 | ||
|
61 | # Copy a directory while removing a subdirectory | |
|
62 | svn up | |
|
63 | mkdir -p subproject/trunk/d3/d31 | |
|
64 | echo e > subproject/trunk/d3/d31/e | |
|
65 | echo f > subproject/trunk/d3/f | |
|
66 | svn add subproject/trunk/d3 | |
|
67 | svn ci -m "add d3" | |
|
68 | svn copy subproject/trunk/d3 subproject/trunk/d4 | |
|
69 | svn rm subproject/trunk/d3/d31 | |
|
70 | svn ci -m "copy dir and remove subdir" | |
|
60 | 71 | cd .. |
|
61 | 72 | |
|
62 | 73 | svnadmin dump svn-repo > ../move.svndump No newline at end of file |
@@ -5,7 +5,7 b' sorting...' | |||
|
5 | 5 | converting... |
|
6 | 6 | 10 init projA |
|
7 | 7 | 9 hello |
|
8 | 8 branch trunk, remove c | |
|
8 | 8 branch trunk, remove c and dir | |
|
9 | 9 | 7 change a |
|
10 | 10 | 6 change b |
|
11 | 11 | 5 move and update c |
@@ -37,9 +37,9 b' o branch=newbranch 11 branch trunk@1 in' | |||
|
37 | 37 | | | | |
|
38 | 38 | | o | branch= 3 change a files: a |
|
39 | 39 | | | | |
|
40 |
|
|
|
41 | | | | |
|
42 | | o branch= 1 hello files: a b c | |
|
40 | | | o branch=old 2 branch trunk, remove c and dir files: c | |
|
41 | | |/ | |
|
42 | | o branch= 1 hello files: a b c dir/e | |
|
43 | 43 | |/ |
|
44 | 44 | o branch= 0 init projA files: |
|
45 | 45 |
@@ -3,16 +3,22 b' initializing destination A-hg repository' | |||
|
3 | 3 | scanning source... |
|
4 | 4 | sorting... |
|
5 | 5 | converting... |
|
6 |
|
|
|
7 |
|
|
|
8 |
|
|
|
9 |
|
|
|
10 |
|
|
|
11 |
|
|
|
12 |
|
|
|
13 |
|
|
|
14 |
|
|
|
15 |
|
|
|
6 | 11 createtrunk | |
|
7 | 10 moved1 | |
|
8 | 9 moved1 | |
|
9 | 8 moved2 | |
|
10 | 7 changeb and rm d2 | |
|
11 | 6 changeb and rm d2 | |
|
12 | 5 moved1again | |
|
13 | 4 moved1again | |
|
14 | 3 copyfilefrompast | |
|
15 | 2 copydirfrompast | |
|
16 | 1 add d3 | |
|
17 | 0 copy dir and remove subdir | |
|
18 | o 11 copy dir and remove subdir files: d3/d31/e d4/d31/e d4/f | |
|
19 | | | |
|
20 | o 10 add d3 files: d3/d31/e d3/f | |
|
21 | | | |
|
16 | 22 | o 9 copydirfrompast files: d2/d |
|
17 | 23 | | |
|
18 | 24 | o 8 copyfilefrompast files: d |
@@ -33,5 +39,5 b' o | 2 moved1 files: d1/b d1/c' | |||
|
33 | 39 | | |
|
34 | 40 | o 0 createtrunk files: |
|
35 | 41 | |
|
36 |
default |
|
|
42 | default 11: | |
|
37 | 43 | d1 6: |
@@ -1,5 +1,5 b'' | |||
|
1 | 1 | % help |
|
2 |
keyword extension - keyword |
|
|
2 | keyword extension - expand keywords in tracked files | |
|
3 | 3 | |
|
4 | 4 | This extension expands RCS/CVS-like or self-customized $Keywords$ in |
|
5 | 5 | tracked text files selected by your configuration. |
@@ -55,9 +55,9 b' list of commands:' | |||
|
55 | 55 | |
|
56 | 56 | enabled extensions: |
|
57 | 57 | |
|
58 |
keyword keyword |
|
|
59 | mq patch management and development | |
|
60 |
notify |
|
|
58 | keyword expand keywords in tracked files | |
|
59 | mq work with a stack of patches | |
|
60 | notify send e-mail notifications for commits/pushes | |
|
61 | 61 | |
|
62 | 62 | use "hg -v help keyword" to show aliases and global options |
|
63 | 63 | % hg kwdemo |
@@ -1,5 +1,5 b'' | |||
|
1 | 1 | % help |
|
2 | mq extension - patch management and development | |
|
2 | mq extension - work with a stack of patches | |
|
3 | 3 | |
|
4 | 4 | This extension lets you work with a stack of patches in a Mercurial |
|
5 | 5 | repository. It manages two stacks of patches - all known patches, and |
@@ -53,7 +53,7 b' list of commands:' | |||
|
53 | 53 | |
|
54 | 54 | enabled extensions: |
|
55 | 55 | |
|
56 | mq patch management and development | |
|
56 | mq work with a stack of patches | |
|
57 | 57 | |
|
58 | 58 | use "hg -v help mq" to show aliases and global options |
|
59 | 59 | adding a |
General Comments 0
You need to be logged in to leave comments.
Login now