Show More
The requested changes are too big and content was truncated. Show full diff
@@ -0,0 +1,51 b'' | |||||
|
1 | # An example WSGI (use with mod_wsgi) script to export multiple hgweb repos | |||
|
2 | ||||
|
3 | # adjust python path if not a system-wide install: | |||
|
4 | #import sys | |||
|
5 | #sys.path.insert(0, "/path/to/python/lib") | |||
|
6 | ||||
|
7 | # enable demandloading to reduce startup time | |||
|
8 | from mercurial import demandimport; demandimport.enable() | |||
|
9 | from mercurial.hgweb.hgwebdir_mod import hgwebdir | |||
|
10 | ||||
|
11 | # If you'd like to serve pages with UTF-8 instead of your default | |||
|
12 | # locale charset, you can do so by uncommenting the following lines. | |||
|
13 | # Note that this will cause your .hgrc files to be interpreted in | |||
|
14 | # UTF-8 and all your repo files to be displayed using UTF-8. | |||
|
15 | # | |||
|
16 | #import os | |||
|
17 | #os.environ["HGENCODING"] = "UTF-8" | |||
|
18 | ||||
|
19 | # The config file looks like this. You can have paths to individual | |||
|
20 | # repos, collections of repos in a directory tree, or both. | |||
|
21 | # | |||
|
22 | # [paths] | |||
|
23 | # virtual/path1 = /real/path1 | |||
|
24 | # virtual/path2 = /real/path2 | |||
|
25 | # virtual/root = /real/root/* | |||
|
26 | # / = /real/root2/* | |||
|
27 | # | |||
|
28 | # paths example: | |||
|
29 | # | |||
|
30 | # * First two lines mount one repository into one virtual path, like | |||
|
31 | # '/real/path1' into 'virtual/path1'. | |||
|
32 | # | |||
|
33 | # * The third entry tells every mercurial repository found in | |||
|
34 | # '/real/root', recursively, should be mounted in 'virtual/root'. This | |||
|
35 | # format is preferred over the [collections] one, using absolute paths | |||
|
36 | # as configuration keys is not supported on every platform (including | |||
|
37 | # Windows). | |||
|
38 | # | |||
|
39 | # * The last entry is a special case mounting all repositories in | |||
|
40 | # '/real/root2' in the root of the virtual directory. | |||
|
41 | # | |||
|
42 | # collections example: say directory tree /foo contains repos /foo/bar, | |||
|
43 | # /foo/quux/baz. Give this config section: | |||
|
44 | # [collections] | |||
|
45 | # /foo = /foo | |||
|
46 | # Then repos will list as bar and quux/baz. | |||
|
47 | # | |||
|
48 | # Alternatively you can pass a list of ('virtual/path', '/real/path') tuples | |||
|
49 | # or use a dictionary with entries like 'virtual/path': '/real/path' | |||
|
50 | ||||
|
51 | application = hgwebdir('hgweb.config') |
This diff has been collapsed as it changes many lines, (8827 lines changed) Show them Hide them | |||||
@@ -0,0 +1,8827 b'' | |||||
|
1 | # Danish translations for Mercurial | |||
|
2 | # Danske oversættelser for Mercurial | |||
|
3 | # Copyright (C) 2009 Matt Mackall and others | |||
|
4 | # | |||
|
5 | # Translation dictionary: | |||
|
6 | # | |||
|
7 | # changeset ændring | |||
|
8 | # merge sammenføje | |||
|
9 | # patch rettelse | |||
|
10 | # repo(sitory) arkiv | |||
|
11 | # revision revision | |||
|
12 | # tag mærkat | |||
|
13 | # | |||
|
14 | msgid "" | |||
|
15 | msgstr "" | |||
|
16 | "Project-Id-Version: Mercurial\n" | |||
|
17 | "Report-Msgid-Bugs-To: \n" | |||
|
18 | "POT-Creation-Date: 2009-02-22 22:02+0100\n" | |||
|
19 | "PO-Revision-Date: 2009-02-22 22:05+0100\n" | |||
|
20 | "Last-Translator: <mg@daimi.au.dk>\n" | |||
|
21 | "Language-Team: Danish\n" | |||
|
22 | "MIME-Version: 1.0\n" | |||
|
23 | "Content-Type: text/plain; charset=UTF-8\n" | |||
|
24 | "Content-Transfer-Encoding: 8bit\n" | |||
|
25 | "Generated-By: pygettext.py 1.5\n" | |||
|
26 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" | |||
|
27 | ||||
|
28 | #, python-format | |||
|
29 | msgid " (default: %s)" | |||
|
30 | msgstr " (standard: %s)" | |||
|
31 | ||||
|
32 | msgid "OPTIONS" | |||
|
33 | msgstr "" | |||
|
34 | ||||
|
35 | msgid "COMMANDS" | |||
|
36 | msgstr "KOMMANDOER" | |||
|
37 | ||||
|
38 | msgid " options:\n" | |||
|
39 | msgstr "" | |||
|
40 | ||||
|
41 | #, python-format | |||
|
42 | msgid "" | |||
|
43 | " aliases: %s\n" | |||
|
44 | "\n" | |||
|
45 | msgstr "" | |||
|
46 | " aliaser %s:\n" | |||
|
47 | "\n" | |||
|
48 | ||||
|
49 | msgid "return tuple of (match function, list enabled)." | |||
|
50 | msgstr "" | |||
|
51 | ||||
|
52 | #, python-format | |||
|
53 | msgid "acl: %s not enabled\n" | |||
|
54 | msgstr "acl: %s er ikke slået til\n" | |||
|
55 | ||||
|
56 | #, python-format | |||
|
57 | msgid "acl: %s enabled, %d entries for user %s\n" | |||
|
58 | msgstr "acl: %s slået til, %d indgange for bruger %s\n" | |||
|
59 | ||||
|
60 | #, python-format | |||
|
61 | msgid "config error - hook type \"%s\" cannot stop incoming changesets" | |||
|
62 | msgstr "" | |||
|
63 | "konfigurationsfejl - hook type \"%s\" kan ikke stoppe indgående ændringer" | |||
|
64 | ||||
|
65 | #, python-format | |||
|
66 | msgid "acl: changes have source \"%s\" - skipping\n" | |||
|
67 | msgstr "acl: ændringer har kilde \"%s\" - springer over\n" | |||
|
68 | ||||
|
69 | #, python-format | |||
|
70 | msgid "acl: user %s denied on %s\n" | |||
|
71 | msgstr "acl: bruger %s nægtet adgang til %s\n" | |||
|
72 | ||||
|
73 | #, python-format | |||
|
74 | msgid "acl: access denied for changeset %s" | |||
|
75 | msgstr "acl: adgang nægtet til ændring %s" | |||
|
76 | ||||
|
77 | #, python-format | |||
|
78 | msgid "acl: user %s not allowed on %s\n" | |||
|
79 | msgstr "acl: bruger %s ikke tilladt på %s\n" | |||
|
80 | ||||
|
81 | #, python-format | |||
|
82 | msgid "acl: allowing changeset %s\n" | |||
|
83 | msgstr "acl: tillader ændring %s\n" | |||
|
84 | ||||
|
85 | msgid "" | |||
|
86 | "allow user-defined command aliases\n" | |||
|
87 | "\n" | |||
|
88 | "To use, create entries in your hgrc of the form\n" | |||
|
89 | "\n" | |||
|
90 | "[alias]\n" | |||
|
91 | "mycmd = cmd --args\n" | |||
|
92 | msgstr "" | |||
|
93 | ||||
|
94 | msgid "" | |||
|
95 | "defer command lookup until needed, so that extensions loaded\n" | |||
|
96 | " after alias can be aliased" | |||
|
97 | msgstr "" | |||
|
98 | ||||
|
99 | #, python-format | |||
|
100 | msgid "*** [alias] %s: command %s is unknown" | |||
|
101 | msgstr "" | |||
|
102 | ||||
|
103 | #, python-format | |||
|
104 | msgid "*** [alias] %s: command %s is ambiguous" | |||
|
105 | msgstr "" | |||
|
106 | ||||
|
107 | #, python-format | |||
|
108 | msgid "*** [alias] %s: circular dependency on %s" | |||
|
109 | msgstr "" | |||
|
110 | ||||
|
111 | #, python-format | |||
|
112 | msgid "*** [alias] %s: no definition\n" | |||
|
113 | msgstr "" | |||
|
114 | ||||
|
115 | msgid "" | |||
|
116 | "mercurial bookmarks\n" | |||
|
117 | "\n" | |||
|
118 | "Mercurial bookmarks are local moveable pointers to changesets. Every\n" | |||
|
119 | "bookmark points to a changeset identified by its hash. If you commit a\n" | |||
|
120 | "changeset that is based on a changeset that has a bookmark on it, the\n" | |||
|
121 | "bookmark is forwarded to the new changeset.\n" | |||
|
122 | "\n" | |||
|
123 | "It is possible to use bookmark names in every revision lookup (e.g. hg\n" | |||
|
124 | "merge, hg update).\n" | |||
|
125 | "\n" | |||
|
126 | "The bookmark extension offers the possiblity to have a more git-like " | |||
|
127 | "experience\n" | |||
|
128 | "by adding the following configuration option to your .hgrc:\n" | |||
|
129 | "\n" | |||
|
130 | "[bookmarks]\n" | |||
|
131 | "track.current = True\n" | |||
|
132 | "\n" | |||
|
133 | "This will cause bookmarks to track the bookmark that you are currently on, " | |||
|
134 | "and\n" | |||
|
135 | "just updates it. This is similar to git's approach of branching.\n" | |||
|
136 | msgstr "" | |||
|
137 | ||||
|
138 | msgid "" | |||
|
139 | "Parse .hg/bookmarks file and return a dictionary\n" | |||
|
140 | "\n" | |||
|
141 | " Bookmarks are stored as {HASH}\\s{NAME}\\n (localtags format) values\n" | |||
|
142 | " in the .hg/bookmarks file. They are read by the parse() method and\n" | |||
|
143 | " returned as a dictionary with name => hash values.\n" | |||
|
144 | "\n" | |||
|
145 | " The parsed dictionary is cached until a write() operation is done.\n" | |||
|
146 | " " | |||
|
147 | msgstr "" | |||
|
148 | ||||
|
149 | msgid "" | |||
|
150 | "Write bookmarks\n" | |||
|
151 | "\n" | |||
|
152 | " Write the given bookmark => hash dictionary to the .hg/bookmarks file\n" | |||
|
153 | " in a format equal to those of localtags.\n" | |||
|
154 | "\n" | |||
|
155 | " We also store a backup of the previous state in undo.bookmarks that\n" | |||
|
156 | " can be copied back on rollback.\n" | |||
|
157 | " " | |||
|
158 | msgstr "" | |||
|
159 | ||||
|
160 | msgid "" | |||
|
161 | "Get the current bookmark\n" | |||
|
162 | "\n" | |||
|
163 | " If we use gittishsh branches we have a current bookmark that\n" | |||
|
164 | " we are on. This function returns the name of the bookmark. It\n" | |||
|
165 | " is stored in .hg/bookmarks.current\n" | |||
|
166 | " " | |||
|
167 | msgstr "" | |||
|
168 | ||||
|
169 | msgid "" | |||
|
170 | "Set the name of the bookmark that we are currently on\n" | |||
|
171 | "\n" | |||
|
172 | " Set the name of the bookmark that we are on (hg update <bookmark>).\n" | |||
|
173 | " The name is recoreded in .hg/bookmarks.current\n" | |||
|
174 | " " | |||
|
175 | msgstr "" | |||
|
176 | ||||
|
177 | msgid "" | |||
|
178 | "mercurial bookmarks\n" | |||
|
179 | "\n" | |||
|
180 | " Bookmarks are pointers to certain commits that move when\n" | |||
|
181 | " commiting. Bookmarks are local. They can be renamed, copied and\n" | |||
|
182 | " deleted. It is possible to use bookmark names in 'hg merge' and 'hg\n" | |||
|
183 | " update' to update to a given bookmark.\n" | |||
|
184 | "\n" | |||
|
185 | " You can use 'hg bookmark NAME' to set a bookmark on the current\n" | |||
|
186 | " tip with the given name. If you specify a revision using -r REV\n" | |||
|
187 | " (where REV may be an existing bookmark), the bookmark is set to\n" | |||
|
188 | " that revision.\n" | |||
|
189 | " " | |||
|
190 | msgstr "" | |||
|
191 | ||||
|
192 | msgid "a bookmark of this name does not exist" | |||
|
193 | msgstr "" | |||
|
194 | ||||
|
195 | msgid "a bookmark of the same name already exists" | |||
|
196 | msgstr "" | |||
|
197 | ||||
|
198 | msgid "new bookmark name required" | |||
|
199 | msgstr "" | |||
|
200 | ||||
|
201 | msgid "bookmark name required" | |||
|
202 | msgstr "" | |||
|
203 | ||||
|
204 | msgid "bookmark name cannot contain newlines" | |||
|
205 | msgstr "bogmærkenavn kan ikke indeholde linieskift" | |||
|
206 | ||||
|
207 | msgid "a bookmark cannot have the name of an existing branch" | |||
|
208 | msgstr "" | |||
|
209 | ||||
|
210 | msgid "" | |||
|
211 | "Strip bookmarks if revisions are stripped using\n" | |||
|
212 | " the mercurial.strip method. This usually happens during\n" | |||
|
213 | " qpush and qpop" | |||
|
214 | msgstr "" | |||
|
215 | ||||
|
216 | msgid "" | |||
|
217 | "Add a revision to the repository and\n" | |||
|
218 | " move the bookmark" | |||
|
219 | msgstr "" | |||
|
220 | ||||
|
221 | msgid "Merge bookmarks with normal tags" | |||
|
222 | msgstr "" | |||
|
223 | ||||
|
224 | msgid "" | |||
|
225 | "Set the current bookmark\n" | |||
|
226 | "\n" | |||
|
227 | " If the user updates to a bookmark we update the .hg/bookmarks.current\n" | |||
|
228 | " file.\n" | |||
|
229 | " " | |||
|
230 | msgstr "" | |||
|
231 | ||||
|
232 | msgid "force" | |||
|
233 | msgstr "" | |||
|
234 | ||||
|
235 | msgid "revision" | |||
|
236 | msgstr "" | |||
|
237 | ||||
|
238 | msgid "delete a given bookmark" | |||
|
239 | msgstr "" | |||
|
240 | ||||
|
241 | msgid "rename a given bookmark" | |||
|
242 | msgstr "" | |||
|
243 | ||||
|
244 | msgid "hg bookmarks [-d] [-m NAME] [-r NAME] [NAME]" | |||
|
245 | msgstr "" | |||
|
246 | ||||
|
247 | msgid "" | |||
|
248 | "Bugzilla integration\n" | |||
|
249 | "\n" | |||
|
250 | "This hook extension adds comments on bugs in Bugzilla when changesets\n" | |||
|
251 | "that refer to bugs by Bugzilla ID are seen. The hook does not change bug\n" | |||
|
252 | "status.\n" | |||
|
253 | "\n" | |||
|
254 | "The hook updates the Bugzilla database directly. Only Bugzilla " | |||
|
255 | "installations\n" | |||
|
256 | "using MySQL are supported.\n" | |||
|
257 | "\n" | |||
|
258 | "The hook relies on a Bugzilla script to send bug change notification " | |||
|
259 | "emails.\n" | |||
|
260 | "That script changes between Bugzilla versions; the 'processmail' script " | |||
|
261 | "used\n" | |||
|
262 | "prior to 2.18 is replaced in 2.18 and subsequent versions by\n" | |||
|
263 | "'config/sendbugmail.pl'. Note that these will be run by Mercurial as the " | |||
|
264 | "user\n" | |||
|
265 | "pushing the change; you will need to ensure the Bugzilla install file\n" | |||
|
266 | "permissions are set appropriately.\n" | |||
|
267 | "\n" | |||
|
268 | "Configuring the extension:\n" | |||
|
269 | "\n" | |||
|
270 | " [bugzilla]\n" | |||
|
271 | " host Hostname of the MySQL server holding the Bugzilla database.\n" | |||
|
272 | " db Name of the Bugzilla database in MySQL. Default 'bugs'.\n" | |||
|
273 | " user Username to use to access MySQL server. Default 'bugs'.\n" | |||
|
274 | " password Password to use to access MySQL server.\n" | |||
|
275 | " timeout Database connection timeout (seconds). Default 5.\n" | |||
|
276 | " version Bugzilla version. Specify '3.0' for Bugzilla versions 3.0 " | |||
|
277 | "and\n" | |||
|
278 | " later, '2.18' for Bugzilla versions from 2.18 and '2.16' for\n" | |||
|
279 | " versions prior to 2.18.\n" | |||
|
280 | " bzuser Fallback Bugzilla user name to record comments with, if\n" | |||
|
281 | " changeset committer cannot be found as a Bugzilla user.\n" | |||
|
282 | " bzdir Bugzilla install directory. Used by default notify.\n" | |||
|
283 | " Default '/var/www/html/bugzilla'.\n" | |||
|
284 | " notify The command to run to get Bugzilla to send bug change\n" | |||
|
285 | " notification emails. Substitutes from a map with 3 keys,\n" | |||
|
286 | " 'bzdir', 'id' (bug id) and 'user' (committer bugzilla " | |||
|
287 | "email).\n" | |||
|
288 | " Default depends on version; from 2.18 it is\n" | |||
|
289 | " \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %" | |||
|
290 | "(user)s\".\n" | |||
|
291 | " regexp Regular expression to match bug IDs in changeset commit " | |||
|
292 | "message.\n" | |||
|
293 | " Must contain one \"()\" group. The default expression " | |||
|
294 | "matches\n" | |||
|
295 | " 'Bug 1234', 'Bug no. 1234', 'Bug number 1234',\n" | |||
|
296 | " 'Bugs 1234,5678', 'Bug 1234 and 5678' and variations " | |||
|
297 | "thereof.\n" | |||
|
298 | " Matching is case insensitive.\n" | |||
|
299 | " style The style file to use when formatting comments.\n" | |||
|
300 | " template Template to use when formatting comments. Overrides\n" | |||
|
301 | " style if specified. In addition to the usual Mercurial\n" | |||
|
302 | " keywords, the extension specifies:\n" | |||
|
303 | " {bug} The Bugzilla bug ID.\n" | |||
|
304 | " {root} The full pathname of the Mercurial " | |||
|
305 | "repository.\n" | |||
|
306 | " {webroot} Stripped pathname of the Mercurial " | |||
|
307 | "repository.\n" | |||
|
308 | " {hgweb} Base URL for browsing Mercurial " | |||
|
309 | "repositories.\n" | |||
|
310 | " Default 'changeset {node|short} in repo {root} refers '\n" | |||
|
311 | " 'to bug {bug}.\\ndetails:\\n\\t{desc|tabindent}'\n" | |||
|
312 | " strip The number of slashes to strip from the front of {root}\n" | |||
|
313 | " to produce {webroot}. Default 0.\n" | |||
|
314 | " usermap Path of file containing Mercurial committer ID to Bugzilla " | |||
|
315 | "user\n" | |||
|
316 | " ID mappings. If specified, the file should contain one " | |||
|
317 | "mapping\n" | |||
|
318 | " per line, \"committer\"=\"Bugzilla user\". See also the\n" | |||
|
319 | " [usermap] section.\n" | |||
|
320 | "\n" | |||
|
321 | " [usermap]\n" | |||
|
322 | " Any entries in this section specify mappings of Mercurial committer ID\n" | |||
|
323 | " to Bugzilla user ID. See also [bugzilla].usermap.\n" | |||
|
324 | " \"committer\"=\"Bugzilla user\"\n" | |||
|
325 | "\n" | |||
|
326 | " [web]\n" | |||
|
327 | " baseurl Base URL for browsing Mercurial repositories. Reference from\n" | |||
|
328 | " templates as {hgweb}.\n" | |||
|
329 | "\n" | |||
|
330 | "Activating the extension:\n" | |||
|
331 | "\n" | |||
|
332 | " [extensions]\n" | |||
|
333 | " hgext.bugzilla =\n" | |||
|
334 | "\n" | |||
|
335 | " [hooks]\n" | |||
|
336 | " # run bugzilla hook on every change pulled or pushed in here\n" | |||
|
337 | " incoming.bugzilla = python:hgext.bugzilla.hook\n" | |||
|
338 | "\n" | |||
|
339 | "Example configuration:\n" | |||
|
340 | "\n" | |||
|
341 | "This example configuration is for a collection of Mercurial repositories\n" | |||
|
342 | "in /var/local/hg/repos/ used with a local Bugzilla 3.2 installation in\n" | |||
|
343 | "/opt/bugzilla-3.2.\n" | |||
|
344 | "\n" | |||
|
345 | " [bugzilla]\n" | |||
|
346 | " host=localhost\n" | |||
|
347 | " password=XYZZY\n" | |||
|
348 | " version=3.0\n" | |||
|
349 | " bzuser=unknown@domain.com\n" | |||
|
350 | " bzdir=/opt/bugzilla-3.2\n" | |||
|
351 | " template=Changeset {node|short} in {root|basename}.\\n{hgweb}/{webroot}/" | |||
|
352 | "rev/{node|short}\\n\\n{desc}\\n\n" | |||
|
353 | " strip=5\n" | |||
|
354 | "\n" | |||
|
355 | " [web]\n" | |||
|
356 | " baseurl=http://dev.domain.com/hg\n" | |||
|
357 | "\n" | |||
|
358 | " [usermap]\n" | |||
|
359 | " user@emaildomain.com=user.name@bugzilladomain.com\n" | |||
|
360 | "\n" | |||
|
361 | "Commits add a comment to the Bugzilla bug record of the form:\n" | |||
|
362 | "\n" | |||
|
363 | " Changeset 3b16791d6642 in repository-name.\n" | |||
|
364 | " http://dev.domain.com/hg/repository-name/rev/3b16791d6642\n" | |||
|
365 | "\n" | |||
|
366 | " Changeset commit comment. Bug 1234.\n" | |||
|
367 | msgstr "" | |||
|
368 | ||||
|
369 | msgid "support for bugzilla version 2.16." | |||
|
370 | msgstr "" | |||
|
371 | ||||
|
372 | #, python-format | |||
|
373 | msgid "connecting to %s:%s as %s, password %s\n" | |||
|
374 | msgstr "forbinder til %s:%s som %s, kodeord %s\n" | |||
|
375 | ||||
|
376 | msgid "run a query." | |||
|
377 | msgstr "" | |||
|
378 | ||||
|
379 | #, python-format | |||
|
380 | msgid "query: %s %s\n" | |||
|
381 | msgstr "forespørgsel: %s %s\n" | |||
|
382 | ||||
|
383 | #, python-format | |||
|
384 | msgid "failed query: %s %s\n" | |||
|
385 | msgstr "fejlet forespørgsel: %s %s\n" | |||
|
386 | ||||
|
387 | msgid "get identity of longdesc field" | |||
|
388 | msgstr "" | |||
|
389 | ||||
|
390 | msgid "unknown database schema" | |||
|
391 | msgstr "ukendt databaseskema" | |||
|
392 | ||||
|
393 | msgid "filter not-existing bug ids from list." | |||
|
394 | msgstr "" | |||
|
395 | ||||
|
396 | msgid "filter bug ids from list that already refer to this changeset." | |||
|
397 | msgstr "" | |||
|
398 | ||||
|
399 | #, python-format | |||
|
400 | msgid "bug %d already knows about changeset %s\n" | |||
|
401 | msgstr "fejl %d kender allerede til ændring %s\n" | |||
|
402 | ||||
|
403 | msgid "tell bugzilla to send mail." | |||
|
404 | msgstr "" | |||
|
405 | ||||
|
406 | msgid "telling bugzilla to send mail:\n" | |||
|
407 | msgstr "beder bugzilla om at sende mail:\n" | |||
|
408 | ||||
|
409 | #, python-format | |||
|
410 | msgid " bug %s\n" | |||
|
411 | msgstr " fejl %s\n" | |||
|
412 | ||||
|
413 | #, python-format | |||
|
414 | msgid "running notify command %s\n" | |||
|
415 | msgstr "kører notificeringskommando %s\n" | |||
|
416 | ||||
|
417 | #, python-format | |||
|
418 | msgid "bugzilla notify command %s" | |||
|
419 | msgstr "" | |||
|
420 | ||||
|
421 | msgid "done\n" | |||
|
422 | msgstr "færdig\n" | |||
|
423 | ||||
|
424 | msgid "look up numeric bugzilla user id." | |||
|
425 | msgstr "" | |||
|
426 | ||||
|
427 | #, python-format | |||
|
428 | msgid "looking up user %s\n" | |||
|
429 | msgstr "slår bruger %s op\n" | |||
|
430 | ||||
|
431 | msgid "map name of committer to bugzilla user name." | |||
|
432 | msgstr "" | |||
|
433 | ||||
|
434 | msgid "" | |||
|
435 | "see if committer is a registered bugzilla user. Return\n" | |||
|
436 | " bugzilla username and userid if so. If not, return default\n" | |||
|
437 | " bugzilla username and userid." | |||
|
438 | msgstr "" | |||
|
439 | ||||
|
440 | #, python-format | |||
|
441 | msgid "cannot find bugzilla user id for %s" | |||
|
442 | msgstr "" | |||
|
443 | ||||
|
444 | #, python-format | |||
|
445 | msgid "cannot find bugzilla user id for %s or %s" | |||
|
446 | msgstr "" | |||
|
447 | ||||
|
448 | msgid "" | |||
|
449 | "add comment to bug. try adding comment as committer of\n" | |||
|
450 | " changeset, otherwise as default bugzilla user." | |||
|
451 | msgstr "" | |||
|
452 | ||||
|
453 | msgid "support for bugzilla 2.18 series." | |||
|
454 | msgstr "" | |||
|
455 | ||||
|
456 | msgid "support for bugzilla 3.0 series." | |||
|
457 | msgstr "" | |||
|
458 | ||||
|
459 | msgid "" | |||
|
460 | "return object that knows how to talk to bugzilla version in\n" | |||
|
461 | " use." | |||
|
462 | msgstr "" | |||
|
463 | ||||
|
464 | #, python-format | |||
|
465 | msgid "bugzilla version %s not supported" | |||
|
466 | msgstr "" | |||
|
467 | ||||
|
468 | msgid "" | |||
|
469 | "find valid bug ids that are referred to in changeset\n" | |||
|
470 | " comments and that do not already have references to this\n" | |||
|
471 | " changeset." | |||
|
472 | msgstr "" | |||
|
473 | ||||
|
474 | msgid "update bugzilla bug with reference to changeset." | |||
|
475 | msgstr "" | |||
|
476 | ||||
|
477 | msgid "" | |||
|
478 | "strip leading prefix of repo root and turn into\n" | |||
|
479 | " url-safe path." | |||
|
480 | msgstr "" | |||
|
481 | ||||
|
482 | msgid "" | |||
|
483 | "changeset {node|short} in repo {root} refers to bug {bug}.\n" | |||
|
484 | "details:\n" | |||
|
485 | "\t{desc|tabindent}" | |||
|
486 | msgstr "" | |||
|
487 | ||||
|
488 | msgid "" | |||
|
489 | "add comment to bugzilla for each changeset that refers to a\n" | |||
|
490 | " bugzilla bug id. only add a comment once per bug, so same change\n" | |||
|
491 | " seen multiple times does not fill bug with duplicate data." | |||
|
492 | msgstr "" | |||
|
493 | ||||
|
494 | #, python-format | |||
|
495 | msgid "python mysql support not available: %s" | |||
|
496 | msgstr "" | |||
|
497 | ||||
|
498 | #, python-format | |||
|
499 | msgid "hook type %s does not pass a changeset id" | |||
|
500 | msgstr "" | |||
|
501 | ||||
|
502 | #, python-format | |||
|
503 | msgid "database error: %s" | |||
|
504 | msgstr "" | |||
|
505 | ||||
|
506 | msgid "" | |||
|
507 | "show the children of the given or working dir revision\n" | |||
|
508 | "\n" | |||
|
509 | " Print the children of the working directory's revisions.\n" | |||
|
510 | " If a revision is given via --rev, the children of that revision\n" | |||
|
511 | " will be printed. If a file argument is given, revision in\n" | |||
|
512 | " which the file was last changed (after the working directory\n" | |||
|
513 | " revision or the argument to --rev if given) is printed.\n" | |||
|
514 | " " | |||
|
515 | msgstr "" | |||
|
516 | ||||
|
517 | msgid "show children of the specified rev" | |||
|
518 | msgstr "" | |||
|
519 | ||||
|
520 | msgid "hg children [-r REV] [FILE]" | |||
|
521 | msgstr "" | |||
|
522 | ||||
|
523 | msgid "command to show certain statistics about revision history" | |||
|
524 | msgstr "" | |||
|
525 | ||||
|
526 | msgid "Calculate stats" | |||
|
527 | msgstr "" | |||
|
528 | ||||
|
529 | #, python-format | |||
|
530 | msgid "Revision %d is a merge, ignoring...\n" | |||
|
531 | msgstr "" | |||
|
532 | ||||
|
533 | #, python-format | |||
|
534 | msgid "\rgenerating stats: %d%%" | |||
|
535 | msgstr "" | |||
|
536 | ||||
|
537 | msgid "" | |||
|
538 | "graph count of revisions grouped by template\n" | |||
|
539 | "\n" | |||
|
540 | " Will graph count of changed lines or revisions grouped by template or\n" | |||
|
541 | " alternatively by date, if dateformat is used. In this case it will " | |||
|
542 | "override\n" | |||
|
543 | " template.\n" | |||
|
544 | "\n" | |||
|
545 | " By default statistics are counted for number of changed lines.\n" | |||
|
546 | "\n" | |||
|
547 | " Examples:\n" | |||
|
548 | "\n" | |||
|
549 | " # display count of changed lines for every committer\n" | |||
|
550 | " hg churn -t '{author|email}'\n" | |||
|
551 | "\n" | |||
|
552 | " # display daily activity graph\n" | |||
|
553 | " hg churn -f '%H' -s -c\n" | |||
|
554 | "\n" | |||
|
555 | " # display activity of developers by month\n" | |||
|
556 | " hg churn -f '%Y-%m' -s -c\n" | |||
|
557 | "\n" | |||
|
558 | " # display count of lines changed in every year\n" | |||
|
559 | " hg churn -f '%Y' -s\n" | |||
|
560 | "\n" | |||
|
561 | " The map file format used to specify aliases is fairly simple:\n" | |||
|
562 | "\n" | |||
|
563 | " <alias email> <actual email>" | |||
|
564 | msgstr "" | |||
|
565 | "plot antallet af revisioner grupperet efter et mønster\n" | |||
|
566 | "\n" | |||
|
567 | " Plotter antallet af ændrede linier eller antallet af revisioner\n" | |||
|
568 | " grupperet efter et mønster eller alternativt efter dato, hvis\n" | |||
|
569 | " dateformat bruges. I så tilfælde bruges mønstret ikke.\n" | |||
|
570 | "\n" | |||
|
571 | " Som udgangspunkt laves der statistik over antallet af ændrede\n" | |||
|
572 | " linier.\n" | |||
|
573 | "\n" | |||
|
574 | " Eksempler:\n" | |||
|
575 | "\n" | |||
|
576 | " # viser antaller af ændrede linier for hver bruger\n" | |||
|
577 | " hg churn -t '{author|email}'\n" | |||
|
578 | "\n" | |||
|
579 | " # viser graf over daglig aktivitet\n" | |||
|
580 | " hg churn -f '%H' -s -c\n" | |||
|
581 | "\n" | |||
|
582 | " # viser månedlig aktivitet af udviklerne\n" | |||
|
583 | " hg churn -f '%Y-%m' -s -c\n" | |||
|
584 | "\n" | |||
|
585 | " # viser antallet af linier ændret hvert år\n" | |||
|
586 | " hg churn -f '%Y' -s\n" | |||
|
587 | "\n" | |||
|
588 | " Formatet for map-filen er rimelig simpelt:\n" | |||
|
589 | "\n" | |||
|
590 | " <alias email> <faktisk email>" | |||
|
591 | ||||
|
592 | #, python-format | |||
|
593 | msgid "assuming %i character terminal\n" | |||
|
594 | msgstr "" | |||
|
595 | ||||
|
596 | msgid "count rate for the specified revision or range" | |||
|
597 | msgstr "lav statistik for de specificerede revisioner" | |||
|
598 | ||||
|
599 | msgid "count rate for revs matching date spec" | |||
|
600 | msgstr "lav statistik for revisioner som matcher dato specifikationen" | |||
|
601 | ||||
|
602 | msgid "template to group changesets" | |||
|
603 | msgstr "mønster for gruppering af ændringer" | |||
|
604 | ||||
|
605 | msgid "strftime-compatible format for grouping by date" | |||
|
606 | msgstr "strftime-kompatibelt format til gruppering efter dato" | |||
|
607 | ||||
|
608 | msgid "count rate by number of changesets" | |||
|
609 | msgstr "lav statistik efter antallet af ændringer" | |||
|
610 | ||||
|
611 | msgid "sort by key (default: sort by count)" | |||
|
612 | msgstr "sortér efter nøgle (standard: sortering efter antal)" | |||
|
613 | ||||
|
614 | msgid "file with email aliases" | |||
|
615 | msgstr "fil med email-aliaser" | |||
|
616 | ||||
|
617 | msgid "show progress" | |||
|
618 | msgstr "vis fremskridt" | |||
|
619 | ||||
|
620 | msgid "hg churn [-d DATE] [-r REV] [--aliases FILE] [--progress] [FILE]" | |||
|
621 | msgstr "hg churn [-d DATO] [-r REVISIONER] [--aliases FIL] [--progress] [FIL]" | |||
|
622 | ||||
|
623 | msgid "" | |||
|
624 | "add color output to status, qseries, and diff-related commands\n" | |||
|
625 | "\n" | |||
|
626 | "This extension modifies the status command to add color to its output to\n" | |||
|
627 | "reflect file status, the qseries command to add color to reflect patch " | |||
|
628 | "status\n" | |||
|
629 | "(applied, unapplied, missing), and to diff-related commands to highlight\n" | |||
|
630 | "additions, removals, diff headers, and trailing whitespace.\n" | |||
|
631 | "\n" | |||
|
632 | "Other effects in addition to color, like bold and underlined text, are also\n" | |||
|
633 | "available. Effects are rendered with the ECMA-48 SGR control function (aka\n" | |||
|
634 | "ANSI escape codes). This module also provides the render_text function,\n" | |||
|
635 | "which can be used to add effects to any text.\n" | |||
|
636 | "\n" | |||
|
637 | "To enable this extension, add this to your .hgrc file:\n" | |||
|
638 | "[extensions]\n" | |||
|
639 | "color =\n" | |||
|
640 | "\n" | |||
|
641 | "Default effects my be overriden from the .hgrc file:\n" | |||
|
642 | "\n" | |||
|
643 | "[color]\n" | |||
|
644 | "status.modified = blue bold underline red_background\n" | |||
|
645 | "status.added = green bold\n" | |||
|
646 | "status.removed = red bold blue_background\n" | |||
|
647 | "status.deleted = cyan bold underline\n" | |||
|
648 | "status.unknown = magenta bold underline\n" | |||
|
649 | "status.ignored = black bold\n" | |||
|
650 | "\n" | |||
|
651 | "# 'none' turns off all effects\n" | |||
|
652 | "status.clean = none\n" | |||
|
653 | "status.copied = none\n" | |||
|
654 | "\n" | |||
|
655 | "qseries.applied = blue bold underline\n" | |||
|
656 | "qseries.unapplied = black bold\n" | |||
|
657 | "qseries.missing = red bold\n" | |||
|
658 | "\n" | |||
|
659 | "diff.diffline = bold\n" | |||
|
660 | "diff.extended = cyan bold\n" | |||
|
661 | "diff.file_a = red bold\n" | |||
|
662 | "diff.file_b = green bold\n" | |||
|
663 | "diff.hunk = magenta\n" | |||
|
664 | "diff.deleted = red\n" | |||
|
665 | "diff.inserted = green\n" | |||
|
666 | "diff.changed = white\n" | |||
|
667 | "diff.trailingwhitespace = bold red_background\n" | |||
|
668 | msgstr "" | |||
|
669 | ||||
|
670 | msgid "Wrap text in commands to turn on each effect." | |||
|
671 | msgstr "" | |||
|
672 | ||||
|
673 | msgid "run the status command with colored output" | |||
|
674 | msgstr "" | |||
|
675 | ||||
|
676 | msgid "run the qseries command with colored output" | |||
|
677 | msgstr "" | |||
|
678 | ||||
|
679 | msgid "wrap ui.write for colored diff output" | |||
|
680 | msgstr "" | |||
|
681 | ||||
|
682 | msgid "wrap cmdutil.changeset_printer.showpatch with colored output" | |||
|
683 | msgstr "" | |||
|
684 | ||||
|
685 | msgid "run the diff command with colored output" | |||
|
686 | msgstr "" | |||
|
687 | ||||
|
688 | msgid "Initialize the extension." | |||
|
689 | msgstr "" | |||
|
690 | ||||
|
691 | msgid "patch in command to command table and load effect map" | |||
|
692 | msgstr "" | |||
|
693 | ||||
|
694 | msgid "when to colorize (always, auto, or never)" | |||
|
695 | msgstr "" | |||
|
696 | ||||
|
697 | msgid "don't colorize output" | |||
|
698 | msgstr "" | |||
|
699 | ||||
|
700 | msgid "converting foreign VCS repositories to Mercurial" | |||
|
701 | msgstr "" | |||
|
702 | ||||
|
703 | msgid "" | |||
|
704 | "convert a foreign SCM repository to a Mercurial one.\n" | |||
|
705 | "\n" | |||
|
706 | " Accepted source formats [identifiers]:\n" | |||
|
707 | " - Mercurial [hg]\n" | |||
|
708 | " - CVS [cvs]\n" | |||
|
709 | " - Darcs [darcs]\n" | |||
|
710 | " - git [git]\n" | |||
|
711 | " - Subversion [svn]\n" | |||
|
712 | " - Monotone [mtn]\n" | |||
|
713 | " - GNU Arch [gnuarch]\n" | |||
|
714 | " - Bazaar [bzr]\n" | |||
|
715 | "\n" | |||
|
716 | " Accepted destination formats [identifiers]:\n" | |||
|
717 | " - Mercurial [hg]\n" | |||
|
718 | " - Subversion [svn] (history on branches is not preserved)\n" | |||
|
719 | "\n" | |||
|
720 | " If no revision is given, all revisions will be converted. Otherwise,\n" | |||
|
721 | " convert will only import up to the named revision (given in a format\n" | |||
|
722 | " understood by the source).\n" | |||
|
723 | "\n" | |||
|
724 | " If no destination directory name is specified, it defaults to the\n" | |||
|
725 | " basename of the source with '-hg' appended. If the destination\n" | |||
|
726 | " repository doesn't exist, it will be created.\n" | |||
|
727 | "\n" | |||
|
728 | " If <REVMAP> isn't given, it will be put in a default location\n" | |||
|
729 | " (<dest>/.hg/shamap by default). The <REVMAP> is a simple text\n" | |||
|
730 | " file that maps each source commit ID to the destination ID for\n" | |||
|
731 | " that revision, like so:\n" | |||
|
732 | " <source ID> <destination ID>\n" | |||
|
733 | "\n" | |||
|
734 | " If the file doesn't exist, it's automatically created. It's updated\n" | |||
|
735 | " on each commit copied, so convert-repo can be interrupted and can\n" | |||
|
736 | " be run repeatedly to copy new commits.\n" | |||
|
737 | "\n" | |||
|
738 | " The [username mapping] file is a simple text file that maps each source\n" | |||
|
739 | " commit author to a destination commit author. It is handy for source " | |||
|
740 | "SCMs\n" | |||
|
741 | " that use unix logins to identify authors (eg: CVS). One line per author\n" | |||
|
742 | " mapping and the line format is:\n" | |||
|
743 | " srcauthor=whatever string you want\n" | |||
|
744 | "\n" | |||
|
745 | " The filemap is a file that allows filtering and remapping of files\n" | |||
|
746 | " and directories. Comment lines start with '#'. Each line can\n" | |||
|
747 | " contain one of the following directives:\n" | |||
|
748 | "\n" | |||
|
749 | " include path/to/file\n" | |||
|
750 | "\n" | |||
|
751 | " exclude path/to/file\n" | |||
|
752 | "\n" | |||
|
753 | " rename from/file to/file\n" | |||
|
754 | "\n" | |||
|
755 | " The 'include' directive causes a file, or all files under a\n" | |||
|
756 | " directory, to be included in the destination repository, and the\n" | |||
|
757 | " exclusion of all other files and dirs not explicitely included.\n" | |||
|
758 | " The 'exclude' directive causes files or directories to be omitted.\n" | |||
|
759 | " The 'rename' directive renames a file or directory. To rename from a\n" | |||
|
760 | " subdirectory into the root of the repository, use '.' as the path to\n" | |||
|
761 | " rename to.\n" | |||
|
762 | "\n" | |||
|
763 | " The splicemap is a file that allows insertion of synthetic\n" | |||
|
764 | " history, letting you specify the parents of a revision. This is\n" | |||
|
765 | " useful if you want to e.g. give a Subversion merge two parents, or\n" | |||
|
766 | " graft two disconnected series of history together. Each entry\n" | |||
|
767 | " contains a key, followed by a space, followed by one or two\n" | |||
|
768 | " values, separated by spaces. The key is the revision ID in the\n" | |||
|
769 | " source revision control system whose parents should be modified\n" | |||
|
770 | " (same format as a key in .hg/shamap). The values are the revision\n" | |||
|
771 | " IDs (in either the source or destination revision control system)\n" | |||
|
772 | " that should be used as the new parents for that node.\n" | |||
|
773 | "\n" | |||
|
774 | " Mercurial Source\n" | |||
|
775 | " -----------------\n" | |||
|
776 | "\n" | |||
|
777 | " --config convert.hg.ignoreerrors=False (boolean)\n" | |||
|
778 | " ignore integrity errors when reading. Use it to fix Mercurial\n" | |||
|
779 | " repositories with missing revlogs, by converting from and to\n" | |||
|
780 | " Mercurial.\n" | |||
|
781 | " --config convert.hg.saverev=True (boolean)\n" | |||
|
782 | " allow target to preserve source revision ID\n" | |||
|
783 | " --config convert.hg.startrev=0 (hg revision identifier)\n" | |||
|
784 | " convert start revision and its descendants\n" | |||
|
785 | "\n" | |||
|
786 | " CVS Source\n" | |||
|
787 | " ----------\n" | |||
|
788 | "\n" | |||
|
789 | " CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n" | |||
|
790 | " to indicate the starting point of what will be converted. Direct\n" | |||
|
791 | " access to the repository files is not needed, unless of course\n" | |||
|
792 | " the repository is :local:. The conversion uses the top level\n" | |||
|
793 | " directory in the sandbox to find the CVS repository, and then uses\n" | |||
|
794 | " CVS rlog commands to find files to convert. This means that unless\n" | |||
|
795 | " a filemap is given, all files under the starting directory will be\n" | |||
|
796 | " converted, and that any directory reorganisation in the CVS\n" | |||
|
797 | " sandbox is ignored.\n" | |||
|
798 | "\n" | |||
|
799 | " Because CVS does not have changesets, it is necessary to collect\n" | |||
|
800 | " individual commits to CVS and merge them into changesets. CVS\n" | |||
|
801 | " source uses its internal changeset merging code by default but can\n" | |||
|
802 | " be configured to call the external 'cvsps' program by setting:\n" | |||
|
803 | " --config convert.cvsps='cvsps -A -u --cvs-direct -q'\n" | |||
|
804 | " This is a legacy option and may be removed in future.\n" | |||
|
805 | "\n" | |||
|
806 | " The options shown are the defaults.\n" | |||
|
807 | "\n" | |||
|
808 | " Internal cvsps is selected by setting\n" | |||
|
809 | " --config convert.cvsps=builtin\n" | |||
|
810 | " and has a few more configurable options:\n" | |||
|
811 | " --config convert.cvsps.fuzz=60 (integer)\n" | |||
|
812 | " Specify the maximum time (in seconds) that is allowed between\n" | |||
|
813 | " commits with identical user and log message in a single\n" | |||
|
814 | " changeset. When very large files were checked in as part\n" | |||
|
815 | " of a changeset then the default may not be long enough.\n" | |||
|
816 | " --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}'\n" | |||
|
817 | " Specify a regular expression to which commit log messages are\n" | |||
|
818 | " matched. If a match occurs, then the conversion process will\n" | |||
|
819 | " insert a dummy revision merging the branch on which this log\n" | |||
|
820 | " message occurs to the branch indicated in the regex.\n" | |||
|
821 | " --config convert.cvsps.mergefrom='{{mergefrombranch ([-\\w]+)}}'\n" | |||
|
822 | " Specify a regular expression to which commit log messages are\n" | |||
|
823 | " matched. If a match occurs, then the conversion process will\n" | |||
|
824 | " add the most recent revision on the branch indicated in the\n" | |||
|
825 | " regex as the second parent of the changeset.\n" | |||
|
826 | "\n" | |||
|
827 | " The hgext/convert/cvsps wrapper script allows the builtin changeset\n" | |||
|
828 | " merging code to be run without doing a conversion. Its parameters and\n" | |||
|
829 | " output are similar to that of cvsps 2.1.\n" | |||
|
830 | "\n" | |||
|
831 | " Subversion Source\n" | |||
|
832 | " -----------------\n" | |||
|
833 | "\n" | |||
|
834 | " Subversion source detects classical trunk/branches/tags layouts.\n" | |||
|
835 | " By default, the supplied \"svn://repo/path/\" source URL is\n" | |||
|
836 | " converted as a single branch. If \"svn://repo/path/trunk\" exists\n" | |||
|
837 | " it replaces the default branch. If \"svn://repo/path/branches\"\n" | |||
|
838 | " exists, its subdirectories are listed as possible branches. If\n" | |||
|
839 | " \"svn://repo/path/tags\" exists, it is looked for tags referencing\n" | |||
|
840 | " converted branches. Default \"trunk\", \"branches\" and \"tags\" values\n" | |||
|
841 | " can be overriden with following options. Set them to paths\n" | |||
|
842 | " relative to the source URL, or leave them blank to disable\n" | |||
|
843 | " autodetection.\n" | |||
|
844 | "\n" | |||
|
845 | " --config convert.svn.branches=branches (directory name)\n" | |||
|
846 | " specify the directory containing branches\n" | |||
|
847 | " --config convert.svn.tags=tags (directory name)\n" | |||
|
848 | " specify the directory containing tags\n" | |||
|
849 | " --config convert.svn.trunk=trunk (directory name)\n" | |||
|
850 | " specify the name of the trunk branch\n" | |||
|
851 | "\n" | |||
|
852 | " Source history can be retrieved starting at a specific revision,\n" | |||
|
853 | " instead of being integrally converted. Only single branch\n" | |||
|
854 | " conversions are supported.\n" | |||
|
855 | "\n" | |||
|
856 | " --config convert.svn.startrev=0 (svn revision number)\n" | |||
|
857 | " specify start Subversion revision.\n" | |||
|
858 | "\n" | |||
|
859 | " Mercurial Destination\n" | |||
|
860 | " ---------------------\n" | |||
|
861 | "\n" | |||
|
862 | " --config convert.hg.clonebranches=False (boolean)\n" | |||
|
863 | " dispatch source branches in separate clones.\n" | |||
|
864 | " --config convert.hg.tagsbranch=default (branch name)\n" | |||
|
865 | " tag revisions branch name\n" | |||
|
866 | " --config convert.hg.usebranchnames=True (boolean)\n" | |||
|
867 | " preserve branch names\n" | |||
|
868 | "\n" | |||
|
869 | " " | |||
|
870 | msgstr "" | |||
|
871 | ||||
|
872 | msgid "" | |||
|
873 | "create changeset information from CVS\n" | |||
|
874 | "\n" | |||
|
875 | " This command is intended as a debugging tool for the CVS to Mercurial\n" | |||
|
876 | " converter, and can be used as a direct replacement for cvsps.\n" | |||
|
877 | "\n" | |||
|
878 | " Hg debugcvsps reads the CVS rlog for current directory (or any named\n" | |||
|
879 | " directory) in the CVS repository, and converts the log to a series of\n" | |||
|
880 | " changesets based on matching commit log entries and dates." | |||
|
881 | msgstr "" | |||
|
882 | ||||
|
883 | msgid "username mapping filename" | |||
|
884 | msgstr "" | |||
|
885 | ||||
|
886 | msgid "destination repository type" | |||
|
887 | msgstr "type for destinations repository" | |||
|
888 | ||||
|
889 | msgid "remap file names using contents of file" | |||
|
890 | msgstr "" | |||
|
891 | ||||
|
892 | msgid "import up to target revision REV" | |||
|
893 | msgstr "" | |||
|
894 | ||||
|
895 | msgid "source repository type" | |||
|
896 | msgstr "" | |||
|
897 | ||||
|
898 | msgid "splice synthesized history into place" | |||
|
899 | msgstr "" | |||
|
900 | ||||
|
901 | msgid "try to sort changesets by date" | |||
|
902 | msgstr "" | |||
|
903 | ||||
|
904 | msgid "hg convert [OPTION]... SOURCE [DEST [REVMAP]]" | |||
|
905 | msgstr "" | |||
|
906 | ||||
|
907 | msgid "only return changes on specified branches" | |||
|
908 | msgstr "" | |||
|
909 | ||||
|
910 | msgid "prefix to remove from file names" | |||
|
911 | msgstr "" | |||
|
912 | ||||
|
913 | msgid "only return changes after or between specified tags" | |||
|
914 | msgstr "" | |||
|
915 | ||||
|
916 | msgid "update cvs log cache" | |||
|
917 | msgstr "" | |||
|
918 | ||||
|
919 | msgid "create new cvs log cache" | |||
|
920 | msgstr "" | |||
|
921 | ||||
|
922 | msgid "set commit time fuzz in seconds" | |||
|
923 | msgstr "" | |||
|
924 | ||||
|
925 | msgid "specify cvsroot" | |||
|
926 | msgstr "" | |||
|
927 | ||||
|
928 | msgid "show parent changesets" | |||
|
929 | msgstr "vis forældre-ændring" | |||
|
930 | ||||
|
931 | msgid "show current changeset in ancestor branches" | |||
|
932 | msgstr "" | |||
|
933 | ||||
|
934 | msgid "ignored for compatibility" | |||
|
935 | msgstr "" | |||
|
936 | ||||
|
937 | msgid "hg debugcvsps [OPTION]... [PATH]..." | |||
|
938 | msgstr "" | |||
|
939 | ||||
|
940 | #, python-format | |||
|
941 | msgid "%s is not a valid revision in current branch" | |||
|
942 | msgstr "" | |||
|
943 | ||||
|
944 | #, python-format | |||
|
945 | msgid "%s is not available in %s anymore" | |||
|
946 | msgstr "" | |||
|
947 | ||||
|
948 | #, python-format | |||
|
949 | msgid "cannot find required \"%s\" tool" | |||
|
950 | msgstr "" | |||
|
951 | ||||
|
952 | #, python-format | |||
|
953 | msgid "running: %s\n" | |||
|
954 | msgstr "kører: %s\n" | |||
|
955 | ||||
|
956 | #, python-format | |||
|
957 | msgid "%s error:\n" | |||
|
958 | msgstr "" | |||
|
959 | ||||
|
960 | #, python-format | |||
|
961 | msgid "%s %s" | |||
|
962 | msgstr "" | |||
|
963 | ||||
|
964 | #, python-format | |||
|
965 | msgid "could not open map file %r: %s" | |||
|
966 | msgstr "" | |||
|
967 | ||||
|
968 | #, python-format | |||
|
969 | msgid "%s: missing or unsupported repository" | |||
|
970 | msgstr "" | |||
|
971 | ||||
|
972 | #, python-format | |||
|
973 | msgid "convert: %s\n" | |||
|
974 | msgstr "" | |||
|
975 | ||||
|
976 | #, python-format | |||
|
977 | msgid "%s: unknown repository type" | |||
|
978 | msgstr "%s: ukendt arkivtype" | |||
|
979 | ||||
|
980 | #, python-format | |||
|
981 | msgid "cycle detected between %s and %s" | |||
|
982 | msgstr "" | |||
|
983 | ||||
|
984 | msgid "not all revisions were sorted" | |||
|
985 | msgstr "" | |||
|
986 | ||||
|
987 | #, python-format | |||
|
988 | msgid "Writing author map file %s\n" | |||
|
989 | msgstr "" | |||
|
990 | ||||
|
991 | #, python-format | |||
|
992 | msgid "Overriding mapping for author %s, was %s, will be %s\n" | |||
|
993 | msgstr "" | |||
|
994 | ||||
|
995 | #, python-format | |||
|
996 | msgid "mapping author %s to %s\n" | |||
|
997 | msgstr "" | |||
|
998 | ||||
|
999 | #, python-format | |||
|
1000 | msgid "Ignoring bad line in author map file %s: %s\n" | |||
|
1001 | msgstr "" | |||
|
1002 | ||||
|
1003 | #, python-format | |||
|
1004 | msgid "spliced in %s as parents of %s\n" | |||
|
1005 | msgstr "" | |||
|
1006 | ||||
|
1007 | msgid "scanning source...\n" | |||
|
1008 | msgstr "" | |||
|
1009 | ||||
|
1010 | msgid "sorting...\n" | |||
|
1011 | msgstr "" | |||
|
1012 | ||||
|
1013 | msgid "converting...\n" | |||
|
1014 | msgstr "" | |||
|
1015 | ||||
|
1016 | #, python-format | |||
|
1017 | msgid "source: %s\n" | |||
|
1018 | msgstr "" | |||
|
1019 | ||||
|
1020 | #, python-format | |||
|
1021 | msgid "assuming destination %s\n" | |||
|
1022 | msgstr "" | |||
|
1023 | ||||
|
1024 | #, python-format | |||
|
1025 | msgid "revision %s is not a patchset number or date" | |||
|
1026 | msgstr "" | |||
|
1027 | ||||
|
1028 | msgid "using builtin cvsps\n" | |||
|
1029 | msgstr "" | |||
|
1030 | ||||
|
1031 | #, python-format | |||
|
1032 | msgid "connecting to %s\n" | |||
|
1033 | msgstr "" | |||
|
1034 | ||||
|
1035 | msgid "CVS pserver authentication failed" | |||
|
1036 | msgstr "CVS pserver godkendelse fejlede" | |||
|
1037 | ||||
|
1038 | msgid "server sucks" | |||
|
1039 | msgstr "" | |||
|
1040 | ||||
|
1041 | #, python-format | |||
|
1042 | msgid "%d bytes missing from remote file" | |||
|
1043 | msgstr "%d byte mangler i fjernfilen" | |||
|
1044 | ||||
|
1045 | #, python-format | |||
|
1046 | msgid "cvs server: %s\n" | |||
|
1047 | msgstr "cvs server: %s\n" | |||
|
1048 | ||||
|
1049 | #, python-format | |||
|
1050 | msgid "unknown CVS response: %s" | |||
|
1051 | msgstr "ukendt CVS svar: %s" | |||
|
1052 | ||||
|
1053 | msgid "collecting CVS rlog\n" | |||
|
1054 | msgstr "samler CVS rlog\n" | |||
|
1055 | ||||
|
1056 | #, python-format | |||
|
1057 | msgid "reading cvs log cache %s\n" | |||
|
1058 | msgstr "" | |||
|
1059 | ||||
|
1060 | #, python-format | |||
|
1061 | msgid "cache has %d log entries\n" | |||
|
1062 | msgstr "" | |||
|
1063 | ||||
|
1064 | #, python-format | |||
|
1065 | msgid "error reading cache: %r\n" | |||
|
1066 | msgstr "" | |||
|
1067 | ||||
|
1068 | #, python-format | |||
|
1069 | msgid "running %s\n" | |||
|
1070 | msgstr "kører %s\n" | |||
|
1071 | ||||
|
1072 | #, python-format | |||
|
1073 | msgid "prefix=%r directory=%r root=%r\n" | |||
|
1074 | msgstr "" | |||
|
1075 | ||||
|
1076 | msgid "RCS file must be followed by working file" | |||
|
1077 | msgstr "" | |||
|
1078 | ||||
|
1079 | msgid "must have at least some revisions" | |||
|
1080 | msgstr "" | |||
|
1081 | ||||
|
1082 | msgid "expected revision number" | |||
|
1083 | msgstr "" | |||
|
1084 | ||||
|
1085 | msgid "revision must be followed by date line" | |||
|
1086 | msgstr "" | |||
|
1087 | ||||
|
1088 | #, python-format | |||
|
1089 | msgid "writing cvs log cache %s\n" | |||
|
1090 | msgstr "" | |||
|
1091 | ||||
|
1092 | #, python-format | |||
|
1093 | msgid "%d log entries\n" | |||
|
1094 | msgstr "" | |||
|
1095 | ||||
|
1096 | msgid "creating changesets\n" | |||
|
1097 | msgstr "opretter ændringer\n" | |||
|
1098 | ||||
|
1099 | #, python-format | |||
|
1100 | msgid "%d changeset entries\n" | |||
|
1101 | msgstr "%d ændringer\n" | |||
|
1102 | ||||
|
1103 | msgid "Python ElementTree module is not available" | |||
|
1104 | msgstr "" | |||
|
1105 | ||||
|
1106 | #, python-format | |||
|
1107 | msgid "cleaning up %s\n" | |||
|
1108 | msgstr "rydder op %s\n" | |||
|
1109 | ||||
|
1110 | msgid "internal calling inconsistency" | |||
|
1111 | msgstr "" | |||
|
1112 | ||||
|
1113 | msgid "errors in filemap" | |||
|
1114 | msgstr "" | |||
|
1115 | ||||
|
1116 | #, python-format | |||
|
1117 | msgid "%s:%d: %r already in %s list\n" | |||
|
1118 | msgstr "" | |||
|
1119 | ||||
|
1120 | #, python-format | |||
|
1121 | msgid "%s:%d: unknown directive %r\n" | |||
|
1122 | msgstr "" | |||
|
1123 | ||||
|
1124 | msgid "source repository doesn't support --filemap" | |||
|
1125 | msgstr "" | |||
|
1126 | ||||
|
1127 | #, python-format | |||
|
1128 | msgid "%s does not look like a GNU Arch repo" | |||
|
1129 | msgstr "" | |||
|
1130 | ||||
|
1131 | msgid "cannot find a GNU Arch tool" | |||
|
1132 | msgstr "" | |||
|
1133 | ||||
|
1134 | #, python-format | |||
|
1135 | msgid "analyzing tree version %s...\n" | |||
|
1136 | msgstr "" | |||
|
1137 | ||||
|
1138 | #, python-format | |||
|
1139 | msgid "" | |||
|
1140 | "tree analysis stopped because it points to an unregistered archive %s...\n" | |||
|
1141 | msgstr "" | |||
|
1142 | ||||
|
1143 | #, python-format | |||
|
1144 | msgid "applying revision %s...\n" | |||
|
1145 | msgstr "" | |||
|
1146 | ||||
|
1147 | #, python-format | |||
|
1148 | msgid "computing changeset between %s and %s...\n" | |||
|
1149 | msgstr "beregner ændringer mellem %s og %s...\n" | |||
|
1150 | ||||
|
1151 | #, python-format | |||
|
1152 | msgid "obtaining revision %s...\n" | |||
|
1153 | msgstr "henter revision %s...\n" | |||
|
1154 | ||||
|
1155 | #, python-format | |||
|
1156 | msgid "analysing revision %s...\n" | |||
|
1157 | msgstr "analyserer revision %s...\n" | |||
|
1158 | ||||
|
1159 | #, python-format | |||
|
1160 | msgid "could not parse cat-log of %s" | |||
|
1161 | msgstr "" | |||
|
1162 | ||||
|
1163 | #, python-format | |||
|
1164 | msgid "%s is not a local Mercurial repo" | |||
|
1165 | msgstr "" | |||
|
1166 | ||||
|
1167 | #, python-format | |||
|
1168 | msgid "initializing destination %s repository\n" | |||
|
1169 | msgstr "" | |||
|
1170 | ||||
|
1171 | msgid "run hg sink pre-conversion action\n" | |||
|
1172 | msgstr "" | |||
|
1173 | ||||
|
1174 | msgid "run hg sink post-conversion action\n" | |||
|
1175 | msgstr "" | |||
|
1176 | ||||
|
1177 | #, python-format | |||
|
1178 | msgid "pulling from %s into %s\n" | |||
|
1179 | msgstr "" | |||
|
1180 | ||||
|
1181 | msgid "updating tags\n" | |||
|
1182 | msgstr "" | |||
|
1183 | ||||
|
1184 | #, python-format | |||
|
1185 | msgid "%s is not a valid start revision" | |||
|
1186 | msgstr "" | |||
|
1187 | ||||
|
1188 | #, python-format | |||
|
1189 | msgid "ignoring: %s\n" | |||
|
1190 | msgstr "ignorerer: %s\n" | |||
|
1191 | ||||
|
1192 | msgid "run hg source pre-conversion action\n" | |||
|
1193 | msgstr "" | |||
|
1194 | ||||
|
1195 | msgid "run hg source post-conversion action\n" | |||
|
1196 | msgstr "" | |||
|
1197 | ||||
|
1198 | #, python-format | |||
|
1199 | msgid "%s does not look like a monotone repo" | |||
|
1200 | msgstr "" | |||
|
1201 | ||||
|
1202 | #, python-format | |||
|
1203 | msgid "copying file in renamed dir from '%s' to '%s'" | |||
|
1204 | msgstr "" | |||
|
1205 | ||||
|
1206 | msgid "Subversion python bindings could not be loaded" | |||
|
1207 | msgstr "" | |||
|
1208 | ||||
|
1209 | #, python-format | |||
|
1210 | msgid "Subversion python bindings %d.%d found, 1.4 or later required" | |||
|
1211 | msgstr "" | |||
|
1212 | ||||
|
1213 | msgid "Subversion python bindings are too old, 1.4 or later required" | |||
|
1214 | msgstr "" | |||
|
1215 | ||||
|
1216 | #, python-format | |||
|
1217 | msgid "svn: revision %s is not an integer" | |||
|
1218 | msgstr "" | |||
|
1219 | ||||
|
1220 | #, python-format | |||
|
1221 | msgid "svn: start revision %s is not an integer" | |||
|
1222 | msgstr "" | |||
|
1223 | ||||
|
1224 | #, python-format | |||
|
1225 | msgid "no revision found in module %s" | |||
|
1226 | msgstr "" | |||
|
1227 | ||||
|
1228 | #, python-format | |||
|
1229 | msgid "expected %s to be at %r, but not found" | |||
|
1230 | msgstr "" | |||
|
1231 | ||||
|
1232 | #, python-format | |||
|
1233 | msgid "found %s at %r\n" | |||
|
1234 | msgstr "" | |||
|
1235 | ||||
|
1236 | #, python-format | |||
|
1237 | msgid "ignoring empty branch %s\n" | |||
|
1238 | msgstr "" | |||
|
1239 | ||||
|
1240 | #, python-format | |||
|
1241 | msgid "found branch %s at %d\n" | |||
|
1242 | msgstr "" | |||
|
1243 | ||||
|
1244 | msgid "svn: start revision is not supported with with more than one branch" | |||
|
1245 | msgstr "" | |||
|
1246 | ||||
|
1247 | #, python-format | |||
|
1248 | msgid "svn: no revision found after start revision %d" | |||
|
1249 | msgstr "" | |||
|
1250 | ||||
|
1251 | #, python-format | |||
|
1252 | msgid "no tags found at revision %d\n" | |||
|
1253 | msgstr "" | |||
|
1254 | ||||
|
1255 | #, python-format | |||
|
1256 | msgid "ignoring foreign branch %r\n" | |||
|
1257 | msgstr "" | |||
|
1258 | ||||
|
1259 | #, python-format | |||
|
1260 | msgid "%s not found up to revision %d" | |||
|
1261 | msgstr "" | |||
|
1262 | ||||
|
1263 | #, python-format | |||
|
1264 | msgid "branch renamed from %s to %s at %d\n" | |||
|
1265 | msgstr "" | |||
|
1266 | ||||
|
1267 | #, python-format | |||
|
1268 | msgid "reparent to %s\n" | |||
|
1269 | msgstr "" | |||
|
1270 | ||||
|
1271 | #, python-format | |||
|
1272 | msgid "copied to %s from %s@%s\n" | |||
|
1273 | msgstr "" | |||
|
1274 | ||||
|
1275 | #, python-format | |||
|
1276 | msgid "gone from %s\n" | |||
|
1277 | msgstr "" | |||
|
1278 | ||||
|
1279 | #, python-format | |||
|
1280 | msgid "found parent directory %s\n" | |||
|
1281 | msgstr "" | |||
|
1282 | ||||
|
1283 | #, python-format | |||
|
1284 | msgid "base, entry %s %s\n" | |||
|
1285 | msgstr "" | |||
|
1286 | ||||
|
1287 | msgid "munge-o-matic\n" | |||
|
1288 | msgstr "" | |||
|
1289 | ||||
|
1290 | #, python-format | |||
|
1291 | msgid "info: %s %s %s %s\n" | |||
|
1292 | msgstr "" | |||
|
1293 | ||||
|
1294 | #, python-format | |||
|
1295 | msgid "unknown path in revision %d: %s\n" | |||
|
1296 | msgstr "" | |||
|
1297 | ||||
|
1298 | #, python-format | |||
|
1299 | msgid "mark %s came from %s:%d\n" | |||
|
1300 | msgstr "" | |||
|
1301 | ||||
|
1302 | #, python-format | |||
|
1303 | msgid "parsing revision %d (%d changes)\n" | |||
|
1304 | msgstr "" | |||
|
1305 | ||||
|
1306 | #, python-format | |||
|
1307 | msgid "found parent of branch %s at %d: %s\n" | |||
|
1308 | msgstr "" | |||
|
1309 | ||||
|
1310 | msgid "no copyfrom path, don't know what to do.\n" | |||
|
1311 | msgstr "" | |||
|
1312 | ||||
|
1313 | #, python-format | |||
|
1314 | msgid "fetching revision log for \"%s\" from %d to %d\n" | |||
|
1315 | msgstr "" | |||
|
1316 | ||||
|
1317 | #, python-format | |||
|
1318 | msgid "skipping blacklisted revision %d\n" | |||
|
1319 | msgstr "" | |||
|
1320 | ||||
|
1321 | #, python-format | |||
|
1322 | msgid "revision %d has no entries\n" | |||
|
1323 | msgstr "" | |||
|
1324 | ||||
|
1325 | #, python-format | |||
|
1326 | msgid "svn: branch has no revision %s" | |||
|
1327 | msgstr "" | |||
|
1328 | ||||
|
1329 | #, python-format | |||
|
1330 | msgid "%r is not under %r, ignoring\n" | |||
|
1331 | msgstr "" | |||
|
1332 | ||||
|
1333 | #, python-format | |||
|
1334 | msgid "initializing svn repo %r\n" | |||
|
1335 | msgstr "" | |||
|
1336 | ||||
|
1337 | #, python-format | |||
|
1338 | msgid "initializing svn wc %r\n" | |||
|
1339 | msgstr "" | |||
|
1340 | ||||
|
1341 | msgid "unexpected svn output:\n" | |||
|
1342 | msgstr "" | |||
|
1343 | ||||
|
1344 | msgid "unable to cope with svn output" | |||
|
1345 | msgstr "" | |||
|
1346 | ||||
|
1347 | msgid "XXX TAGS NOT IMPLEMENTED YET\n" | |||
|
1348 | msgstr "" | |||
|
1349 | ||||
|
1350 | msgid "" | |||
|
1351 | "\n" | |||
|
1352 | "The `extdiff' Mercurial extension allows you to use external programs\n" | |||
|
1353 | "to compare revisions, or revision with working dir. The external diff\n" | |||
|
1354 | "programs are called with a configurable set of options and two\n" | |||
|
1355 | "non-option arguments: paths to directories containing snapshots of\n" | |||
|
1356 | "files to compare.\n" | |||
|
1357 | "\n" | |||
|
1358 | "To enable this extension:\n" | |||
|
1359 | "\n" | |||
|
1360 | " [extensions]\n" | |||
|
1361 | " hgext.extdiff =\n" | |||
|
1362 | "\n" | |||
|
1363 | "The `extdiff' extension also allows to configure new diff commands, so\n" | |||
|
1364 | "you do not need to type \"hg extdiff -p kdiff3\" always.\n" | |||
|
1365 | "\n" | |||
|
1366 | " [extdiff]\n" | |||
|
1367 | " # add new command that runs GNU diff(1) in 'context diff' mode\n" | |||
|
1368 | " cdiff = gdiff -Nprc5\n" | |||
|
1369 | " ## or the old way:\n" | |||
|
1370 | " #cmd.cdiff = gdiff\n" | |||
|
1371 | " #opts.cdiff = -Nprc5\n" | |||
|
1372 | "\n" | |||
|
1373 | " # add new command called vdiff, runs kdiff3\n" | |||
|
1374 | " vdiff = kdiff3\n" | |||
|
1375 | "\n" | |||
|
1376 | " # add new command called meld, runs meld (no need to name twice)\n" | |||
|
1377 | " meld =\n" | |||
|
1378 | "\n" | |||
|
1379 | " # add new command called vimdiff, runs gvimdiff with DirDiff plugin\n" | |||
|
1380 | " #(see http://www.vim.org/scripts/script.php?script_id=102)\n" | |||
|
1381 | " # Non english user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" " | |||
|
1382 | "in\n" | |||
|
1383 | " # your .vimrc\n" | |||
|
1384 | " vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'\n" | |||
|
1385 | "\n" | |||
|
1386 | "You can use -I/-X and list of file or directory names like normal\n" | |||
|
1387 | "\"hg diff\" command. The `extdiff' extension makes snapshots of only\n" | |||
|
1388 | "needed files, so running the external diff program will actually be\n" | |||
|
1389 | "pretty fast (at least faster than having to compare the entire tree).\n" | |||
|
1390 | msgstr "" | |||
|
1391 | ||||
|
1392 | msgid "snapshot files as of some revision" | |||
|
1393 | msgstr "" | |||
|
1394 | ||||
|
1395 | #, python-format | |||
|
1396 | msgid "making snapshot of %d files from rev %s\n" | |||
|
1397 | msgstr "" | |||
|
1398 | ||||
|
1399 | msgid "" | |||
|
1400 | "snapshot files from working directory.\n" | |||
|
1401 | " if not using snapshot, -I/-X does not work and recursive diff\n" | |||
|
1402 | " in tools like kdiff3 and meld displays too many files." | |||
|
1403 | msgstr "" | |||
|
1404 | ||||
|
1405 | #, python-format | |||
|
1406 | msgid "making snapshot of %d files from working dir\n" | |||
|
1407 | msgstr "" | |||
|
1408 | ||||
|
1409 | msgid "" | |||
|
1410 | "Do the actuall diff:\n" | |||
|
1411 | "\n" | |||
|
1412 | " - copy to a temp structure if diffing 2 internal revisions\n" | |||
|
1413 | " - copy to a temp structure if diffing working revision with\n" | |||
|
1414 | " another one and more than 1 file is changed\n" | |||
|
1415 | " - just invoke the diff for a single file in the working dir\n" | |||
|
1416 | " " | |||
|
1417 | msgstr "" | |||
|
1418 | ||||
|
1419 | msgid "cannot specify --rev and --change at the same time" | |||
|
1420 | msgstr "" | |||
|
1421 | ||||
|
1422 | #, python-format | |||
|
1423 | msgid "running %r in %s\n" | |||
|
1424 | msgstr "" | |||
|
1425 | ||||
|
1426 | #, python-format | |||
|
1427 | msgid "file changed while diffing. Overwriting: %s (src: %s)\n" | |||
|
1428 | msgstr "" | |||
|
1429 | ||||
|
1430 | msgid "cleaning up temp directory\n" | |||
|
1431 | msgstr "" | |||
|
1432 | ||||
|
1433 | msgid "" | |||
|
1434 | "use external program to diff repository (or selected files)\n" | |||
|
1435 | "\n" | |||
|
1436 | " Show differences between revisions for the specified files, using\n" | |||
|
1437 | " an external program. The default program used is diff, with\n" | |||
|
1438 | " default options \"-Npru\".\n" | |||
|
1439 | "\n" | |||
|
1440 | " To select a different program, use the -p option. The program\n" | |||
|
1441 | " will be passed the names of two directories to compare. To pass\n" | |||
|
1442 | " additional options to the program, use the -o option. These will\n" | |||
|
1443 | " be passed before the names of the directories to compare.\n" | |||
|
1444 | "\n" | |||
|
1445 | " When two revision arguments are given, then changes are\n" | |||
|
1446 | " shown between those revisions. If only one revision is\n" | |||
|
1447 | " specified then that revision is compared to the working\n" | |||
|
1448 | " directory, and, when no revisions are specified, the\n" | |||
|
1449 | " working directory files are compared to its parent." | |||
|
1450 | msgstr "" | |||
|
1451 | ||||
|
1452 | msgid "comparison program to run" | |||
|
1453 | msgstr "" | |||
|
1454 | ||||
|
1455 | msgid "pass option to comparison program" | |||
|
1456 | msgstr "" | |||
|
1457 | ||||
|
1458 | msgid "change made by revision" | |||
|
1459 | msgstr "" | |||
|
1460 | ||||
|
1461 | msgid "hg extdiff [OPT]... [FILE]..." | |||
|
1462 | msgstr "" | |||
|
1463 | ||||
|
1464 | msgid "use closure to save diff command to use" | |||
|
1465 | msgstr "" | |||
|
1466 | ||||
|
1467 | #, python-format | |||
|
1468 | msgid "hg %s [OPTION]... [FILE]..." | |||
|
1469 | msgstr "" | |||
|
1470 | ||||
|
1471 | msgid "pulling, updating and merging in one command" | |||
|
1472 | msgstr "" | |||
|
1473 | ||||
|
1474 | msgid "" | |||
|
1475 | "pull changes from a remote repository, merge new changes if needed.\n" | |||
|
1476 | "\n" | |||
|
1477 | " This finds all changes from the repository at the specified path\n" | |||
|
1478 | " or URL and adds them to the local repository.\n" | |||
|
1479 | "\n" | |||
|
1480 | " If the pulled changes add a new branch head, the head is automatically\n" | |||
|
1481 | " merged, and the result of the merge is committed. Otherwise, the\n" | |||
|
1482 | " working directory is updated to include the new changes.\n" | |||
|
1483 | "\n" | |||
|
1484 | " When a merge occurs, the newly pulled changes are assumed to be\n" | |||
|
1485 | " \"authoritative\". The head of the new changes is used as the first\n" | |||
|
1486 | " parent, with local changes as the second. To switch the merge\n" | |||
|
1487 | " order, use --switch-parent.\n" | |||
|
1488 | "\n" | |||
|
1489 | " See 'hg help dates' for a list of formats valid for -d/--date.\n" | |||
|
1490 | " " | |||
|
1491 | msgstr "" | |||
|
1492 | ||||
|
1493 | msgid "" | |||
|
1494 | "working dir not at branch tip (use \"hg update\" to check out branch tip)" | |||
|
1495 | msgstr "" | |||
|
1496 | ||||
|
1497 | msgid "outstanding uncommitted merge" | |||
|
1498 | msgstr "" | |||
|
1499 | ||||
|
1500 | msgid "outstanding uncommitted changes" | |||
|
1501 | msgstr "" | |||
|
1502 | ||||
|
1503 | msgid "working directory is missing some files" | |||
|
1504 | msgstr "arbejdsbiblioteket mangler nogle filer" | |||
|
1505 | ||||
|
1506 | msgid "" | |||
|
1507 | "multiple heads in this branch (use \"hg heads .\" and \"hg merge\" to merge)" | |||
|
1508 | msgstr "" | |||
|
1509 | ||||
|
1510 | #, python-format | |||
|
1511 | msgid "pulling from %s\n" | |||
|
1512 | msgstr "hiver fra %s\n" | |||
|
1513 | ||||
|
1514 | msgid "fetch -r doesn't work for remote repositories yet" | |||
|
1515 | msgstr "fetch -r virker endnu ikke for fjernarkiver" | |||
|
1516 | ||||
|
1517 | #, python-format | |||
|
1518 | msgid "" | |||
|
1519 | "not merging with %d other new branch heads (use \"hg heads .\" and \"hg merge" | |||
|
1520 | "\" to merge them)\n" | |||
|
1521 | msgstr "" | |||
|
1522 | ||||
|
1523 | #, python-format | |||
|
1524 | msgid "updating to %d:%s\n" | |||
|
1525 | msgstr "opdaterer til %d:%s\n" | |||
|
1526 | ||||
|
1527 | #, python-format | |||
|
1528 | msgid "merging with %d:%s\n" | |||
|
1529 | msgstr "sammenføjer med %d:%s\n" | |||
|
1530 | ||||
|
1531 | #, python-format | |||
|
1532 | msgid "Automated merge with %s" | |||
|
1533 | msgstr "" | |||
|
1534 | ||||
|
1535 | #, python-format | |||
|
1536 | msgid "new changeset %d:%s merges remote changes with local\n" | |||
|
1537 | msgstr "ny ændring %d:%s fletter fjernændringer sammen med lokale\n" | |||
|
1538 | ||||
|
1539 | msgid "a specific revision you would like to pull" | |||
|
1540 | msgstr "" | |||
|
1541 | ||||
|
1542 | msgid "edit commit message" | |||
|
1543 | msgstr "" | |||
|
1544 | ||||
|
1545 | msgid "edit commit message (DEPRECATED)" | |||
|
1546 | msgstr "" | |||
|
1547 | ||||
|
1548 | msgid "switch parents when merging" | |||
|
1549 | msgstr "" | |||
|
1550 | ||||
|
1551 | msgid "hg fetch [SOURCE]" | |||
|
1552 | msgstr "" | |||
|
1553 | ||||
|
1554 | msgid " returns of the good and bad signatures" | |||
|
1555 | msgstr "" | |||
|
1556 | ||||
|
1557 | msgid "error while verifying signature" | |||
|
1558 | msgstr "" | |||
|
1559 | ||||
|
1560 | msgid "create a new gpg instance" | |||
|
1561 | msgstr "" | |||
|
1562 | ||||
|
1563 | msgid "" | |||
|
1564 | "\n" | |||
|
1565 | " walk over every sigs, yields a couple\n" | |||
|
1566 | " ((node, version, sig), (filename, linenumber))\n" | |||
|
1567 | " " | |||
|
1568 | msgstr "" | |||
|
1569 | ||||
|
1570 | msgid "get the keys who signed a data" | |||
|
1571 | msgstr "" | |||
|
1572 | ||||
|
1573 | #, python-format | |||
|
1574 | msgid "%s Bad signature from \"%s\"\n" | |||
|
1575 | msgstr "" | |||
|
1576 | ||||
|
1577 | #, python-format | |||
|
1578 | msgid "%s Note: Signature has expired (signed by: \"%s\")\n" | |||
|
1579 | msgstr "" | |||
|
1580 | ||||
|
1581 | #, python-format | |||
|
1582 | msgid "%s Note: This key has expired (signed by: \"%s\")\n" | |||
|
1583 | msgstr "" | |||
|
1584 | ||||
|
1585 | msgid "list signed changesets" | |||
|
1586 | msgstr "vis underskrevne ændringer" | |||
|
1587 | ||||
|
1588 | #, python-format | |||
|
1589 | msgid "%s:%d node does not exist\n" | |||
|
1590 | msgstr "%s:%d knude findes ikke\n" | |||
|
1591 | ||||
|
1592 | msgid "verify all the signatures there may be for a particular revision" | |||
|
1593 | msgstr "verificer alle underskrifter der måtte være for en given revision" | |||
|
1594 | ||||
|
1595 | #, python-format | |||
|
1596 | msgid "No valid signature for %s\n" | |||
|
1597 | msgstr "Ingen gyldig signatur for %s\n" | |||
|
1598 | ||||
|
1599 | msgid "associate a string to a key (username, comment)" | |||
|
1600 | msgstr "" | |||
|
1601 | ||||
|
1602 | msgid "" | |||
|
1603 | "add a signature for the current or given revision\n" | |||
|
1604 | "\n" | |||
|
1605 | " If no revision is given, the parent of the working directory is used,\n" | |||
|
1606 | " or tip if no revision is checked out.\n" | |||
|
1607 | "\n" | |||
|
1608 | " See 'hg help dates' for a list of formats valid for -d/--date.\n" | |||
|
1609 | " " | |||
|
1610 | msgstr "" | |||
|
1611 | ||||
|
1612 | msgid "uncommitted merge - please provide a specific revision" | |||
|
1613 | msgstr "" | |||
|
1614 | ||||
|
1615 | msgid "Error while signing" | |||
|
1616 | msgstr "Fejl ved underskrivning" | |||
|
1617 | ||||
|
1618 | msgid "" | |||
|
1619 | "working copy of .hgsigs is changed (please commit .hgsigs manually or use --" | |||
|
1620 | "force)" | |||
|
1621 | msgstr "" | |||
|
1622 | ||||
|
1623 | #, python-format | |||
|
1624 | msgid "Added signature for changeset %s" | |||
|
1625 | msgstr "" | |||
|
1626 | ||||
|
1627 | msgid "map a manifest into some text" | |||
|
1628 | msgstr "" | |||
|
1629 | ||||
|
1630 | msgid "unknown signature version" | |||
|
1631 | msgstr "" | |||
|
1632 | ||||
|
1633 | msgid "make the signature local" | |||
|
1634 | msgstr "" | |||
|
1635 | ||||
|
1636 | msgid "sign even if the sigfile is modified" | |||
|
1637 | msgstr "" | |||
|
1638 | ||||
|
1639 | msgid "do not commit the sigfile after signing" | |||
|
1640 | msgstr "" | |||
|
1641 | ||||
|
1642 | msgid "the key id to sign with" | |||
|
1643 | msgstr "" | |||
|
1644 | ||||
|
1645 | msgid "commit message" | |||
|
1646 | msgstr "" | |||
|
1647 | ||||
|
1648 | msgid "hg sign [OPTION]... [REVISION]..." | |||
|
1649 | msgstr "" | |||
|
1650 | ||||
|
1651 | msgid "hg sigcheck REVISION" | |||
|
1652 | msgstr "" | |||
|
1653 | ||||
|
1654 | msgid "hg sigs" | |||
|
1655 | msgstr "" | |||
|
1656 | ||||
|
1657 | msgid "" | |||
|
1658 | "show revision graphs in terminal windows\n" | |||
|
1659 | "\n" | |||
|
1660 | "This extension adds a --graph option to the incoming, outgoing and log\n" | |||
|
1661 | "commands. When this options is given, an ascii representation of the\n" | |||
|
1662 | "revision graph is also shown.\n" | |||
|
1663 | msgstr "" | |||
|
1664 | ||||
|
1665 | msgid "" | |||
|
1666 | "cset DAG generator yielding (rev, node, [parents]) tuples\n" | |||
|
1667 | "\n" | |||
|
1668 | " This generator function walks through the revision history from " | |||
|
1669 | "revision\n" | |||
|
1670 | " start to revision stop (which must be less than or equal to start).\n" | |||
|
1671 | " " | |||
|
1672 | msgstr "" | |||
|
1673 | ||||
|
1674 | msgid "" | |||
|
1675 | "file cset DAG generator yielding (rev, node, [parents]) tuples\n" | |||
|
1676 | "\n" | |||
|
1677 | " This generator function walks through the revision history of a single\n" | |||
|
1678 | " file from revision start to revision stop (which must be less than or\n" | |||
|
1679 | " equal to start).\n" | |||
|
1680 | " " | |||
|
1681 | msgstr "" | |||
|
1682 | ||||
|
1683 | msgid "" | |||
|
1684 | "grapher for asciigraph on a list of nodes and their parents\n" | |||
|
1685 | "\n" | |||
|
1686 | " nodes must generate tuples (node, parents, char, lines) where\n" | |||
|
1687 | " - parents must generate the parents of node, in sorted order,\n" | |||
|
1688 | " and max length 2,\n" | |||
|
1689 | " - char is the char to print as the node symbol, and\n" | |||
|
1690 | " - lines are the lines to display next to the node.\n" | |||
|
1691 | " " | |||
|
1692 | msgstr "" | |||
|
1693 | ||||
|
1694 | msgid "" | |||
|
1695 | "prints an ASCII graph of the DAG returned by the grapher\n" | |||
|
1696 | "\n" | |||
|
1697 | " grapher is a generator that emits tuples with the following elements:\n" | |||
|
1698 | "\n" | |||
|
1699 | " - Character to use as node's symbol.\n" | |||
|
1700 | " - List of lines to display as the node's text.\n" | |||
|
1701 | " - Column of the current node in the set of ongoing edges.\n" | |||
|
1702 | " - Edges; a list of (col, next_col) indicating the edges between\n" | |||
|
1703 | " the current node and its parents.\n" | |||
|
1704 | " - Number of columns (ongoing edges) in the current revision.\n" | |||
|
1705 | " - The difference between the number of columns (ongoing edges)\n" | |||
|
1706 | " in the next revision and the number of columns (ongoing edges)\n" | |||
|
1707 | " in the current revision. That is: -1 means one column removed;\n" | |||
|
1708 | " 0 means no columns added or removed; 1 means one column added.\n" | |||
|
1709 | " " | |||
|
1710 | msgstr "" | |||
|
1711 | ||||
|
1712 | #, python-format | |||
|
1713 | msgid "--graph option is incompatible with --%s" | |||
|
1714 | msgstr "" | |||
|
1715 | ||||
|
1716 | msgid "" | |||
|
1717 | "show revision history alongside an ASCII revision graph\n" | |||
|
1718 | "\n" | |||
|
1719 | " Print a revision history alongside a revision graph drawn with\n" | |||
|
1720 | " ASCII characters.\n" | |||
|
1721 | "\n" | |||
|
1722 | " Nodes printed as an @ character are parents of the working\n" | |||
|
1723 | " directory.\n" | |||
|
1724 | " " | |||
|
1725 | msgstr "" | |||
|
1726 | ||||
|
1727 | msgid "" | |||
|
1728 | "show the outgoing changesets alongside an ASCII revision graph\n" | |||
|
1729 | "\n" | |||
|
1730 | " Print the outgoing changesets alongside a revision graph drawn with\n" | |||
|
1731 | " ASCII characters.\n" | |||
|
1732 | "\n" | |||
|
1733 | " Nodes printed as an @ character are parents of the working\n" | |||
|
1734 | " directory.\n" | |||
|
1735 | " " | |||
|
1736 | msgstr "" | |||
|
1737 | ||||
|
1738 | #, python-format | |||
|
1739 | msgid "comparing with %s\n" | |||
|
1740 | msgstr "sammenligner med %s\n" | |||
|
1741 | ||||
|
1742 | msgid "no changes found\n" | |||
|
1743 | msgstr "fandt ingen ændringer\n" | |||
|
1744 | ||||
|
1745 | msgid "" | |||
|
1746 | "show the incoming changesets alongside an ASCII revision graph\n" | |||
|
1747 | "\n" | |||
|
1748 | " Print the incoming changesets alongside a revision graph drawn with\n" | |||
|
1749 | " ASCII characters.\n" | |||
|
1750 | "\n" | |||
|
1751 | " Nodes printed as an @ character are parents of the working\n" | |||
|
1752 | " directory.\n" | |||
|
1753 | " " | |||
|
1754 | msgstr "" | |||
|
1755 | ||||
|
1756 | msgid "wrap the command" | |||
|
1757 | msgstr "" | |||
|
1758 | ||||
|
1759 | msgid "show the revision DAG" | |||
|
1760 | msgstr "" | |||
|
1761 | ||||
|
1762 | msgid "limit number of changes displayed" | |||
|
1763 | msgstr "" | |||
|
1764 | ||||
|
1765 | msgid "show patch" | |||
|
1766 | msgstr "" | |||
|
1767 | ||||
|
1768 | msgid "show the specified revision or range" | |||
|
1769 | msgstr "" | |||
|
1770 | ||||
|
1771 | msgid "hg glog [OPTION]... [FILE]" | |||
|
1772 | msgstr "" | |||
|
1773 | ||||
|
1774 | msgid "" | |||
|
1775 | "CIA notification\n" | |||
|
1776 | "\n" | |||
|
1777 | "This is meant to be run as a changegroup or incoming hook.\n" | |||
|
1778 | "To configure it, set the following options in your hgrc:\n" | |||
|
1779 | "\n" | |||
|
1780 | "[cia]\n" | |||
|
1781 | "# your registered CIA user name\n" | |||
|
1782 | "user = foo\n" | |||
|
1783 | "# the name of the project in CIA\n" | |||
|
1784 | "project = foo\n" | |||
|
1785 | "# the module (subproject) (optional)\n" | |||
|
1786 | "#module = foo\n" | |||
|
1787 | "# Append a diffstat to the log message (optional)\n" | |||
|
1788 | "#diffstat = False\n" | |||
|
1789 | "# Template to use for log messages (optional)\n" | |||
|
1790 | "#template = {desc}\n" | |||
|
1791 | "{baseurl}/rev/{node}-- {diffstat}\n" | |||
|
1792 | "# Style to use (optional)\n" | |||
|
1793 | "#style = foo\n" | |||
|
1794 | "# The URL of the CIA notification service (optional)\n" | |||
|
1795 | "# You can use mailto: URLs to send by email, eg\n" | |||
|
1796 | "# mailto:cia@cia.vc\n" | |||
|
1797 | "# Make sure to set email.from if you do this.\n" | |||
|
1798 | "#url = http://cia.vc/\n" | |||
|
1799 | "# print message instead of sending it (optional)\n" | |||
|
1800 | "#test = False\n" | |||
|
1801 | "\n" | |||
|
1802 | "[hooks]\n" | |||
|
1803 | "# one of these:\n" | |||
|
1804 | "changegroup.cia = python:hgcia.hook\n" | |||
|
1805 | "#incoming.cia = python:hgcia.hook\n" | |||
|
1806 | "\n" | |||
|
1807 | "[web]\n" | |||
|
1808 | "# If you want hyperlinks (optional)\n" | |||
|
1809 | "baseurl = http://server/path/to/repo\n" | |||
|
1810 | msgstr "" | |||
|
1811 | ||||
|
1812 | msgid " A CIA message " | |||
|
1813 | msgstr "" | |||
|
1814 | ||||
|
1815 | msgid " CIA notification class " | |||
|
1816 | msgstr "" | |||
|
1817 | ||||
|
1818 | #, python-format | |||
|
1819 | msgid "hgcia: sending update to %s\n" | |||
|
1820 | msgstr "" | |||
|
1821 | ||||
|
1822 | msgid " send CIA notification " | |||
|
1823 | msgstr "" | |||
|
1824 | ||||
|
1825 | msgid "email.from must be defined when sending by email" | |||
|
1826 | msgstr "" | |||
|
1827 | ||||
|
1828 | msgid "cia: no user specified" | |||
|
1829 | msgstr "cia: ingen bruger angivet" | |||
|
1830 | ||||
|
1831 | msgid "cia: no project specified" | |||
|
1832 | msgstr "cia: intet project angivet" | |||
|
1833 | ||||
|
1834 | msgid "" | |||
|
1835 | "browsing the repository in a graphical way\n" | |||
|
1836 | "\n" | |||
|
1837 | "The hgk extension allows browsing the history of a repository in a\n" | |||
|
1838 | "graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is\n" | |||
|
1839 | "not distributed with Mercurial.)\n" | |||
|
1840 | "\n" | |||
|
1841 | "hgk consists of two parts: a Tcl script that does the displaying and\n" | |||
|
1842 | "querying of information, and an extension to mercurial named hgk.py,\n" | |||
|
1843 | "which provides hooks for hgk to get information. hgk can be found in\n" | |||
|
1844 | "the contrib directory, and hgk.py can be found in the hgext directory.\n" | |||
|
1845 | "\n" | |||
|
1846 | "To load the hgext.py extension, add it to your .hgrc file (you have\n" | |||
|
1847 | "to use your global $HOME/.hgrc file, not one in a repository). You\n" | |||
|
1848 | "can specify an absolute path:\n" | |||
|
1849 | "\n" | |||
|
1850 | " [extensions]\n" | |||
|
1851 | " hgk=/usr/local/lib/hgk.py\n" | |||
|
1852 | "\n" | |||
|
1853 | "Mercurial can also scan the default python library path for a file\n" | |||
|
1854 | "named 'hgk.py' if you set hgk empty:\n" | |||
|
1855 | "\n" | |||
|
1856 | " [extensions]\n" | |||
|
1857 | " hgk=\n" | |||
|
1858 | "\n" | |||
|
1859 | "The hg view command will launch the hgk Tcl script. For this command\n" | |||
|
1860 | "to work, hgk must be in your search path. Alternately, you can\n" | |||
|
1861 | "specify the path to hgk in your .hgrc file:\n" | |||
|
1862 | "\n" | |||
|
1863 | " [hgk]\n" | |||
|
1864 | " path=/location/of/hgk\n" | |||
|
1865 | "\n" | |||
|
1866 | "hgk can make use of the extdiff extension to visualize revisions.\n" | |||
|
1867 | "Assuming you had already configured extdiff vdiff command, just add:\n" | |||
|
1868 | "\n" | |||
|
1869 | " [hgk]\n" | |||
|
1870 | " vdiff=vdiff\n" | |||
|
1871 | "\n" | |||
|
1872 | "Revisions context menu will now display additional entries to fire\n" | |||
|
1873 | "vdiff on hovered and selected revisions." | |||
|
1874 | msgstr "" | |||
|
1875 | ||||
|
1876 | msgid "diff trees from two commits" | |||
|
1877 | msgstr "" | |||
|
1878 | ||||
|
1879 | msgid "output common ancestor information" | |||
|
1880 | msgstr "" | |||
|
1881 | ||||
|
1882 | msgid "cat a specific revision" | |||
|
1883 | msgstr "" | |||
|
1884 | ||||
|
1885 | msgid "cat-file: type or revision not supplied\n" | |||
|
1886 | msgstr "" | |||
|
1887 | ||||
|
1888 | msgid "aborting hg cat-file only understands commits\n" | |||
|
1889 | msgstr "" | |||
|
1890 | ||||
|
1891 | msgid "parse given revisions" | |||
|
1892 | msgstr "" | |||
|
1893 | ||||
|
1894 | msgid "print revisions" | |||
|
1895 | msgstr "" | |||
|
1896 | ||||
|
1897 | msgid "print extension options" | |||
|
1898 | msgstr "" | |||
|
1899 | ||||
|
1900 | msgid "start interactive history viewer" | |||
|
1901 | msgstr "" | |||
|
1902 | ||||
|
1903 | msgid "hg view [-l LIMIT] [REVRANGE]" | |||
|
1904 | msgstr "" | |||
|
1905 | ||||
|
1906 | msgid "generate patch" | |||
|
1907 | msgstr "" | |||
|
1908 | ||||
|
1909 | msgid "recursive" | |||
|
1910 | msgstr "" | |||
|
1911 | ||||
|
1912 | msgid "pretty" | |||
|
1913 | msgstr "" | |||
|
1914 | ||||
|
1915 | msgid "stdin" | |||
|
1916 | msgstr "" | |||
|
1917 | ||||
|
1918 | msgid "detect copies" | |||
|
1919 | msgstr "" | |||
|
1920 | ||||
|
1921 | msgid "search" | |||
|
1922 | msgstr "søg" | |||
|
1923 | ||||
|
1924 | msgid "hg git-diff-tree [OPTION]... NODE1 NODE2 [FILE]..." | |||
|
1925 | msgstr "" | |||
|
1926 | ||||
|
1927 | msgid "hg debug-cat-file [OPTION]... TYPE FILE" | |||
|
1928 | msgstr "" | |||
|
1929 | ||||
|
1930 | msgid "hg debug-config" | |||
|
1931 | msgstr "" | |||
|
1932 | ||||
|
1933 | msgid "hg debug-merge-base node node" | |||
|
1934 | msgstr "" | |||
|
1935 | ||||
|
1936 | msgid "ignored" | |||
|
1937 | msgstr "Ignoreret" | |||
|
1938 | ||||
|
1939 | msgid "hg debug-rev-parse REV" | |||
|
1940 | msgstr "" | |||
|
1941 | ||||
|
1942 | msgid "header" | |||
|
1943 | msgstr "" | |||
|
1944 | ||||
|
1945 | msgid "topo-order" | |||
|
1946 | msgstr "" | |||
|
1947 | ||||
|
1948 | msgid "parents" | |||
|
1949 | msgstr "" | |||
|
1950 | ||||
|
1951 | msgid "max-count" | |||
|
1952 | msgstr "" | |||
|
1953 | ||||
|
1954 | msgid "hg debug-rev-list [options] revs" | |||
|
1955 | msgstr "" | |||
|
1956 | ||||
|
1957 | msgid "" | |||
|
1958 | "syntax highlighting in hgweb, based on Pygments\n" | |||
|
1959 | "\n" | |||
|
1960 | "It depends on the pygments syntax highlighting library:\n" | |||
|
1961 | "http://pygments.org/\n" | |||
|
1962 | "\n" | |||
|
1963 | "To enable the extension add this to hgrc:\n" | |||
|
1964 | "\n" | |||
|
1965 | "[extensions]\n" | |||
|
1966 | "hgext.highlight =\n" | |||
|
1967 | "\n" | |||
|
1968 | "There is a single configuration option:\n" | |||
|
1969 | "\n" | |||
|
1970 | "[web]\n" | |||
|
1971 | "pygments_style = <style>\n" | |||
|
1972 | "\n" | |||
|
1973 | "The default is 'colorful'.\n" | |||
|
1974 | "\n" | |||
|
1975 | "-- Adam Hupp <adam@hupp.org>\n" | |||
|
1976 | msgstr "" | |||
|
1977 | ||||
|
1978 | msgid "inotify-based status acceleration for Linux systems\n" | |||
|
1979 | msgstr "" | |||
|
1980 | ||||
|
1981 | msgid "start an inotify server for this repository" | |||
|
1982 | msgstr "" | |||
|
1983 | ||||
|
1984 | msgid "(found dead inotify server socket; removing it)\n" | |||
|
1985 | msgstr "" | |||
|
1986 | ||||
|
1987 | msgid "(starting inotify server)\n" | |||
|
1988 | msgstr "" | |||
|
1989 | ||||
|
1990 | #, python-format | |||
|
1991 | msgid "could not start inotify server: %s\n" | |||
|
1992 | msgstr "" | |||
|
1993 | ||||
|
1994 | #, python-format | |||
|
1995 | msgid "could not talk to new inotify server: %s\n" | |||
|
1996 | msgstr "" | |||
|
1997 | ||||
|
1998 | msgid "(inotify server not running)\n" | |||
|
1999 | msgstr "" | |||
|
2000 | ||||
|
2001 | #, python-format | |||
|
2002 | msgid "failed to contact inotify server: %s\n" | |||
|
2003 | msgstr "" | |||
|
2004 | ||||
|
2005 | msgid "run server in background" | |||
|
2006 | msgstr "" | |||
|
2007 | ||||
|
2008 | msgid "used internally by daemon mode" | |||
|
2009 | msgstr "" | |||
|
2010 | ||||
|
2011 | msgid "minutes to sit idle before exiting" | |||
|
2012 | msgstr "" | |||
|
2013 | ||||
|
2014 | msgid "name of file to write process ID to" | |||
|
2015 | msgstr "" | |||
|
2016 | ||||
|
2017 | msgid "hg inserve [OPT]..." | |||
|
2018 | msgstr "" | |||
|
2019 | ||||
|
2020 | #, python-format | |||
|
2021 | msgid "(inotify: received response from incompatible server version %d)\n" | |||
|
2022 | msgstr "" | |||
|
2023 | ||||
|
2024 | msgid "this system does not seem to support inotify" | |||
|
2025 | msgstr "" | |||
|
2026 | ||||
|
2027 | #, python-format | |||
|
2028 | msgid "*** the current per-user limit on the number of inotify watches is %s\n" | |||
|
2029 | msgstr "" | |||
|
2030 | ||||
|
2031 | msgid "*** this limit is too low to watch every directory in this repository\n" | |||
|
2032 | msgstr "" | |||
|
2033 | ||||
|
2034 | msgid "*** counting directories: " | |||
|
2035 | msgstr "" | |||
|
2036 | ||||
|
2037 | #, python-format | |||
|
2038 | msgid "found %d\n" | |||
|
2039 | msgstr "" | |||
|
2040 | ||||
|
2041 | #, python-format | |||
|
2042 | msgid "*** to raise the limit from %d to %d (run as root):\n" | |||
|
2043 | msgstr "" | |||
|
2044 | ||||
|
2045 | #, python-format | |||
|
2046 | msgid "*** echo %d > %s\n" | |||
|
2047 | msgstr "" | |||
|
2048 | ||||
|
2049 | #, python-format | |||
|
2050 | msgid "cannot watch %s until inotify watch limit is raised" | |||
|
2051 | msgstr "" | |||
|
2052 | ||||
|
2053 | #, python-format | |||
|
2054 | msgid "inotify service not available: %s" | |||
|
2055 | msgstr "" | |||
|
2056 | ||||
|
2057 | #, python-format | |||
|
2058 | msgid "watching %r\n" | |||
|
2059 | msgstr "" | |||
|
2060 | ||||
|
2061 | #, python-format | |||
|
2062 | msgid "watching directories under %r\n" | |||
|
2063 | msgstr "" | |||
|
2064 | ||||
|
2065 | #, python-format | |||
|
2066 | msgid "status: %r dir(%d) -> %s\n" | |||
|
2067 | msgstr "" | |||
|
2068 | ||||
|
2069 | #, python-format | |||
|
2070 | msgid "status: %r %s -> %s\n" | |||
|
2071 | msgstr "" | |||
|
2072 | ||||
|
2073 | #, python-format | |||
|
2074 | msgid "%s dirstate reload\n" | |||
|
2075 | msgstr "" | |||
|
2076 | ||||
|
2077 | #, python-format | |||
|
2078 | msgid "%s end dirstate reload\n" | |||
|
2079 | msgstr "" | |||
|
2080 | ||||
|
2081 | msgid "rescanning due to .hgignore change\n" | |||
|
2082 | msgstr "" | |||
|
2083 | ||||
|
2084 | #, python-format | |||
|
2085 | msgid "%s event: created %s\n" | |||
|
2086 | msgstr "" | |||
|
2087 | ||||
|
2088 | #, python-format | |||
|
2089 | msgid "%s event: deleted %s\n" | |||
|
2090 | msgstr "" | |||
|
2091 | ||||
|
2092 | #, python-format | |||
|
2093 | msgid "%s event: modified %s\n" | |||
|
2094 | msgstr "" | |||
|
2095 | ||||
|
2096 | #, python-format | |||
|
2097 | msgid "filesystem containing %s was unmounted\n" | |||
|
2098 | msgstr "" | |||
|
2099 | ||||
|
2100 | #, python-format | |||
|
2101 | msgid "%s readable: %d bytes\n" | |||
|
2102 | msgstr "" | |||
|
2103 | ||||
|
2104 | #, python-format | |||
|
2105 | msgid "%s below threshold - unhooking\n" | |||
|
2106 | msgstr "" | |||
|
2107 | ||||
|
2108 | #, python-format | |||
|
2109 | msgid "%s reading %d events\n" | |||
|
2110 | msgstr "" | |||
|
2111 | ||||
|
2112 | #, python-format | |||
|
2113 | msgid "%s hooking back up with %d bytes readable\n" | |||
|
2114 | msgstr "" | |||
|
2115 | ||||
|
2116 | #, python-format | |||
|
2117 | msgid "%s processing %d deferred events as %d\n" | |||
|
2118 | msgstr "" | |||
|
2119 | ||||
|
2120 | #, python-format | |||
|
2121 | msgid "could not start server: %s" | |||
|
2122 | msgstr "" | |||
|
2123 | ||||
|
2124 | #, python-format | |||
|
2125 | msgid "received query from incompatible client version %d\n" | |||
|
2126 | msgstr "" | |||
|
2127 | ||||
|
2128 | #, python-format | |||
|
2129 | msgid "answering query for %r\n" | |||
|
2130 | msgstr "" | |||
|
2131 | ||||
|
2132 | msgid "finished setup\n" | |||
|
2133 | msgstr "" | |||
|
2134 | ||||
|
2135 | msgid "polling: no timeout\n" | |||
|
2136 | msgstr "" | |||
|
2137 | ||||
|
2138 | #, python-format | |||
|
2139 | msgid "polling: %sms timeout\n" | |||
|
2140 | msgstr "" | |||
|
2141 | ||||
|
2142 | #, python-format | |||
|
2143 | msgid "interhg: invalid pattern for %s: %s\n" | |||
|
2144 | msgstr "" | |||
|
2145 | ||||
|
2146 | #, python-format | |||
|
2147 | msgid "interhg: invalid regexp for %s: %s\n" | |||
|
2148 | msgstr "" | |||
|
2149 | ||||
|
2150 | msgid "" | |||
|
2151 | "keyword expansion in local repositories\n" | |||
|
2152 | "\n" | |||
|
2153 | "This extension expands RCS/CVS-like or self-customized $Keywords$\n" | |||
|
2154 | "in tracked text files selected by your configuration.\n" | |||
|
2155 | "\n" | |||
|
2156 | "Keywords are only expanded in local repositories and not stored in\n" | |||
|
2157 | "the change history. The mechanism can be regarded as a convenience\n" | |||
|
2158 | "for the current user or for archive distribution.\n" | |||
|
2159 | "\n" | |||
|
2160 | "Configuration is done in the [keyword] and [keywordmaps] sections\n" | |||
|
2161 | "of hgrc files.\n" | |||
|
2162 | "\n" | |||
|
2163 | "Example:\n" | |||
|
2164 | "\n" | |||
|
2165 | " [keyword]\n" | |||
|
2166 | " # expand keywords in every python file except those matching \"x*\"\n" | |||
|
2167 | " **.py =\n" | |||
|
2168 | " x* = ignore\n" | |||
|
2169 | "\n" | |||
|
2170 | "Note: the more specific you are in your filename patterns\n" | |||
|
2171 | " the less you lose speed in huge repos.\n" | |||
|
2172 | "\n" | |||
|
2173 | "For [keywordmaps] template mapping and expansion demonstration and\n" | |||
|
2174 | "control run \"hg kwdemo\".\n" | |||
|
2175 | "\n" | |||
|
2176 | "An additional date template filter {date|utcdate} is provided.\n" | |||
|
2177 | "\n" | |||
|
2178 | "The default template mappings (view with \"hg kwdemo -d\") can be replaced\n" | |||
|
2179 | "with customized keywords and templates.\n" | |||
|
2180 | "Again, run \"hg kwdemo\" to control the results of your config changes.\n" | |||
|
2181 | "\n" | |||
|
2182 | "Before changing/disabling active keywords, run \"hg kwshrink\" to avoid\n" | |||
|
2183 | "the risk of inadvertedly storing expanded keywords in the change history.\n" | |||
|
2184 | "\n" | |||
|
2185 | "To force expansion after enabling it, or a configuration change, run\n" | |||
|
2186 | "\"hg kwexpand\".\n" | |||
|
2187 | "\n" | |||
|
2188 | "Also, when committing with the record extension or using mq's qrecord, be " | |||
|
2189 | "aware\n" | |||
|
2190 | "that keywords cannot be updated. Again, run \"hg kwexpand\" on the files in\n" | |||
|
2191 | "question to update keyword expansions after all changes have been checked " | |||
|
2192 | "in.\n" | |||
|
2193 | "\n" | |||
|
2194 | "Expansions spanning more than one line and incremental expansions,\n" | |||
|
2195 | "like CVS' $Log$, are not supported. A keyword template map\n" | |||
|
2196 | "\"Log = {desc}\" expands to the first line of the changeset description.\n" | |||
|
2197 | msgstr "" | |||
|
2198 | ||||
|
2199 | msgid "Returns hgdate in cvs-like UTC format." | |||
|
2200 | msgstr "" | |||
|
2201 | ||||
|
2202 | msgid "" | |||
|
2203 | "\n" | |||
|
2204 | " Sets up keyword templates, corresponding keyword regex, and\n" | |||
|
2205 | " provides keyword substitution functions.\n" | |||
|
2206 | " " | |||
|
2207 | msgstr "" | |||
|
2208 | ||||
|
2209 | msgid "Replaces keywords in data with expanded template." | |||
|
2210 | msgstr "" | |||
|
2211 | ||||
|
2212 | msgid "Returns data with keywords expanded." | |||
|
2213 | msgstr "" | |||
|
2214 | ||||
|
2215 | msgid "" | |||
|
2216 | "Returns true if path matches [keyword] pattern\n" | |||
|
2217 | " and is not a symbolic link.\n" | |||
|
2218 | " Caveat: localrepository._link fails on Windows." | |||
|
2219 | msgstr "" | |||
|
2220 | ||||
|
2221 | msgid "Overwrites selected files expanding/shrinking keywords." | |||
|
2222 | msgstr "" | |||
|
2223 | ||||
|
2224 | #, python-format | |||
|
2225 | msgid "overwriting %s %s keywords\n" | |||
|
2226 | msgstr "" | |||
|
2227 | ||||
|
2228 | msgid "Unconditionally removes all keyword substitutions from text." | |||
|
2229 | msgstr "" | |||
|
2230 | ||||
|
2231 | msgid "Returns text with all keyword substitutions removed." | |||
|
2232 | msgstr "" | |||
|
2233 | ||||
|
2234 | msgid "Returns lines with keyword substitutions removed." | |||
|
2235 | msgstr "" | |||
|
2236 | ||||
|
2237 | msgid "" | |||
|
2238 | "If in restricted mode returns data read from wdir with\n" | |||
|
2239 | " keyword substitutions removed." | |||
|
2240 | msgstr "" | |||
|
2241 | ||||
|
2242 | msgid "" | |||
|
2243 | "\n" | |||
|
2244 | " Subclass of filelog to hook into its read, add, cmp methods.\n" | |||
|
2245 | " Keywords are \"stored\" unexpanded, and processed on reading.\n" | |||
|
2246 | " " | |||
|
2247 | msgstr "" | |||
|
2248 | ||||
|
2249 | msgid "Expands keywords when reading filelog." | |||
|
2250 | msgstr "" | |||
|
2251 | ||||
|
2252 | msgid "Removes keyword substitutions when adding to filelog." | |||
|
2253 | msgstr "" | |||
|
2254 | ||||
|
2255 | msgid "Removes keyword substitutions for comparison." | |||
|
2256 | msgstr "" | |||
|
2257 | ||||
|
2258 | msgid "" | |||
|
2259 | "Bails out if [keyword] configuration is not active.\n" | |||
|
2260 | " Returns status of working directory." | |||
|
2261 | msgstr "" | |||
|
2262 | ||||
|
2263 | msgid "[keyword] patterns cannot match" | |||
|
2264 | msgstr "" | |||
|
2265 | ||||
|
2266 | msgid "no [keyword] patterns configured" | |||
|
2267 | msgstr "" | |||
|
2268 | ||||
|
2269 | msgid "Selects files and passes them to kwtemplater.overwrite." | |||
|
2270 | msgstr "" | |||
|
2271 | ||||
|
2272 | msgid "" | |||
|
2273 | "print [keywordmaps] configuration and an expansion example\n" | |||
|
2274 | "\n" | |||
|
2275 | " Show current, custom, or default keyword template maps\n" | |||
|
2276 | " and their expansion.\n" | |||
|
2277 | "\n" | |||
|
2278 | " Extend current configuration by specifying maps as arguments\n" | |||
|
2279 | " and optionally by reading from an additional hgrc file.\n" | |||
|
2280 | "\n" | |||
|
2281 | " Override current keyword template maps with \"default\" option.\n" | |||
|
2282 | " " | |||
|
2283 | msgstr "" | |||
|
2284 | ||||
|
2285 | #, python-format | |||
|
2286 | msgid "" | |||
|
2287 | "\n" | |||
|
2288 | "\t%s\n" | |||
|
2289 | msgstr "" | |||
|
2290 | ||||
|
2291 | #, python-format | |||
|
2292 | msgid "creating temporary repo at %s\n" | |||
|
2293 | msgstr "" | |||
|
2294 | ||||
|
2295 | #, python-format | |||
|
2296 | msgid "" | |||
|
2297 | "\n" | |||
|
2298 | "%s keywords written to %s:\n" | |||
|
2299 | msgstr "" | |||
|
2300 | ||||
|
2301 | msgid "unhooked all commit hooks\n" | |||
|
2302 | msgstr "" | |||
|
2303 | ||||
|
2304 | #, python-format | |||
|
2305 | msgid "" | |||
|
2306 | "\n" | |||
|
2307 | "removing temporary repo %s\n" | |||
|
2308 | msgstr "" | |||
|
2309 | ||||
|
2310 | msgid "" | |||
|
2311 | "expand keywords in working directory\n" | |||
|
2312 | "\n" | |||
|
2313 | " Run after (re)enabling keyword expansion.\n" | |||
|
2314 | "\n" | |||
|
2315 | " kwexpand refuses to run if given files contain local changes.\n" | |||
|
2316 | " " | |||
|
2317 | msgstr "" | |||
|
2318 | ||||
|
2319 | msgid "" | |||
|
2320 | "print files currently configured for keyword expansion\n" | |||
|
2321 | "\n" | |||
|
2322 | " Crosscheck which files in working directory are potential targets for\n" | |||
|
2323 | " keyword expansion.\n" | |||
|
2324 | " That is, files matched by [keyword] config patterns but not symlinks.\n" | |||
|
2325 | " " | |||
|
2326 | msgstr "" | |||
|
2327 | ||||
|
2328 | msgid "" | |||
|
2329 | "revert expanded keywords in working directory\n" | |||
|
2330 | "\n" | |||
|
2331 | " Run before changing/disabling active keywords\n" | |||
|
2332 | " or if you experience problems with \"hg import\" or \"hg merge\".\n" | |||
|
2333 | "\n" | |||
|
2334 | " kwshrink refuses to run if given files contain local changes.\n" | |||
|
2335 | " " | |||
|
2336 | msgstr "" | |||
|
2337 | ||||
|
2338 | msgid "" | |||
|
2339 | "Collects [keyword] config in kwtools.\n" | |||
|
2340 | " Monkeypatches dispatch._parse if needed." | |||
|
2341 | msgstr "" | |||
|
2342 | ||||
|
2343 | msgid "Monkeypatch dispatch._parse to obtain running hg command." | |||
|
2344 | msgstr "" | |||
|
2345 | ||||
|
2346 | msgid "" | |||
|
2347 | "Sets up repo as kwrepo for keyword substitution.\n" | |||
|
2348 | " Overrides file method to return kwfilelog instead of filelog\n" | |||
|
2349 | " if file matches user configuration.\n" | |||
|
2350 | " Wraps commit to overwrite configured files with updated\n" | |||
|
2351 | " keyword substitutions.\n" | |||
|
2352 | " Monkeypatches patch and webcommands." | |||
|
2353 | msgstr "" | |||
|
2354 | ||||
|
2355 | msgid "" | |||
|
2356 | "Monkeypatch/wrap patch.patchfile.__init__ to avoid\n" | |||
|
2357 | " rejects or conflicts due to expanded keywords in working dir." | |||
|
2358 | msgstr "" | |||
|
2359 | ||||
|
2360 | msgid "" | |||
|
2361 | "Monkeypatch patch.diff to avoid expansion except when\n" | |||
|
2362 | " comparing against working dir." | |||
|
2363 | msgstr "" | |||
|
2364 | ||||
|
2365 | msgid "Wraps webcommands.x turning off keyword expansion." | |||
|
2366 | msgstr "" | |||
|
2367 | ||||
|
2368 | msgid "show default keyword template maps" | |||
|
2369 | msgstr "" | |||
|
2370 | ||||
|
2371 | msgid "read maps from rcfile" | |||
|
2372 | msgstr "" | |||
|
2373 | ||||
|
2374 | msgid "hg kwdemo [-d] [-f RCFILE] [TEMPLATEMAP]..." | |||
|
2375 | msgstr "" | |||
|
2376 | ||||
|
2377 | msgid "hg kwexpand [OPTION]... [FILE]..." | |||
|
2378 | msgstr "" | |||
|
2379 | ||||
|
2380 | msgid "show keyword status flags of all files" | |||
|
2381 | msgstr "" | |||
|
2382 | ||||
|
2383 | msgid "show files excluded from expansion" | |||
|
2384 | msgstr "" | |||
|
2385 | ||||
|
2386 | msgid "additionally show untracked files" | |||
|
2387 | msgstr "" | |||
|
2388 | ||||
|
2389 | msgid "hg kwfiles [OPTION]... [FILE]..." | |||
|
2390 | msgstr "" | |||
|
2391 | ||||
|
2392 | msgid "hg kwshrink [OPTION]... [FILE]..." | |||
|
2393 | msgstr "" | |||
|
2394 | ||||
|
2395 | msgid "" | |||
|
2396 | "patch management and development\n" | |||
|
2397 | "\n" | |||
|
2398 | "This extension lets you work with a stack of patches in a Mercurial\n" | |||
|
2399 | "repository. It manages two stacks of patches - all known patches, and\n" | |||
|
2400 | "applied patches (subset of known patches).\n" | |||
|
2401 | "\n" | |||
|
2402 | "Known patches are represented as patch files in the .hg/patches\n" | |||
|
2403 | "directory. Applied patches are both patch files and changesets.\n" | |||
|
2404 | "\n" | |||
|
2405 | "Common tasks (use \"hg help command\" for more details):\n" | |||
|
2406 | "\n" | |||
|
2407 | "prepare repository to work with patches qinit\n" | |||
|
2408 | "create new patch qnew\n" | |||
|
2409 | "import existing patch qimport\n" | |||
|
2410 | "\n" | |||
|
2411 | "print patch series qseries\n" | |||
|
2412 | "print applied patches qapplied\n" | |||
|
2413 | "print name of top applied patch qtop\n" | |||
|
2414 | "\n" | |||
|
2415 | "add known patch to applied stack qpush\n" | |||
|
2416 | "remove patch from applied stack qpop\n" | |||
|
2417 | "refresh contents of top applied patch qrefresh\n" | |||
|
2418 | msgstr "" | |||
|
2419 | "udvikling og håndtering af patches\n" | |||
|
2420 | "\n" | |||
|
2421 | "Denne udvidelse lader dig arbejde med en stak af patches i et\n" | |||
|
2422 | "Mercurial repository. Den håndterer to stakke af patches - alle kendte\n" | |||
|
2423 | "patches og alle anvendte patches (en delmængde af de kendte patches).\n" | |||
|
2424 | "\n" | |||
|
2425 | "Kendte patches er repræsenteret som patch-filer i .hg/patches\n" | |||
|
2426 | "biblioteket. Anvendte patches er både patch-filer og Mercurial\n" | |||
|
2427 | "ændringer.\n" | |||
|
2428 | "\n" | |||
|
2429 | "Almindelige opgaver (brug \"hg help kommado\" for flere detaljer):\n" | |||
|
2430 | "\n" | |||
|
2431 | "forbered repository til at arbejde med patches qinit\n" | |||
|
2432 | "opret ny patch qnew\n" | |||
|
2433 | "importer eksisterende patch qimport\n" | |||
|
2434 | "\n" | |||
|
2435 | "list patch-serien qseries\n" | |||
|
2436 | "list anvendte patches qapplied\n" | |||
|
2437 | "list navnet på den øverste patch qtop\n" | |||
|
2438 | "\n" | |||
|
2439 | "anvend og put patch på stakken qpush\n" | |||
|
2440 | "fjern patch fra stakken qpop\n" | |||
|
2441 | "genopfrisk indholdet af den øverste patch qrefresh\n" | |||
|
2442 | ||||
|
2443 | msgid "" | |||
|
2444 | "Update all references to a field in the patch header.\n" | |||
|
2445 | " If none found, add it email style." | |||
|
2446 | msgstr "" | |||
|
2447 | ||||
|
2448 | msgid "" | |||
|
2449 | "Remove existing message, keeping the rest of the comments fields.\n" | |||
|
2450 | " If comments contains 'subject: ', message will prepend\n" | |||
|
2451 | " the field and a blank line." | |||
|
2452 | msgstr "" | |||
|
2453 | ||||
|
2454 | #, python-format | |||
|
2455 | msgid "%s appears more than once in %s" | |||
|
2456 | msgstr "%s findes mere end én gang i %s" | |||
|
2457 | ||||
|
2458 | msgid "guard cannot be an empty string" | |||
|
2459 | msgstr "" | |||
|
2460 | ||||
|
2461 | #, python-format | |||
|
2462 | msgid "guard %r starts with invalid character: %r" | |||
|
2463 | msgstr "" | |||
|
2464 | ||||
|
2465 | #, python-format | |||
|
2466 | msgid "invalid character in guard %r: %r" | |||
|
2467 | msgstr "" | |||
|
2468 | ||||
|
2469 | #, python-format | |||
|
2470 | msgid "active guards: %s\n" | |||
|
2471 | msgstr "" | |||
|
2472 | ||||
|
2473 | #, python-format | |||
|
2474 | msgid "guard %r too short" | |||
|
2475 | msgstr "" | |||
|
2476 | ||||
|
2477 | #, python-format | |||
|
2478 | msgid "guard %r starts with invalid char" | |||
|
2479 | msgstr "" | |||
|
2480 | ||||
|
2481 | #, python-format | |||
|
2482 | msgid "allowing %s - no guards in effect\n" | |||
|
2483 | msgstr "" | |||
|
2484 | ||||
|
2485 | #, python-format | |||
|
2486 | msgid "allowing %s - no matching negative guards\n" | |||
|
2487 | msgstr "" | |||
|
2488 | ||||
|
2489 | #, python-format | |||
|
2490 | msgid "allowing %s - guarded by %r\n" | |||
|
2491 | msgstr "" | |||
|
2492 | ||||
|
2493 | #, python-format | |||
|
2494 | msgid "skipping %s - guarded by %r\n" | |||
|
2495 | msgstr "" | |||
|
2496 | ||||
|
2497 | #, python-format | |||
|
2498 | msgid "skipping %s - no matching guards\n" | |||
|
2499 | msgstr "" | |||
|
2500 | ||||
|
2501 | #, python-format | |||
|
2502 | msgid "error removing undo: %s\n" | |||
|
2503 | msgstr "" | |||
|
2504 | ||||
|
2505 | #, python-format | |||
|
2506 | msgid "apply failed for patch %s" | |||
|
2507 | msgstr "" | |||
|
2508 | ||||
|
2509 | #, python-format | |||
|
2510 | msgid "patch didn't work out, merging %s\n" | |||
|
2511 | msgstr "" | |||
|
2512 | ||||
|
2513 | #, python-format | |||
|
2514 | msgid "update returned %d" | |||
|
2515 | msgstr "" | |||
|
2516 | ||||
|
2517 | msgid "repo commit failed" | |||
|
2518 | msgstr "" | |||
|
2519 | ||||
|
2520 | #, python-format | |||
|
2521 | msgid "unable to read %s" | |||
|
2522 | msgstr "ikke i stand til at læse %s" | |||
|
2523 | ||||
|
2524 | #, python-format | |||
|
2525 | msgid "patch %s does not exist\n" | |||
|
2526 | msgstr "rettelsen %s findes ikke\n" | |||
|
2527 | ||||
|
2528 | #, python-format | |||
|
2529 | msgid "patch %s is not applied\n" | |||
|
2530 | msgstr "rettelsen %s er ikke anvendt\n" | |||
|
2531 | ||||
|
2532 | msgid "" | |||
|
2533 | "Apply patchfile to the working directory.\n" | |||
|
2534 | " patchfile: file name of patch" | |||
|
2535 | msgstr "" | |||
|
2536 | ||||
|
2537 | msgid "patch failed, unable to continue (try -v)\n" | |||
|
2538 | msgstr "" | |||
|
2539 | ||||
|
2540 | #, python-format | |||
|
2541 | msgid "applying %s\n" | |||
|
2542 | msgstr "anvender %s\n" | |||
|
2543 | ||||
|
2544 | #, python-format | |||
|
2545 | msgid "Unable to read %s\n" | |||
|
2546 | msgstr "" | |||
|
2547 | ||||
|
2548 | #, python-format | |||
|
2549 | msgid "imported patch %s\n" | |||
|
2550 | msgstr "importeret rettelse %s\n" | |||
|
2551 | ||||
|
2552 | #, python-format | |||
|
2553 | msgid "" | |||
|
2554 | "\n" | |||
|
2555 | "imported patch %s" | |||
|
2556 | msgstr "" | |||
|
2557 | "\n" | |||
|
2558 | "importeret rettelse %s" | |||
|
2559 | ||||
|
2560 | #, python-format | |||
|
2561 | msgid "patch %s is empty\n" | |||
|
2562 | msgstr "rettelse %s er tom\n" | |||
|
2563 | ||||
|
2564 | msgid "patch failed, rejects left in working dir\n" | |||
|
2565 | msgstr "" | |||
|
2566 | ||||
|
2567 | msgid "fuzz found when applying patch, stopping\n" | |||
|
2568 | msgstr "" | |||
|
2569 | ||||
|
2570 | #, python-format | |||
|
2571 | msgid "revision %d is not managed" | |||
|
2572 | msgstr "" | |||
|
2573 | ||||
|
2574 | #, python-format | |||
|
2575 | msgid "cannot delete revision %d above applied patches" | |||
|
2576 | msgstr "kan ikke slette revision %d ovenover anvendte rettelser" | |||
|
2577 | ||||
|
2578 | msgid "qdelete requires at least one revision or patch name" | |||
|
2579 | msgstr "" | |||
|
2580 | ||||
|
2581 | #, python-format | |||
|
2582 | msgid "cannot delete applied patch %s" | |||
|
2583 | msgstr "kan ikke slette den anvendte rettelse %s" | |||
|
2584 | ||||
|
2585 | #, python-format | |||
|
2586 | msgid "patch %s not in series file" | |||
|
2587 | msgstr "rettelse %s er ikke i series filen" | |||
|
2588 | ||||
|
2589 | msgid "no patches applied" | |||
|
2590 | msgstr "ingen rettelser anvendt" | |||
|
2591 | ||||
|
2592 | msgid "working directory revision is not qtip" | |||
|
2593 | msgstr "" | |||
|
2594 | ||||
|
2595 | msgid "local changes found, refresh first" | |||
|
2596 | msgstr "lokale ændringer fundet, genopfrisk først" | |||
|
2597 | ||||
|
2598 | msgid "local changes found" | |||
|
2599 | msgstr "lokale ændringer fundet" | |||
|
2600 | ||||
|
2601 | #, python-format | |||
|
2602 | msgid "\"%s\" cannot be used as the name of a patch" | |||
|
2603 | msgstr "\"%s\" kan ikke bruges som navnet på en rettelse" | |||
|
2604 | ||||
|
2605 | msgid "" | |||
|
2606 | "options:\n" | |||
|
2607 | " msg: a string or a no-argument function returning a string\n" | |||
|
2608 | " " | |||
|
2609 | msgstr "" | |||
|
2610 | ||||
|
2611 | #, python-format | |||
|
2612 | msgid "patch \"%s\" already exists" | |||
|
2613 | msgstr "rettelsen \"%s\" findes allerede" | |||
|
2614 | ||||
|
2615 | #, python-format | |||
|
2616 | msgid "error unlinking %s\n" | |||
|
2617 | msgstr "fejl ved sletning af %s\n" | |||
|
2618 | ||||
|
2619 | msgid "returns (index, rev, patch)" | |||
|
2620 | msgstr "" | |||
|
2621 | ||||
|
2622 | #, python-format | |||
|
2623 | msgid "patch name \"%s\" is ambiguous:\n" | |||
|
2624 | msgstr "rettelsen \"%s\" er tvetydigt:\n" | |||
|
2625 | ||||
|
2626 | #, python-format | |||
|
2627 | msgid "patch %s not in series" | |||
|
2628 | msgstr "" | |||
|
2629 | ||||
|
2630 | msgid "(working directory not at tip)\n" | |||
|
2631 | msgstr "" | |||
|
2632 | ||||
|
2633 | msgid "no patches in series\n" | |||
|
2634 | msgstr "ingen patches i serien\n" | |||
|
2635 | ||||
|
2636 | #, python-format | |||
|
2637 | msgid "cannot push to a previous patch: %s" | |||
|
2638 | msgstr "" | |||
|
2639 | ||||
|
2640 | #, python-format | |||
|
2641 | msgid "qpush: %s is already at the top\n" | |||
|
2642 | msgstr "" | |||
|
2643 | ||||
|
2644 | #, python-format | |||
|
2645 | msgid "guarded by %r" | |||
|
2646 | msgstr "" | |||
|
2647 | ||||
|
2648 | msgid "no matching guards" | |||
|
2649 | msgstr "" | |||
|
2650 | ||||
|
2651 | #, python-format | |||
|
2652 | msgid "cannot push '%s' - %s\n" | |||
|
2653 | msgstr "kan ikke skubbe '%s' - %s\n" | |||
|
2654 | ||||
|
2655 | msgid "all patches are currently applied\n" | |||
|
2656 | msgstr "alle rettelser er i øjeblikket anvendt\n" | |||
|
2657 | ||||
|
2658 | msgid "patch series already fully applied\n" | |||
|
2659 | msgstr "" | |||
|
2660 | ||||
|
2661 | msgid "cleaning up working directory..." | |||
|
2662 | msgstr "rydder op i arbejdsbiblioteket..." | |||
|
2663 | ||||
|
2664 | #, python-format | |||
|
2665 | msgid "errors during apply, please fix and refresh %s\n" | |||
|
2666 | msgstr "" | |||
|
2667 | ||||
|
2668 | #, python-format | |||
|
2669 | msgid "now at: %s\n" | |||
|
2670 | msgstr "nu ved: %s\n" | |||
|
2671 | ||||
|
2672 | #, python-format | |||
|
2673 | msgid "patch %s is not applied" | |||
|
2674 | msgstr "rettelse %s er ikke anvendt" | |||
|
2675 | ||||
|
2676 | msgid "no patches applied\n" | |||
|
2677 | msgstr "ingen rettelser anvendt\n" | |||
|
2678 | ||||
|
2679 | #, python-format | |||
|
2680 | msgid "qpop: %s is already at the top\n" | |||
|
2681 | msgstr "" | |||
|
2682 | ||||
|
2683 | msgid "qpop: forcing dirstate update\n" | |||
|
2684 | msgstr "" | |||
|
2685 | ||||
|
2686 | #, python-format | |||
|
2687 | msgid "trying to pop unknown node %s" | |||
|
2688 | msgstr "" | |||
|
2689 | ||||
|
2690 | msgid "popping would remove a revision not managed by this patch queue" | |||
|
2691 | msgstr "" | |||
|
2692 | ||||
|
2693 | msgid "deletions found between repo revs" | |||
|
2694 | msgstr "" | |||
|
2695 | ||||
|
2696 | msgid "patch queue now empty\n" | |||
|
2697 | msgstr "rettelseskøen er nu tom\n" | |||
|
2698 | ||||
|
2699 | msgid "cannot refresh a revision with children" | |||
|
2700 | msgstr "" | |||
|
2701 | ||||
|
2702 | msgid "" | |||
|
2703 | "refresh interrupted while patch was popped! (revert --all, qpush to " | |||
|
2704 | "recover)\n" | |||
|
2705 | msgstr "" | |||
|
2706 | ||||
|
2707 | msgid "patch queue directory already exists" | |||
|
2708 | msgstr "" | |||
|
2709 | ||||
|
2710 | #, python-format | |||
|
2711 | msgid "patch %s is not in series file" | |||
|
2712 | msgstr "rettelse %s er ikke i series filen" | |||
|
2713 | ||||
|
2714 | msgid "No saved patch data found\n" | |||
|
2715 | msgstr "" | |||
|
2716 | ||||
|
2717 | #, python-format | |||
|
2718 | msgid "restoring status: %s\n" | |||
|
2719 | msgstr "genopretter status: %s\n" | |||
|
2720 | ||||
|
2721 | msgid "save entry has children, leaving it alone\n" | |||
|
2722 | msgstr "" | |||
|
2723 | ||||
|
2724 | #, python-format | |||
|
2725 | msgid "removing save entry %s\n" | |||
|
2726 | msgstr "" | |||
|
2727 | ||||
|
2728 | #, python-format | |||
|
2729 | msgid "saved queue repository parents: %s %s\n" | |||
|
2730 | msgstr "" | |||
|
2731 | ||||
|
2732 | msgid "queue directory updating\n" | |||
|
2733 | msgstr "" | |||
|
2734 | ||||
|
2735 | msgid "Unable to load queue repository\n" | |||
|
2736 | msgstr "" | |||
|
2737 | ||||
|
2738 | msgid "save: no patches applied, exiting\n" | |||
|
2739 | msgstr "" | |||
|
2740 | ||||
|
2741 | msgid "status is already saved\n" | |||
|
2742 | msgstr "" | |||
|
2743 | ||||
|
2744 | msgid "hg patches saved state" | |||
|
2745 | msgstr "" | |||
|
2746 | ||||
|
2747 | msgid "repo commit failed\n" | |||
|
2748 | msgstr "" | |||
|
2749 | ||||
|
2750 | msgid "" | |||
|
2751 | "If all_patches is False, return the index of the next pushable patch\n" | |||
|
2752 | " in the series, or the series length. If all_patches is True, return " | |||
|
2753 | "the\n" | |||
|
2754 | " index of the first patch past the last applied one.\n" | |||
|
2755 | " " | |||
|
2756 | msgstr "" | |||
|
2757 | ||||
|
2758 | #, python-format | |||
|
2759 | msgid "patch %s is already in the series file" | |||
|
2760 | msgstr "" | |||
|
2761 | ||||
|
2762 | msgid "option \"-r\" not valid when importing files" | |||
|
2763 | msgstr "" | |||
|
2764 | ||||
|
2765 | msgid "option \"-n\" not valid when importing multiple patches" | |||
|
2766 | msgstr "" | |||
|
2767 | ||||
|
2768 | #, python-format | |||
|
2769 | msgid "revision %d is the root of more than one branch" | |||
|
2770 | msgstr "" | |||
|
2771 | ||||
|
2772 | #, python-format | |||
|
2773 | msgid "revision %d is already managed" | |||
|
2774 | msgstr "" | |||
|
2775 | ||||
|
2776 | #, python-format | |||
|
2777 | msgid "revision %d is not the parent of the queue" | |||
|
2778 | msgstr "" | |||
|
2779 | ||||
|
2780 | #, python-format | |||
|
2781 | msgid "revision %d has unmanaged children" | |||
|
2782 | msgstr "" | |||
|
2783 | ||||
|
2784 | #, python-format | |||
|
2785 | msgid "cannot import merge revision %d" | |||
|
2786 | msgstr "" | |||
|
2787 | ||||
|
2788 | #, python-format | |||
|
2789 | msgid "revision %d is not the parent of %d" | |||
|
2790 | msgstr "" | |||
|
2791 | ||||
|
2792 | msgid "-e is incompatible with import from -" | |||
|
2793 | msgstr "" | |||
|
2794 | ||||
|
2795 | #, python-format | |||
|
2796 | msgid "patch %s does not exist" | |||
|
2797 | msgstr "rettelse %s eksisterer ikke" | |||
|
2798 | ||||
|
2799 | msgid "need --name to import a patch from -" | |||
|
2800 | msgstr "" | |||
|
2801 | ||||
|
2802 | #, python-format | |||
|
2803 | msgid "adding %s to series file\n" | |||
|
2804 | msgstr "tilføjer %s til series filen\n" | |||
|
2805 | ||||
|
2806 | msgid "" | |||
|
2807 | "remove patches from queue\n" | |||
|
2808 | "\n" | |||
|
2809 | " The patches must not be applied, unless they are arguments to\n" | |||
|
2810 | " the --rev parameter. At least one patch or revision is required.\n" | |||
|
2811 | "\n" | |||
|
2812 | " With --rev, mq will stop managing the named revisions (converting\n" | |||
|
2813 | " them to regular mercurial changesets). The qfinish command should be\n" | |||
|
2814 | " used as an alternative for qdel -r, as the latter option is deprecated.\n" | |||
|
2815 | "\n" | |||
|
2816 | " With --keep, the patch files are preserved in the patch directory." | |||
|
2817 | msgstr "" | |||
|
2818 | ||||
|
2819 | msgid "print the patches already applied" | |||
|
2820 | msgstr "udskriver rettelserne som allerede er anvendt" | |||
|
2821 | ||||
|
2822 | msgid "print the patches not yet applied" | |||
|
2823 | msgstr "udskriver rettelserne som ikke er anvendt endnu" | |||
|
2824 | ||||
|
2825 | msgid "" | |||
|
2826 | "import a patch\n" | |||
|
2827 | "\n" | |||
|
2828 | " The patch is inserted into the series after the last applied patch.\n" | |||
|
2829 | " If no patches have been applied, qimport prepends the patch\n" | |||
|
2830 | " to the series.\n" | |||
|
2831 | "\n" | |||
|
2832 | " The patch will have the same name as its source file unless you\n" | |||
|
2833 | " give it a new one with --name.\n" | |||
|
2834 | "\n" | |||
|
2835 | " You can register an existing patch inside the patch directory\n" | |||
|
2836 | " with the --existing flag.\n" | |||
|
2837 | "\n" | |||
|
2838 | " With --force, an existing patch of the same name will be overwritten.\n" | |||
|
2839 | "\n" | |||
|
2840 | " An existing changeset may be placed under mq control with --rev\n" | |||
|
2841 | " (e.g. qimport --rev tip -n patch will place tip under mq control).\n" | |||
|
2842 | " With --git, patches imported with --rev will use the git diff\n" | |||
|
2843 | " format. See the diffs help topic for information on why this is\n" | |||
|
2844 | " important for preserving rename/copy information and permission " | |||
|
2845 | "changes.\n" | |||
|
2846 | " " | |||
|
2847 | msgstr "" | |||
|
2848 | ||||
|
2849 | msgid "" | |||
|
2850 | "init a new queue repository\n" | |||
|
2851 | "\n" | |||
|
2852 | " The queue repository is unversioned by default. If -c is\n" | |||
|
2853 | " specified, qinit will create a separate nested repository\n" | |||
|
2854 | " for patches (qinit -c may also be run later to convert\n" | |||
|
2855 | " an unversioned patch repository into a versioned one).\n" | |||
|
2856 | " You can use qcommit to commit changes to this queue repository." | |||
|
2857 | msgstr "" | |||
|
2858 | ||||
|
2859 | msgid "" | |||
|
2860 | "clone main and patch repository at same time\n" | |||
|
2861 | "\n" | |||
|
2862 | " If source is local, destination will have no patches applied. If\n" | |||
|
2863 | " source is remote, this command can not check if patches are\n" | |||
|
2864 | " applied in source, so cannot guarantee that patches are not\n" | |||
|
2865 | " applied in destination. If you clone remote repository, be sure\n" | |||
|
2866 | " before that it has no patches applied.\n" | |||
|
2867 | "\n" | |||
|
2868 | " Source patch repository is looked for in <src>/.hg/patches by\n" | |||
|
2869 | " default. Use -p <url> to change.\n" | |||
|
2870 | "\n" | |||
|
2871 | " The patch directory must be a nested mercurial repository, as\n" | |||
|
2872 | " would be created by qinit -c.\n" | |||
|
2873 | " " | |||
|
2874 | msgstr "" | |||
|
2875 | ||||
|
2876 | msgid "versioned patch repository not found (see qinit -c)" | |||
|
2877 | msgstr "versionsstyret arkiv til rettelser blev ikke fundet (se qinit -c)" | |||
|
2878 | ||||
|
2879 | msgid "cloning main repo\n" | |||
|
2880 | msgstr "kloner hovedarkiv\n" | |||
|
2881 | ||||
|
2882 | msgid "cloning patch repo\n" | |||
|
2883 | msgstr "kloner rettelsesarkiv\n" | |||
|
2884 | ||||
|
2885 | msgid "stripping applied patches from destination repo\n" | |||
|
2886 | msgstr "" | |||
|
2887 | ||||
|
2888 | msgid "updating destination repo\n" | |||
|
2889 | msgstr "" | |||
|
2890 | ||||
|
2891 | msgid "commit changes in the queue repository" | |||
|
2892 | msgstr "" | |||
|
2893 | ||||
|
2894 | msgid "print the entire series file" | |||
|
2895 | msgstr "udskriver hele series filen" | |||
|
2896 | ||||
|
2897 | msgid "print the name of the current patch" | |||
|
2898 | msgstr "udskriver navnet på den nuværende rettelse" | |||
|
2899 | ||||
|
2900 | msgid "print the name of the next patch" | |||
|
2901 | msgstr "udskriver navnet på den næste rettelse" | |||
|
2902 | ||||
|
2903 | msgid "all patches applied\n" | |||
|
2904 | msgstr "alle rettelser er anvendt\n" | |||
|
2905 | ||||
|
2906 | msgid "print the name of the previous patch" | |||
|
2907 | msgstr "udskriver navnet på den forgående rettelse" | |||
|
2908 | ||||
|
2909 | msgid "only one patch applied\n" | |||
|
2910 | msgstr "kun én rettelse er anvendt\n" | |||
|
2911 | ||||
|
2912 | msgid "" | |||
|
2913 | "create a new patch\n" | |||
|
2914 | "\n" | |||
|
2915 | " qnew creates a new patch on top of the currently-applied patch (if " | |||
|
2916 | "any).\n" | |||
|
2917 | " It will refuse to run if there are any outstanding changes unless -f is\n" | |||
|
2918 | " specified, in which case the patch will be initialized with them. You\n" | |||
|
2919 | " may also use -I, -X, and/or a list of files after the patch name to add\n" | |||
|
2920 | " only changes to matching files to the new patch, leaving the rest as\n" | |||
|
2921 | " uncommitted modifications.\n" | |||
|
2922 | "\n" | |||
|
2923 | " -u and -d can be used to set the (given) user and date, respectively.\n" | |||
|
2924 | " -U and -D set user to current user and date to current date.\n" | |||
|
2925 | "\n" | |||
|
2926 | " -e, -m or -l set the patch header as well as the commit message. If " | |||
|
2927 | "none\n" | |||
|
2928 | " is specified, the header is empty and the commit message is '[mq]: " | |||
|
2929 | "PATCH'.\n" | |||
|
2930 | "\n" | |||
|
2931 | " Use the --git option to keep the patch in the git extended diff\n" | |||
|
2932 | " format. Read the diffs help topic for more information on why this\n" | |||
|
2933 | " is important for preserving permission changes and copy/rename\n" | |||
|
2934 | " information.\n" | |||
|
2935 | " " | |||
|
2936 | msgstr "" | |||
|
2937 | ||||
|
2938 | msgid "" | |||
|
2939 | "update the current patch\n" | |||
|
2940 | "\n" | |||
|
2941 | " If any file patterns are provided, the refreshed patch will contain " | |||
|
2942 | "only\n" | |||
|
2943 | " the modifications that match those patterns; the remaining " | |||
|
2944 | "modifications\n" | |||
|
2945 | " will remain in the working directory.\n" | |||
|
2946 | "\n" | |||
|
2947 | " If --short is specified, files currently included in the patch will\n" | |||
|
2948 | " be refreshed just like matched files and remain in the patch.\n" | |||
|
2949 | "\n" | |||
|
2950 | " hg add/remove/copy/rename work as usual, though you might want to use\n" | |||
|
2951 | " git-style patches (--git or [diff] git=1) to track copies and renames.\n" | |||
|
2952 | " See the diffs help topic for more information on the git diff format.\n" | |||
|
2953 | " " | |||
|
2954 | msgstr "" | |||
|
2955 | ||||
|
2956 | msgid "option \"-e\" incompatible with \"-m\" or \"-l\"" | |||
|
2957 | msgstr "" | |||
|
2958 | ||||
|
2959 | msgid "" | |||
|
2960 | "diff of the current patch and subsequent modifications\n" | |||
|
2961 | "\n" | |||
|
2962 | " Shows a diff which includes the current patch as well as any changes " | |||
|
2963 | "which\n" | |||
|
2964 | " have been made in the working directory since the last refresh (thus\n" | |||
|
2965 | " showing what the current patch would become after a qrefresh).\n" | |||
|
2966 | "\n" | |||
|
2967 | " Use 'hg diff' if you only want to see the changes made since the last\n" | |||
|
2968 | " qrefresh, or 'hg export qtip' if you want to see changes made by the\n" | |||
|
2969 | " current patch without including changes made since the qrefresh.\n" | |||
|
2970 | " " | |||
|
2971 | msgstr "" | |||
|
2972 | ||||
|
2973 | msgid "" | |||
|
2974 | "fold the named patches into the current patch\n" | |||
|
2975 | "\n" | |||
|
2976 | " Patches must not yet be applied. Each patch will be successively\n" | |||
|
2977 | " applied to the current patch in the order given. If all the\n" | |||
|
2978 | " patches apply successfully, the current patch will be refreshed\n" | |||
|
2979 | " with the new cumulative patch, and the folded patches will\n" | |||
|
2980 | " be deleted. With -k/--keep, the folded patch files will not\n" | |||
|
2981 | " be removed afterwards.\n" | |||
|
2982 | "\n" | |||
|
2983 | " The header for each folded patch will be concatenated with\n" | |||
|
2984 | " the current patch header, separated by a line of '* * *'." | |||
|
2985 | msgstr "" | |||
|
2986 | ||||
|
2987 | msgid "qfold requires at least one patch name" | |||
|
2988 | msgstr "" | |||
|
2989 | ||||
|
2990 | msgid "No patches applied" | |||
|
2991 | msgstr "Ingen rettelser anvendt" | |||
|
2992 | ||||
|
2993 | #, python-format | |||
|
2994 | msgid "Skipping already folded patch %s" | |||
|
2995 | msgstr "" | |||
|
2996 | ||||
|
2997 | #, python-format | |||
|
2998 | msgid "qfold cannot fold already applied patch %s" | |||
|
2999 | msgstr "" | |||
|
3000 | ||||
|
3001 | #, python-format | |||
|
3002 | msgid "Error folding patch %s" | |||
|
3003 | msgstr "" | |||
|
3004 | ||||
|
3005 | msgid "push or pop patches until named patch is at top of stack" | |||
|
3006 | msgstr "" | |||
|
3007 | ||||
|
3008 | msgid "" | |||
|
3009 | "set or print guards for a patch\n" | |||
|
3010 | "\n" | |||
|
3011 | " Guards control whether a patch can be pushed. A patch with no\n" | |||
|
3012 | " guards is always pushed. A patch with a positive guard (\"+foo\") is\n" | |||
|
3013 | " pushed only if the qselect command has activated it. A patch with\n" | |||
|
3014 | " a negative guard (\"-foo\") is never pushed if the qselect command\n" | |||
|
3015 | " has activated it.\n" | |||
|
3016 | "\n" | |||
|
3017 | " With no arguments, print the currently active guards.\n" | |||
|
3018 | " With arguments, set guards for the named patch.\n" | |||
|
3019 | " NOTE: Specifying negative guards now requires '--'.\n" | |||
|
3020 | "\n" | |||
|
3021 | " To set guards on another patch:\n" | |||
|
3022 | " hg qguard -- other.patch +2.6.17 -stable\n" | |||
|
3023 | " " | |||
|
3024 | msgstr "" | |||
|
3025 | ||||
|
3026 | msgid "cannot mix -l/--list with options or arguments" | |||
|
3027 | msgstr "" | |||
|
3028 | ||||
|
3029 | msgid "no patch to work with" | |||
|
3030 | msgstr "" | |||
|
3031 | ||||
|
3032 | #, python-format | |||
|
3033 | msgid "no patch named %s" | |||
|
3034 | msgstr "ingen patch ved navn %s" | |||
|
3035 | ||||
|
3036 | msgid "print the header of the topmost or specified patch" | |||
|
3037 | msgstr "" | |||
|
3038 | ||||
|
3039 | msgid "" | |||
|
3040 | "push the next patch onto the stack\n" | |||
|
3041 | "\n" | |||
|
3042 | " When --force is applied, all local changes in patched files will be " | |||
|
3043 | "lost.\n" | |||
|
3044 | " " | |||
|
3045 | msgstr "" | |||
|
3046 | ||||
|
3047 | msgid "no saved queues found, please use -n\n" | |||
|
3048 | msgstr "" | |||
|
3049 | ||||
|
3050 | #, python-format | |||
|
3051 | msgid "merging with queue at: %s\n" | |||
|
3052 | msgstr "" | |||
|
3053 | ||||
|
3054 | msgid "" | |||
|
3055 | "pop the current patch off the stack\n" | |||
|
3056 | "\n" | |||
|
3057 | " By default, pops off the top of the patch stack. If given a patch name,\n" | |||
|
3058 | " keeps popping off patches until the named patch is at the top of the " | |||
|
3059 | "stack.\n" | |||
|
3060 | " " | |||
|
3061 | msgstr "" | |||
|
3062 | ||||
|
3063 | #, python-format | |||
|
3064 | msgid "using patch queue: %s\n" | |||
|
3065 | msgstr "" | |||
|
3066 | ||||
|
3067 | msgid "" | |||
|
3068 | "rename a patch\n" | |||
|
3069 | "\n" | |||
|
3070 | " With one argument, renames the current patch to PATCH1.\n" | |||
|
3071 | " With two arguments, renames PATCH1 to PATCH2." | |||
|
3072 | msgstr "" | |||
|
3073 | ||||
|
3074 | #, python-format | |||
|
3075 | msgid "%s already exists" | |||
|
3076 | msgstr "%s eksisterer allerede" | |||
|
3077 | ||||
|
3078 | #, python-format | |||
|
3079 | msgid "A patch named %s already exists in the series file" | |||
|
3080 | msgstr "" | |||
|
3081 | ||||
|
3082 | msgid "restore the queue state saved by a rev" | |||
|
3083 | msgstr "" | |||
|
3084 | ||||
|
3085 | msgid "save current queue state" | |||
|
3086 | msgstr "" | |||
|
3087 | ||||
|
3088 | #, python-format | |||
|
3089 | msgid "destination %s exists and is not a directory" | |||
|
3090 | msgstr "" | |||
|
3091 | ||||
|
3092 | #, python-format | |||
|
3093 | msgid "destination %s exists, use -f to force" | |||
|
3094 | msgstr "" | |||
|
3095 | ||||
|
3096 | #, python-format | |||
|
3097 | msgid "copy %s to %s\n" | |||
|
3098 | msgstr "" | |||
|
3099 | ||||
|
3100 | msgid "" | |||
|
3101 | "strip a revision and all its descendants from the repository\n" | |||
|
3102 | "\n" | |||
|
3103 | " If one of the working dir's parent revisions is stripped, the working\n" | |||
|
3104 | " directory will be updated to the parent of the stripped revision.\n" | |||
|
3105 | " " | |||
|
3106 | msgstr "" | |||
|
3107 | ||||
|
3108 | msgid "" | |||
|
3109 | "set or print guarded patches to push\n" | |||
|
3110 | "\n" | |||
|
3111 | " Use the qguard command to set or print guards on patch, then use\n" | |||
|
3112 | " qselect to tell mq which guards to use. A patch will be pushed if it\n" | |||
|
3113 | " has no guards or any positive guards match the currently selected " | |||
|
3114 | "guard,\n" | |||
|
3115 | " but will not be pushed if any negative guards match the current guard.\n" | |||
|
3116 | " For example:\n" | |||
|
3117 | "\n" | |||
|
3118 | " qguard foo.patch -stable (negative guard)\n" | |||
|
3119 | " qguard bar.patch +stable (positive guard)\n" | |||
|
3120 | " qselect stable\n" | |||
|
3121 | "\n" | |||
|
3122 | " This activates the \"stable\" guard. mq will skip foo.patch (because\n" | |||
|
3123 | " it has a negative match) but push bar.patch (because it\n" | |||
|
3124 | " has a positive match).\n" | |||
|
3125 | "\n" | |||
|
3126 | " With no arguments, prints the currently active guards.\n" | |||
|
3127 | " With one argument, sets the active guard.\n" | |||
|
3128 | "\n" | |||
|
3129 | " Use -n/--none to deactivate guards (no other arguments needed).\n" | |||
|
3130 | " When no guards are active, patches with positive guards are skipped\n" | |||
|
3131 | " and patches with negative guards are pushed.\n" | |||
|
3132 | "\n" | |||
|
3133 | " qselect can change the guards on applied patches. It does not pop\n" | |||
|
3134 | " guarded patches by default. Use --pop to pop back to the last applied\n" | |||
|
3135 | " patch that is not guarded. Use --reapply (which implies --pop) to push\n" | |||
|
3136 | " back to the current patch afterwards, but skip guarded patches.\n" | |||
|
3137 | "\n" | |||
|
3138 | " Use -s/--series to print a list of all guards in the series file (no\n" | |||
|
3139 | " other arguments needed). Use -v for more information." | |||
|
3140 | msgstr "" | |||
|
3141 | ||||
|
3142 | msgid "guards deactivated\n" | |||
|
3143 | msgstr "" | |||
|
3144 | ||||
|
3145 | #, python-format | |||
|
3146 | msgid "number of unguarded, unapplied patches has changed from %d to %d\n" | |||
|
3147 | msgstr "" | |||
|
3148 | ||||
|
3149 | #, python-format | |||
|
3150 | msgid "number of guarded, applied patches has changed from %d to %d\n" | |||
|
3151 | msgstr "" | |||
|
3152 | ||||
|
3153 | msgid "guards in series file:\n" | |||
|
3154 | msgstr "" | |||
|
3155 | ||||
|
3156 | msgid "no guards in series file\n" | |||
|
3157 | msgstr "" | |||
|
3158 | ||||
|
3159 | msgid "active guards:\n" | |||
|
3160 | msgstr "" | |||
|
3161 | ||||
|
3162 | msgid "no active guards\n" | |||
|
3163 | msgstr "" | |||
|
3164 | ||||
|
3165 | msgid "popping guarded patches\n" | |||
|
3166 | msgstr "" | |||
|
3167 | ||||
|
3168 | msgid "reapplying unguarded patches\n" | |||
|
3169 | msgstr "" | |||
|
3170 | ||||
|
3171 | msgid "" | |||
|
3172 | "move applied patches into repository history\n" | |||
|
3173 | "\n" | |||
|
3174 | " Finishes the specified revisions (corresponding to applied patches) by\n" | |||
|
3175 | " moving them out of mq control into regular repository history.\n" | |||
|
3176 | "\n" | |||
|
3177 | " Accepts a revision range or the --applied option. If --applied is\n" | |||
|
3178 | " specified, all applied mq revisions are removed from mq control.\n" | |||
|
3179 | " Otherwise, the given revisions must be at the base of the stack of\n" | |||
|
3180 | " applied patches.\n" | |||
|
3181 | "\n" | |||
|
3182 | " This can be especially useful if your changes have been applied to an\n" | |||
|
3183 | " upstream repository, or if you are about to push your changes to " | |||
|
3184 | "upstream.\n" | |||
|
3185 | " " | |||
|
3186 | msgstr "" | |||
|
3187 | ||||
|
3188 | msgid "no revisions specified" | |||
|
3189 | msgstr "" | |||
|
3190 | ||||
|
3191 | msgid "cannot commit over an applied mq patch" | |||
|
3192 | msgstr "" | |||
|
3193 | ||||
|
3194 | msgid "source has mq patches applied" | |||
|
3195 | msgstr "" | |||
|
3196 | ||||
|
3197 | #, python-format | |||
|
3198 | msgid "mq status file refers to unknown node %s\n" | |||
|
3199 | msgstr "" | |||
|
3200 | ||||
|
3201 | #, python-format | |||
|
3202 | msgid "Tag %s overrides mq patch of the same name\n" | |||
|
3203 | msgstr "" | |||
|
3204 | ||||
|
3205 | msgid "cannot import over an applied patch" | |||
|
3206 | msgstr "" | |||
|
3207 | ||||
|
3208 | msgid "print first line of patch header" | |||
|
3209 | msgstr "" | |||
|
3210 | ||||
|
3211 | msgid "hg qapplied [-s] [PATCH]" | |||
|
3212 | msgstr "" | |||
|
3213 | ||||
|
3214 | msgid "use pull protocol to copy metadata" | |||
|
3215 | msgstr "" | |||
|
3216 | ||||
|
3217 | msgid "do not update the new working directories" | |||
|
3218 | msgstr "" | |||
|
3219 | ||||
|
3220 | msgid "use uncompressed transfer (fast over LAN)" | |||
|
3221 | msgstr "" | |||
|
3222 | ||||
|
3223 | msgid "location of source patch repo" | |||
|
3224 | msgstr "" | |||
|
3225 | ||||
|
3226 | msgid "hg qclone [OPTION]... SOURCE [DEST]" | |||
|
3227 | msgstr "" | |||
|
3228 | ||||
|
3229 | msgid "hg qcommit [OPTION]... [FILE]..." | |||
|
3230 | msgstr "" | |||
|
3231 | ||||
|
3232 | msgid "hg qdiff [OPTION]... [FILE]..." | |||
|
3233 | msgstr "" | |||
|
3234 | ||||
|
3235 | msgid "keep patch file" | |||
|
3236 | msgstr "" | |||
|
3237 | ||||
|
3238 | msgid "stop managing a revision" | |||
|
3239 | msgstr "" | |||
|
3240 | ||||
|
3241 | msgid "hg qdelete [-k] [-r REV]... [PATCH]..." | |||
|
3242 | msgstr "" | |||
|
3243 | ||||
|
3244 | msgid "edit patch header" | |||
|
3245 | msgstr "" | |||
|
3246 | ||||
|
3247 | msgid "keep folded patch files" | |||
|
3248 | msgstr "" | |||
|
3249 | ||||
|
3250 | msgid "hg qfold [-e] [-k] [-m TEXT] [-l FILE] PATCH..." | |||
|
3251 | msgstr "" | |||
|
3252 | ||||
|
3253 | msgid "overwrite any local changes" | |||
|
3254 | msgstr "" | |||
|
3255 | ||||
|
3256 | msgid "hg qgoto [OPTION]... PATCH" | |||
|
3257 | msgstr "" | |||
|
3258 | ||||
|
3259 | msgid "list all patches and guards" | |||
|
3260 | msgstr "" | |||
|
3261 | ||||
|
3262 | msgid "drop all guards" | |||
|
3263 | msgstr "" | |||
|
3264 | ||||
|
3265 | msgid "hg qguard [-l] [-n] -- [PATCH] [+GUARD]... [-GUARD]..." | |||
|
3266 | msgstr "" | |||
|
3267 | ||||
|
3268 | msgid "hg qheader [PATCH]" | |||
|
3269 | msgstr "" | |||
|
3270 | ||||
|
3271 | msgid "import file in patch dir" | |||
|
3272 | msgstr "" | |||
|
3273 | ||||
|
3274 | msgid "patch file name" | |||
|
3275 | msgstr "patch navn" | |||
|
3276 | ||||
|
3277 | msgid "overwrite existing files" | |||
|
3278 | msgstr "" | |||
|
3279 | ||||
|
3280 | msgid "place existing revisions under mq control" | |||
|
3281 | msgstr "" | |||
|
3282 | ||||
|
3283 | msgid "use git extended diff format" | |||
|
3284 | msgstr "" | |||
|
3285 | ||||
|
3286 | msgid "hg qimport [-e] [-n NAME] [-f] [-g] [-r REV]... FILE..." | |||
|
3287 | msgstr "" | |||
|
3288 | ||||
|
3289 | msgid "create queue repository" | |||
|
3290 | msgstr "opret kø-repository" | |||
|
3291 | ||||
|
3292 | msgid "hg qinit [-c]" | |||
|
3293 | msgstr "" | |||
|
3294 | ||||
|
3295 | msgid "import uncommitted changes into patch" | |||
|
3296 | msgstr "" | |||
|
3297 | ||||
|
3298 | msgid "add \"From: <current user>\" to patch" | |||
|
3299 | msgstr "" | |||
|
3300 | ||||
|
3301 | msgid "add \"From: <given user>\" to patch" | |||
|
3302 | msgstr "" | |||
|
3303 | ||||
|
3304 | msgid "add \"Date: <current date>\" to patch" | |||
|
3305 | msgstr "" | |||
|
3306 | ||||
|
3307 | msgid "add \"Date: <given date>\" to patch" | |||
|
3308 | msgstr "" | |||
|
3309 | ||||
|
3310 | msgid "hg qnew [-e] [-m TEXT] [-l FILE] [-f] PATCH [FILE]..." | |||
|
3311 | msgstr "" | |||
|
3312 | ||||
|
3313 | msgid "hg qnext [-s]" | |||
|
3314 | msgstr "" | |||
|
3315 | ||||
|
3316 | msgid "hg qprev [-s]" | |||
|
3317 | msgstr "" | |||
|
3318 | ||||
|
3319 | msgid "pop all patches" | |||
|
3320 | msgstr "" | |||
|
3321 | ||||
|
3322 | msgid "queue name to pop" | |||
|
3323 | msgstr "" | |||
|
3324 | ||||
|
3325 | msgid "forget any local changes" | |||
|
3326 | msgstr "" | |||
|
3327 | ||||
|
3328 | msgid "hg qpop [-a] [-n NAME] [-f] [PATCH | INDEX]" | |||
|
3329 | msgstr "" | |||
|
3330 | ||||
|
3331 | msgid "apply if the patch has rejects" | |||
|
3332 | msgstr "" | |||
|
3333 | ||||
|
3334 | msgid "list patch name in commit text" | |||
|
3335 | msgstr "" | |||
|
3336 | ||||
|
3337 | msgid "apply all patches" | |||
|
3338 | msgstr "" | |||
|
3339 | ||||
|
3340 | msgid "merge from another queue" | |||
|
3341 | msgstr "" | |||
|
3342 | ||||
|
3343 | msgid "merge queue name" | |||
|
3344 | msgstr "" | |||
|
3345 | ||||
|
3346 | msgid "hg qpush [-f] [-l] [-a] [-m] [-n NAME] [PATCH | INDEX]" | |||
|
3347 | msgstr "" | |||
|
3348 | ||||
|
3349 | msgid "refresh only files already in the patch and specified files" | |||
|
3350 | msgstr "" | |||
|
3351 | ||||
|
3352 | msgid "add/update \"From: <current user>\" in patch" | |||
|
3353 | msgstr "" | |||
|
3354 | ||||
|
3355 | msgid "add/update \"From: <given user>\" in patch" | |||
|
3356 | msgstr "" | |||
|
3357 | ||||
|
3358 | msgid "update \"Date: <current date>\" in patch (if present)" | |||
|
3359 | msgstr "" | |||
|
3360 | ||||
|
3361 | msgid "update \"Date: <given date>\" in patch (if present)" | |||
|
3362 | msgstr "" | |||
|
3363 | ||||
|
3364 | msgid "hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FILE] [-s] [FILE]..." | |||
|
3365 | msgstr "" | |||
|
3366 | ||||
|
3367 | msgid "hg qrename PATCH1 [PATCH2]" | |||
|
3368 | msgstr "" | |||
|
3369 | ||||
|
3370 | msgid "delete save entry" | |||
|
3371 | msgstr "" | |||
|
3372 | ||||
|
3373 | msgid "update queue working dir" | |||
|
3374 | msgstr "" | |||
|
3375 | ||||
|
3376 | msgid "hg qrestore [-d] [-u] REV" | |||
|
3377 | msgstr "" | |||
|
3378 | ||||
|
3379 | msgid "copy patch directory" | |||
|
3380 | msgstr "" | |||
|
3381 | ||||
|
3382 | msgid "copy directory name" | |||
|
3383 | msgstr "" | |||
|
3384 | ||||
|
3385 | msgid "clear queue status file" | |||
|
3386 | msgstr "" | |||
|
3387 | ||||
|
3388 | msgid "force copy" | |||
|
3389 | msgstr "" | |||
|
3390 | ||||
|
3391 | msgid "hg qsave [-m TEXT] [-l FILE] [-c] [-n NAME] [-e] [-f]" | |||
|
3392 | msgstr "" | |||
|
3393 | ||||
|
3394 | msgid "disable all guards" | |||
|
3395 | msgstr "" | |||
|
3396 | ||||
|
3397 | msgid "list all guards in series file" | |||
|
3398 | msgstr "" | |||
|
3399 | ||||
|
3400 | msgid "pop to before first guarded applied patch" | |||
|
3401 | msgstr "" | |||
|
3402 | ||||
|
3403 | msgid "pop, then reapply patches" | |||
|
3404 | msgstr "" | |||
|
3405 | ||||
|
3406 | msgid "hg qselect [OPTION]... [GUARD]..." | |||
|
3407 | msgstr "" | |||
|
3408 | ||||
|
3409 | msgid "print patches not in series" | |||
|
3410 | msgstr "" | |||
|
3411 | ||||
|
3412 | msgid "hg qseries [-ms]" | |||
|
3413 | msgstr "" | |||
|
3414 | ||||
|
3415 | msgid "force removal with local changes" | |||
|
3416 | msgstr "" | |||
|
3417 | ||||
|
3418 | msgid "bundle unrelated changesets" | |||
|
3419 | msgstr "" | |||
|
3420 | ||||
|
3421 | msgid "no backups" | |||
|
3422 | msgstr "" | |||
|
3423 | ||||
|
3424 | msgid "hg strip [-f] [-b] [-n] REV" | |||
|
3425 | msgstr "" | |||
|
3426 | ||||
|
3427 | msgid "hg qtop [-s]" | |||
|
3428 | msgstr "" | |||
|
3429 | ||||
|
3430 | msgid "hg qunapplied [-s] [PATCH]" | |||
|
3431 | msgstr "" | |||
|
3432 | ||||
|
3433 | msgid "finish all applied changesets" | |||
|
3434 | msgstr "afslut alle anvendte ændringer" | |||
|
3435 | ||||
|
3436 | msgid "hg qfinish [-a] [REV...]" | |||
|
3437 | msgstr "hg qfinish [-a] [REV...]" | |||
|
3438 | ||||
|
3439 | msgid "" | |||
|
3440 | "hook extension to email notifications on commits/pushes\n" | |||
|
3441 | "\n" | |||
|
3442 | "Subscriptions can be managed through hgrc. Default mode is to print\n" | |||
|
3443 | "messages to stdout, for testing and configuring.\n" | |||
|
3444 | "\n" | |||
|
3445 | "To use, configure notify extension and enable in hgrc like this:\n" | |||
|
3446 | "\n" | |||
|
3447 | " [extensions]\n" | |||
|
3448 | " hgext.notify =\n" | |||
|
3449 | "\n" | |||
|
3450 | " [hooks]\n" | |||
|
3451 | " # one email for each incoming changeset\n" | |||
|
3452 | " incoming.notify = python:hgext.notify.hook\n" | |||
|
3453 | " # batch emails when many changesets incoming at one time\n" | |||
|
3454 | " changegroup.notify = python:hgext.notify.hook\n" | |||
|
3455 | "\n" | |||
|
3456 | " [notify]\n" | |||
|
3457 | " # config items go in here\n" | |||
|
3458 | "\n" | |||
|
3459 | " config items:\n" | |||
|
3460 | "\n" | |||
|
3461 | " REQUIRED:\n" | |||
|
3462 | " config = /path/to/file # file containing subscriptions\n" | |||
|
3463 | "\n" | |||
|
3464 | " OPTIONAL:\n" | |||
|
3465 | " test = True # print messages to stdout for testing\n" | |||
|
3466 | " strip = 3 # number of slashes to strip for url paths\n" | |||
|
3467 | " domain = example.com # domain to use if committer missing domain\n" | |||
|
3468 | " style = ... # style file to use when formatting email\n" | |||
|
3469 | " template = ... # template to use when formatting email\n" | |||
|
3470 | " incoming = ... # template to use when run as incoming hook\n" | |||
|
3471 | " changegroup = ... # template when run as changegroup hook\n" | |||
|
3472 | " maxdiff = 300 # max lines of diffs to include (0=none, -1=all)\n" | |||
|
3473 | " maxsubject = 67 # truncate subject line longer than this\n" | |||
|
3474 | " diffstat = True # add a diffstat before the diff content\n" | |||
|
3475 | " sources = serve # notify if source of incoming changes in this " | |||
|
3476 | "list\n" | |||
|
3477 | " # (serve == ssh or http, push, pull, bundle)\n" | |||
|
3478 | " [email]\n" | |||
|
3479 | " from = user@host.com # email address to send as if none given\n" | |||
|
3480 | " [web]\n" | |||
|
3481 | " baseurl = http://hgserver/... # root of hg web site for browsing commits\n" | |||
|
3482 | "\n" | |||
|
3483 | " notify config file has same format as regular hgrc. it has two\n" | |||
|
3484 | " sections so you can express subscriptions in whatever way is handier\n" | |||
|
3485 | " for you.\n" | |||
|
3486 | "\n" | |||
|
3487 | " [usersubs]\n" | |||
|
3488 | " # key is subscriber email, value is \",\"-separated list of glob " | |||
|
3489 | "patterns\n" | |||
|
3490 | " user@host = pattern\n" | |||
|
3491 | "\n" | |||
|
3492 | " [reposubs]\n" | |||
|
3493 | " # key is glob pattern, value is \",\"-separated list of subscriber " | |||
|
3494 | "emails\n" | |||
|
3495 | " pattern = user@host\n" | |||
|
3496 | "\n" | |||
|
3497 | " glob patterns are matched against path to repo root.\n" | |||
|
3498 | "\n" | |||
|
3499 | " if you like, you can put notify config file in repo that users can\n" | |||
|
3500 | " push changes to, they can manage their own subscriptions." | |||
|
3501 | msgstr "" | |||
|
3502 | ||||
|
3503 | msgid "email notification class." | |||
|
3504 | msgstr "" | |||
|
3505 | ||||
|
3506 | msgid "strip leading slashes from local path, turn into web-safe path." | |||
|
3507 | msgstr "" | |||
|
3508 | ||||
|
3509 | msgid "try to clean up email addresses." | |||
|
3510 | msgstr "" | |||
|
3511 | ||||
|
3512 | msgid "return list of email addresses of subscribers to this repo." | |||
|
3513 | msgstr "" | |||
|
3514 | ||||
|
3515 | msgid "format one changeset." | |||
|
3516 | msgstr "" | |||
|
3517 | ||||
|
3518 | msgid "true if incoming changes from this source should be skipped." | |||
|
3519 | msgstr "" | |||
|
3520 | ||||
|
3521 | msgid "send message." | |||
|
3522 | msgstr "" | |||
|
3523 | ||||
|
3524 | #, python-format | |||
|
3525 | msgid "%s: %d new changesets" | |||
|
3526 | msgstr "%s: %d nye ændringer" | |||
|
3527 | ||||
|
3528 | #, python-format | |||
|
3529 | msgid "notify: sending %d subscribers %d changes\n" | |||
|
3530 | msgstr "notify: sender %d abonnenter %d ændringer\n" | |||
|
3531 | ||||
|
3532 | #, python-format | |||
|
3533 | msgid "" | |||
|
3534 | "\n" | |||
|
3535 | "diffs (truncated from %d to %d lines):\n" | |||
|
3536 | "\n" | |||
|
3537 | msgstr "" | |||
|
3538 | ||||
|
3539 | #, python-format | |||
|
3540 | msgid "" | |||
|
3541 | "\n" | |||
|
3542 | "diffs (%d lines):\n" | |||
|
3543 | "\n" | |||
|
3544 | msgstr "" | |||
|
3545 | ||||
|
3546 | msgid "" | |||
|
3547 | "send email notifications to interested subscribers.\n" | |||
|
3548 | "\n" | |||
|
3549 | " if used as changegroup hook, send one email for all changesets in\n" | |||
|
3550 | " changegroup. else send one email per changeset." | |||
|
3551 | msgstr "" | |||
|
3552 | ||||
|
3553 | #, python-format | |||
|
3554 | msgid "notify: no subscribers to repo %s\n" | |||
|
3555 | msgstr "" | |||
|
3556 | ||||
|
3557 | #, python-format | |||
|
3558 | msgid "notify: changes have source \"%s\" - skipping\n" | |||
|
3559 | msgstr "" | |||
|
3560 | ||||
|
3561 | msgid "" | |||
|
3562 | "browse command output with external pager\n" | |||
|
3563 | "\n" | |||
|
3564 | "To set the pager that should be used, set the application variable:\n" | |||
|
3565 | "\n" | |||
|
3566 | " [pager]\n" | |||
|
3567 | " pager = LESS='FSRX' less\n" | |||
|
3568 | "\n" | |||
|
3569 | "If no pager is set, the pager extensions uses the environment\n" | |||
|
3570 | "variable $PAGER. If neither pager.pager, nor $PAGER is set, no pager\n" | |||
|
3571 | "is used.\n" | |||
|
3572 | "\n" | |||
|
3573 | "If you notice \"BROKEN PIPE\" error messages, you can disable them\n" | |||
|
3574 | "by setting:\n" | |||
|
3575 | "\n" | |||
|
3576 | " [pager]\n" | |||
|
3577 | " quiet = True\n" | |||
|
3578 | "\n" | |||
|
3579 | "You can disable the pager for certain commands by adding them to the\n" | |||
|
3580 | "pager.ignore list:\n" | |||
|
3581 | "\n" | |||
|
3582 | " [pager]\n" | |||
|
3583 | " ignore = version, help, update\n" | |||
|
3584 | "\n" | |||
|
3585 | "You can also enable the pager only for certain commands using pager.attend:\n" | |||
|
3586 | "\n" | |||
|
3587 | " [pager]\n" | |||
|
3588 | " attend = log\n" | |||
|
3589 | "\n" | |||
|
3590 | "If pager.attend is present, pager.ignore will be ignored.\n" | |||
|
3591 | "\n" | |||
|
3592 | "To ignore global commands like \"hg version\" or \"hg help\", you have to " | |||
|
3593 | "specify\n" | |||
|
3594 | "them in the global .hgrc\n" | |||
|
3595 | msgstr "" | |||
|
3596 | ||||
|
3597 | msgid "" | |||
|
3598 | "use suffixes to refer to ancestor revisions\n" | |||
|
3599 | "\n" | |||
|
3600 | "This extension allows you to use git-style suffixes to refer to\n" | |||
|
3601 | "the ancestors of a specific revision.\n" | |||
|
3602 | "\n" | |||
|
3603 | "For example, if you can refer to a revision as \"foo\", then:\n" | |||
|
3604 | "\n" | |||
|
3605 | "- foo^N = Nth parent of foo:\n" | |||
|
3606 | " foo^0 = foo\n" | |||
|
3607 | " foo^1 = first parent of foo\n" | |||
|
3608 | " foo^2 = second parent of foo\n" | |||
|
3609 | " foo^ = foo^1\n" | |||
|
3610 | "\n" | |||
|
3611 | "- foo~N = Nth first grandparent of foo\n" | |||
|
3612 | " foo~0 = foo\n" | |||
|
3613 | " foo~1 = foo^1 = foo^ = first parent of foo\n" | |||
|
3614 | " foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo\n" | |||
|
3615 | msgstr "" | |||
|
3616 | ||||
|
3617 | msgid "" | |||
|
3618 | "sending Mercurial changesets as a series of patch emails\n" | |||
|
3619 | "\n" | |||
|
3620 | "The series is started off with a \"[PATCH 0 of N]\" introduction,\n" | |||
|
3621 | "which describes the series as a whole.\n" | |||
|
3622 | "\n" | |||
|
3623 | "Each patch email has a Subject line of \"[PATCH M of N] ...\", using\n" | |||
|
3624 | "the first line of the changeset description as the subject text.\n" | |||
|
3625 | "The message contains two or three body parts:\n" | |||
|
3626 | "\n" | |||
|
3627 | " The remainder of the changeset description.\n" | |||
|
3628 | "\n" | |||
|
3629 | " [Optional] The result of running diffstat on the patch.\n" | |||
|
3630 | "\n" | |||
|
3631 | " The patch itself, as generated by \"hg export\".\n" | |||
|
3632 | "\n" | |||
|
3633 | "Each message refers to all of its predecessors using the In-Reply-To\n" | |||
|
3634 | "and References headers, so they will show up as a sequence in\n" | |||
|
3635 | "threaded mail and news readers, and in mail archives.\n" | |||
|
3636 | "\n" | |||
|
3637 | "For each changeset, you will be prompted with a diffstat summary and\n" | |||
|
3638 | "the changeset summary, so you can be sure you are sending the right " | |||
|
3639 | "changes.\n" | |||
|
3640 | "\n" | |||
|
3641 | "To enable this extension:\n" | |||
|
3642 | "\n" | |||
|
3643 | " [extensions]\n" | |||
|
3644 | " hgext.patchbomb =\n" | |||
|
3645 | "\n" | |||
|
3646 | "To configure other defaults, add a section like this to your hgrc file:\n" | |||
|
3647 | "\n" | |||
|
3648 | " [email]\n" | |||
|
3649 | " from = My Name <my@email>\n" | |||
|
3650 | " to = recipient1, recipient2, ...\n" | |||
|
3651 | " cc = cc1, cc2, ...\n" | |||
|
3652 | " bcc = bcc1, bcc2, ...\n" | |||
|
3653 | "\n" | |||
|
3654 | "Then you can use the \"hg email\" command to mail a series of changesets\n" | |||
|
3655 | "as a patchbomb.\n" | |||
|
3656 | "\n" | |||
|
3657 | "To avoid sending patches prematurely, it is a good idea to first run\n" | |||
|
3658 | "the \"email\" command with the \"-n\" option (test only). You will be\n" | |||
|
3659 | "prompted for an email recipient address, a subject an an introductory\n" | |||
|
3660 | "message describing the patches of your patchbomb. Then when all is\n" | |||
|
3661 | "done, patchbomb messages are displayed. If PAGER environment variable\n" | |||
|
3662 | "is set, your pager will be fired up once for each patchbomb message, so\n" | |||
|
3663 | "you can verify everything is alright.\n" | |||
|
3664 | "\n" | |||
|
3665 | "The \"-m\" (mbox) option is also very useful. Instead of previewing\n" | |||
|
3666 | "each patchbomb message in a pager or sending the messages directly,\n" | |||
|
3667 | "it will create a UNIX mailbox file with the patch emails. This\n" | |||
|
3668 | "mailbox file can be previewed with any mail user agent which supports\n" | |||
|
3669 | "UNIX mbox files, i.e. with mutt:\n" | |||
|
3670 | "\n" | |||
|
3671 | " % mutt -R -f mbox\n" | |||
|
3672 | "\n" | |||
|
3673 | "When you are previewing the patchbomb messages, you can use `formail'\n" | |||
|
3674 | "(a utility that is commonly installed as part of the procmail package),\n" | |||
|
3675 | "to send each message out:\n" | |||
|
3676 | "\n" | |||
|
3677 | " % formail -s sendmail -bm -t < mbox\n" | |||
|
3678 | "\n" | |||
|
3679 | "That should be all. Now your patchbomb is on its way out.\n" | |||
|
3680 | "\n" | |||
|
3681 | "You can also either configure the method option in the email section\n" | |||
|
3682 | "to be a sendmail compatable mailer or fill out the [smtp] section so\n" | |||
|
3683 | "that the patchbomb extension can automatically send patchbombs directly\n" | |||
|
3684 | "from the commandline. See the [email] and [smtp] sections in hgrc(5)\n" | |||
|
3685 | "for details." | |||
|
3686 | msgstr "" | |||
|
3687 | ||||
|
3688 | msgid "Please enter a valid value.\n" | |||
|
3689 | msgstr "" | |||
|
3690 | ||||
|
3691 | msgid "does the diffstat above look okay? " | |||
|
3692 | msgstr "" | |||
|
3693 | ||||
|
3694 | msgid "diffstat rejected" | |||
|
3695 | msgstr "diffstat afvist" | |||
|
3696 | ||||
|
3697 | msgid "" | |||
|
3698 | "send changesets by email\n" | |||
|
3699 | "\n" | |||
|
3700 | " By default, diffs are sent in the format generated by hg export,\n" | |||
|
3701 | " one per message. The series starts with a \"[PATCH 0 of N]\"\n" | |||
|
3702 | " introduction, which describes the series as a whole.\n" | |||
|
3703 | "\n" | |||
|
3704 | " Each patch email has a Subject line of \"[PATCH M of N] ...\", using\n" | |||
|
3705 | " the first line of the changeset description as the subject text.\n" | |||
|
3706 | " The message contains two or three body parts. First, the rest of\n" | |||
|
3707 | " the changeset description. Next, (optionally) if the diffstat\n" | |||
|
3708 | " program is installed, the result of running diffstat on the patch.\n" | |||
|
3709 | " Finally, the patch itself, as generated by \"hg export\".\n" | |||
|
3710 | "\n" | |||
|
3711 | " With --outgoing, emails will be generated for patches not\n" | |||
|
3712 | " found in the destination repository (or only those which are\n" | |||
|
3713 | " ancestors of the specified revisions if any are provided)\n" | |||
|
3714 | "\n" | |||
|
3715 | " With --bundle, changesets are selected as for --outgoing,\n" | |||
|
3716 | " but a single email containing a binary Mercurial bundle as an\n" | |||
|
3717 | " attachment will be sent.\n" | |||
|
3718 | "\n" | |||
|
3719 | " Examples:\n" | |||
|
3720 | "\n" | |||
|
3721 | " hg email -r 3000 # send patch 3000 only\n" | |||
|
3722 | " hg email -r 3000 -r 3001 # send patches 3000 and 3001\n" | |||
|
3723 | " hg email -r 3000:3005 # send patches 3000 through 3005\n" | |||
|
3724 | " hg email 3000 # send patch 3000 (deprecated)\n" | |||
|
3725 | "\n" | |||
|
3726 | " hg email -o # send all patches not in default\n" | |||
|
3727 | " hg email -o DEST # send all patches not in DEST\n" | |||
|
3728 | " hg email -o -r 3000 # send all ancestors of 3000 not in default\n" | |||
|
3729 | " hg email -o -r 3000 DEST # send all ancestors of 3000 not in DEST\n" | |||
|
3730 | "\n" | |||
|
3731 | " hg email -b # send bundle of all patches not in default\n" | |||
|
3732 | " hg email -b DEST # send bundle of all patches not in DEST\n" | |||
|
3733 | " hg email -b -r 3000 # bundle of all ancestors of 3000 not in " | |||
|
3734 | "default\n" | |||
|
3735 | " hg email -b -r 3000 DEST # bundle of all ancestors of 3000 not in DEST\n" | |||
|
3736 | "\n" | |||
|
3737 | " Before using this command, you will need to enable email in your hgrc.\n" | |||
|
3738 | " See the [email] section in hgrc(5) for details.\n" | |||
|
3739 | " " | |||
|
3740 | msgstr "" | |||
|
3741 | ||||
|
3742 | msgid "Return the revisions present locally but not in dest" | |||
|
3743 | msgstr "" | |||
|
3744 | ||||
|
3745 | msgid "specify at least one changeset with -r or -o" | |||
|
3746 | msgstr "angiv mindst en ændring med -r eller -o" | |||
|
3747 | ||||
|
3748 | msgid "--outgoing mode always on with --bundle; do not re-specify --outgoing" | |||
|
3749 | msgstr "" | |||
|
3750 | ||||
|
3751 | msgid "too many destinations" | |||
|
3752 | msgstr "for mange destinationer" | |||
|
3753 | ||||
|
3754 | msgid "use only one form to specify the revision" | |||
|
3755 | msgstr "" | |||
|
3756 | ||||
|
3757 | msgid "" | |||
|
3758 | "\n" | |||
|
3759 | "Write the introductory message for the patch series.\n" | |||
|
3760 | "\n" | |||
|
3761 | msgstr "" | |||
|
3762 | ||||
|
3763 | #, python-format | |||
|
3764 | msgid "" | |||
|
3765 | "This patch series consists of %d patches.\n" | |||
|
3766 | "\n" | |||
|
3767 | msgstr "" | |||
|
3768 | ||||
|
3769 | msgid "Final summary:\n" | |||
|
3770 | msgstr "" | |||
|
3771 | ||||
|
3772 | msgid "Displaying " | |||
|
3773 | msgstr "" | |||
|
3774 | ||||
|
3775 | msgid "Writing " | |||
|
3776 | msgstr "" | |||
|
3777 | ||||
|
3778 | msgid "Sending " | |||
|
3779 | msgstr "" | |||
|
3780 | ||||
|
3781 | msgid "send patches as attachments" | |||
|
3782 | msgstr "" | |||
|
3783 | ||||
|
3784 | msgid "send patches as inline attachments" | |||
|
3785 | msgstr "" | |||
|
3786 | ||||
|
3787 | msgid "email addresses of blind copy recipients" | |||
|
3788 | msgstr "" | |||
|
3789 | ||||
|
3790 | msgid "email addresses of copy recipients" | |||
|
3791 | msgstr "" | |||
|
3792 | ||||
|
3793 | msgid "add diffstat output to messages" | |||
|
3794 | msgstr "" | |||
|
3795 | ||||
|
3796 | msgid "use the given date as the sending date" | |||
|
3797 | msgstr "" | |||
|
3798 | ||||
|
3799 | msgid "use the given file as the series description" | |||
|
3800 | msgstr "" | |||
|
3801 | ||||
|
3802 | msgid "email address of sender" | |||
|
3803 | msgstr "" | |||
|
3804 | ||||
|
3805 | msgid "print messages that would be sent" | |||
|
3806 | msgstr "" | |||
|
3807 | ||||
|
3808 | msgid "write messages to mbox file instead of sending them" | |||
|
3809 | msgstr "" | |||
|
3810 | ||||
|
3811 | msgid "subject of first message (intro or single patch)" | |||
|
3812 | msgstr "" | |||
|
3813 | ||||
|
3814 | msgid "email addresses of recipients" | |||
|
3815 | msgstr "" | |||
|
3816 | ||||
|
3817 | msgid "omit hg patch header" | |||
|
3818 | msgstr "" | |||
|
3819 | ||||
|
3820 | msgid "send changes not found in the target repository" | |||
|
3821 | msgstr "" | |||
|
3822 | ||||
|
3823 | msgid "send changes not in target as a binary bundle" | |||
|
3824 | msgstr "" | |||
|
3825 | ||||
|
3826 | msgid "a revision to send" | |||
|
3827 | msgstr "" | |||
|
3828 | ||||
|
3829 | msgid "run even when remote repository is unrelated (with -b)" | |||
|
3830 | msgstr "" | |||
|
3831 | ||||
|
3832 | msgid "a base changeset to specify instead of a destination (with -b)" | |||
|
3833 | msgstr "" | |||
|
3834 | ||||
|
3835 | msgid "send an introduction email for a single patch" | |||
|
3836 | msgstr "" | |||
|
3837 | ||||
|
3838 | msgid "hg email [OPTION]... [DEST]..." | |||
|
3839 | msgstr "" | |||
|
3840 | ||||
|
3841 | msgid "" | |||
|
3842 | "removes files not tracked by Mercurial\n" | |||
|
3843 | "\n" | |||
|
3844 | " Delete files not known to Mercurial. This is useful to test local and\n" | |||
|
3845 | " uncommitted changes in an otherwise-clean source tree.\n" | |||
|
3846 | "\n" | |||
|
3847 | " This means that purge will delete:\n" | |||
|
3848 | " - Unknown files: files marked with \"?\" by \"hg status\"\n" | |||
|
3849 | " - Empty directories: in fact Mercurial ignores directories unless they\n" | |||
|
3850 | " contain files under source control managment\n" | |||
|
3851 | " But it will leave untouched:\n" | |||
|
3852 | " - Modified and unmodified tracked files\n" | |||
|
3853 | " - Ignored files (unless --all is specified)\n" | |||
|
3854 | " - New files added to the repository (with \"hg add\")\n" | |||
|
3855 | "\n" | |||
|
3856 | " If directories are given on the command line, only files in these\n" | |||
|
3857 | " directories are considered.\n" | |||
|
3858 | "\n" | |||
|
3859 | " Be careful with purge, as you could irreversibly delete some files you\n" | |||
|
3860 | " forgot to add to the repository. If you only want to print the list of\n" | |||
|
3861 | " files that this program would delete, use the --print option.\n" | |||
|
3862 | " " | |||
|
3863 | msgstr "" | |||
|
3864 | ||||
|
3865 | #, python-format | |||
|
3866 | msgid "%s cannot be removed" | |||
|
3867 | msgstr "" | |||
|
3868 | ||||
|
3869 | #, python-format | |||
|
3870 | msgid "warning: %s\n" | |||
|
3871 | msgstr "" | |||
|
3872 | ||||
|
3873 | #, python-format | |||
|
3874 | msgid "Removing file %s\n" | |||
|
3875 | msgstr "" | |||
|
3876 | ||||
|
3877 | #, python-format | |||
|
3878 | msgid "Removing directory %s\n" | |||
|
3879 | msgstr "" | |||
|
3880 | ||||
|
3881 | msgid "abort if an error occurs" | |||
|
3882 | msgstr "" | |||
|
3883 | ||||
|
3884 | msgid "purge ignored files too" | |||
|
3885 | msgstr "" | |||
|
3886 | ||||
|
3887 | msgid "print the file names instead of deleting them" | |||
|
3888 | msgstr "" | |||
|
3889 | ||||
|
3890 | msgid "end filenames with NUL, for use with xargs (implies -p)" | |||
|
3891 | msgstr "" | |||
|
3892 | ||||
|
3893 | msgid "hg purge [OPTION]... [DIR]..." | |||
|
3894 | msgstr "" | |||
|
3895 | ||||
|
3896 | msgid "" | |||
|
3897 | "move sets of revisions to a different ancestor\n" | |||
|
3898 | "\n" | |||
|
3899 | "This extension lets you rebase changesets in an existing Mercurial " | |||
|
3900 | "repository.\n" | |||
|
3901 | "\n" | |||
|
3902 | "For more information:\n" | |||
|
3903 | "http://www.selenic.com/mercurial/wiki/index.cgi/RebaseProject\n" | |||
|
3904 | msgstr "" | |||
|
3905 | ||||
|
3906 | msgid "return the correct ancestor" | |||
|
3907 | msgstr "" | |||
|
3908 | ||||
|
3909 | msgid "first revision, do not change ancestor\n" | |||
|
3910 | msgstr "" | |||
|
3911 | ||||
|
3912 | msgid "" | |||
|
3913 | "move changeset (and descendants) to a different branch\n" | |||
|
3914 | "\n" | |||
|
3915 | " Rebase uses repeated merging to graft changesets from one part of " | |||
|
3916 | "history\n" | |||
|
3917 | " onto another. This can be useful for linearizing local changes relative " | |||
|
3918 | "to\n" | |||
|
3919 | " a master development tree.\n" | |||
|
3920 | "\n" | |||
|
3921 | " If a rebase is interrupted to manually resolve a merge, it can be " | |||
|
3922 | "continued\n" | |||
|
3923 | " with --continue or aborted with --abort.\n" | |||
|
3924 | " " | |||
|
3925 | msgstr "" | |||
|
3926 | ||||
|
3927 | msgid "cannot use both keepbranches and extrafn" | |||
|
3928 | msgstr "" | |||
|
3929 | ||||
|
3930 | msgid "cannot use both abort and continue" | |||
|
3931 | msgstr "" | |||
|
3932 | ||||
|
3933 | msgid "cannot use collapse with continue or abort" | |||
|
3934 | msgstr "" | |||
|
3935 | ||||
|
3936 | msgid "abort and continue do not allow specifying revisions" | |||
|
3937 | msgstr "" | |||
|
3938 | ||||
|
3939 | msgid "cannot specify both a revision and a base" | |||
|
3940 | msgstr "" | |||
|
3941 | ||||
|
3942 | msgid "nothing to rebase\n" | |||
|
3943 | msgstr "" | |||
|
3944 | ||||
|
3945 | msgid "rebase merging completed\n" | |||
|
3946 | msgstr "" | |||
|
3947 | ||||
|
3948 | msgid "warning: new changesets detected on source branch, not stripping\n" | |||
|
3949 | msgstr "" | |||
|
3950 | ||||
|
3951 | msgid "rebase completed\n" | |||
|
3952 | msgstr "" | |||
|
3953 | ||||
|
3954 | #, python-format | |||
|
3955 | msgid "%d revisions have been skipped\n" | |||
|
3956 | msgstr "" | |||
|
3957 | ||||
|
3958 | msgid "" | |||
|
3959 | "Skip commit if collapsing has been required and rev is not the last\n" | |||
|
3960 | " revision, commit otherwise\n" | |||
|
3961 | " " | |||
|
3962 | msgstr "" | |||
|
3963 | ||||
|
3964 | msgid " set parents\n" | |||
|
3965 | msgstr "" | |||
|
3966 | ||||
|
3967 | msgid "Rebase a single revision" | |||
|
3968 | msgstr "" | |||
|
3969 | ||||
|
3970 | #, python-format | |||
|
3971 | msgid "rebasing %d:%s\n" | |||
|
3972 | msgstr "" | |||
|
3973 | ||||
|
3974 | #, python-format | |||
|
3975 | msgid " future parents are %d and %d\n" | |||
|
3976 | msgstr "" | |||
|
3977 | ||||
|
3978 | #, python-format | |||
|
3979 | msgid " update to %d:%s\n" | |||
|
3980 | msgstr " opdater til %d:%s\n" | |||
|
3981 | ||||
|
3982 | msgid " already in target\n" | |||
|
3983 | msgstr "" | |||
|
3984 | ||||
|
3985 | #, python-format | |||
|
3986 | msgid " merge against %d:%s\n" | |||
|
3987 | msgstr "" | |||
|
3988 | ||||
|
3989 | msgid "fix unresolved conflicts with hg resolve then run hg rebase --continue" | |||
|
3990 | msgstr "" | |||
|
3991 | ||||
|
3992 | msgid "resuming interrupted rebase\n" | |||
|
3993 | msgstr "" | |||
|
3994 | ||||
|
3995 | #, python-format | |||
|
3996 | msgid "no changes, revision %d skipped\n" | |||
|
3997 | msgstr "" | |||
|
3998 | ||||
|
3999 | #, python-format | |||
|
4000 | msgid "next revision set to %s\n" | |||
|
4001 | msgstr "" | |||
|
4002 | ||||
|
4003 | msgid "Return the new parent relationship of the revision that will be rebased" | |||
|
4004 | msgstr "" | |||
|
4005 | ||||
|
4006 | #, python-format | |||
|
4007 | msgid "cannot use revision %d as base, result would have 3 parents" | |||
|
4008 | msgstr "" | |||
|
4009 | ||||
|
4010 | msgid "Update rebased mq patches - finalize and then import them" | |||
|
4011 | msgstr "" | |||
|
4012 | ||||
|
4013 | #, python-format | |||
|
4014 | msgid "revision %d is an mq patch (%s), finalize it.\n" | |||
|
4015 | msgstr "" | |||
|
4016 | ||||
|
4017 | #, python-format | |||
|
4018 | msgid "import mq patch %d (%s)\n" | |||
|
4019 | msgstr "" | |||
|
4020 | ||||
|
4021 | msgid "Store the current status to allow recovery" | |||
|
4022 | msgstr "" | |||
|
4023 | ||||
|
4024 | msgid "rebase status stored\n" | |||
|
4025 | msgstr "" | |||
|
4026 | ||||
|
4027 | msgid "Remove the status files" | |||
|
4028 | msgstr "" | |||
|
4029 | ||||
|
4030 | msgid "Restore a previously stored status" | |||
|
4031 | msgstr "" | |||
|
4032 | ||||
|
4033 | msgid "rebase status resumed\n" | |||
|
4034 | msgstr "" | |||
|
4035 | ||||
|
4036 | msgid "no rebase in progress" | |||
|
4037 | msgstr "" | |||
|
4038 | ||||
|
4039 | msgid "Restore the repository to its original state" | |||
|
4040 | msgstr "" | |||
|
4041 | ||||
|
4042 | msgid "warning: new changesets detected on target branch, not stripping\n" | |||
|
4043 | msgstr "" | |||
|
4044 | ||||
|
4045 | msgid "rebase aborted\n" | |||
|
4046 | msgstr "" | |||
|
4047 | ||||
|
4048 | msgid "Define which revisions are going to be rebased and where" | |||
|
4049 | msgstr "" | |||
|
4050 | ||||
|
4051 | msgid "cannot rebase onto an applied mq patch" | |||
|
4052 | msgstr "" | |||
|
4053 | ||||
|
4054 | msgid "cannot rebase an ancestor" | |||
|
4055 | msgstr "" | |||
|
4056 | ||||
|
4057 | msgid "cannot rebase a descendant" | |||
|
4058 | msgstr "" | |||
|
4059 | ||||
|
4060 | msgid "already working on current\n" | |||
|
4061 | msgstr "" | |||
|
4062 | ||||
|
4063 | msgid "already working on the current branch\n" | |||
|
4064 | msgstr "" | |||
|
4065 | ||||
|
4066 | #, python-format | |||
|
4067 | msgid "rebase onto %d starting from %d\n" | |||
|
4068 | msgstr "" | |||
|
4069 | ||||
|
4070 | msgid "unable to collapse, there is more than one external parent" | |||
|
4071 | msgstr "" | |||
|
4072 | ||||
|
4073 | msgid "Call rebase after pull if the latter has been invoked with --rebase" | |||
|
4074 | msgstr "" | |||
|
4075 | ||||
|
4076 | msgid "--update and --rebase are not compatible, ignoring the update flag\n" | |||
|
4077 | msgstr "" | |||
|
4078 | ||||
|
4079 | msgid "Replace pull with a decorator to provide --rebase option" | |||
|
4080 | msgstr "" | |||
|
4081 | ||||
|
4082 | msgid "rebase working directory to branch head" | |||
|
4083 | msgstr "" | |||
|
4084 | ||||
|
4085 | msgid "keep original revisions" | |||
|
4086 | msgstr "" | |||
|
4087 | ||||
|
4088 | msgid "keep original branches" | |||
|
4089 | msgstr "" | |||
|
4090 | ||||
|
4091 | msgid "rebase from a given revision" | |||
|
4092 | msgstr "" | |||
|
4093 | ||||
|
4094 | msgid "rebase from the base of a given revision" | |||
|
4095 | msgstr "" | |||
|
4096 | ||||
|
4097 | msgid "rebase onto a given revision" | |||
|
4098 | msgstr "" | |||
|
4099 | ||||
|
4100 | msgid "collapse the rebased revisions" | |||
|
4101 | msgstr "" | |||
|
4102 | ||||
|
4103 | msgid "continue an interrupted rebase" | |||
|
4104 | msgstr "" | |||
|
4105 | ||||
|
4106 | msgid "abort an interrupted rebase" | |||
|
4107 | msgstr "" | |||
|
4108 | ||||
|
4109 | msgid "" | |||
|
4110 | "hg rebase [-s rev | -b rev] [-d rev] [--collapse] | [-c] | [-a] | [--keep]" | |||
|
4111 | msgstr "" | |||
|
4112 | ||||
|
4113 | msgid "interactive change selection during commit or qrefresh" | |||
|
4114 | msgstr "" | |||
|
4115 | ||||
|
4116 | msgid "" | |||
|
4117 | "like patch.iterhunks, but yield different events\n" | |||
|
4118 | "\n" | |||
|
4119 | " - ('file', [header_lines + fromfile + tofile])\n" | |||
|
4120 | " - ('context', [context_lines])\n" | |||
|
4121 | " - ('hunk', [hunk_lines])\n" | |||
|
4122 | " - ('range', (-start,len, +start,len, diffp))\n" | |||
|
4123 | " " | |||
|
4124 | msgstr "" | |||
|
4125 | ||||
|
4126 | msgid "scan lr while predicate holds" | |||
|
4127 | msgstr "" | |||
|
4128 | ||||
|
4129 | msgid "" | |||
|
4130 | "patch header\n" | |||
|
4131 | "\n" | |||
|
4132 | " XXX shoudn't we move this to mercurial/patch.py ?\n" | |||
|
4133 | " " | |||
|
4134 | msgstr "" | |||
|
4135 | ||||
|
4136 | msgid "this modifies a binary file (all or nothing)\n" | |||
|
4137 | msgstr "" | |||
|
4138 | ||||
|
4139 | msgid "this is a binary file\n" | |||
|
4140 | msgstr "" | |||
|
4141 | ||||
|
4142 | #, python-format | |||
|
4143 | msgid "%d hunks, %d lines changed\n" | |||
|
4144 | msgstr "" | |||
|
4145 | ||||
|
4146 | msgid "hunk -> (n+,n-)" | |||
|
4147 | msgstr "" | |||
|
4148 | ||||
|
4149 | msgid "" | |||
|
4150 | "patch hunk\n" | |||
|
4151 | "\n" | |||
|
4152 | " XXX shouldn't we merge this with patch.hunk ?\n" | |||
|
4153 | " " | |||
|
4154 | msgstr "" | |||
|
4155 | ||||
|
4156 | msgid "patch -> [] of hunks " | |||
|
4157 | msgstr "" | |||
|
4158 | ||||
|
4159 | msgid "patch parsing state machine" | |||
|
4160 | msgstr "" | |||
|
4161 | ||||
|
4162 | msgid "Interactively filter patch chunks into applied-only chunks" | |||
|
4163 | msgstr "" | |||
|
4164 | ||||
|
4165 | msgid "" | |||
|
4166 | "fetch next portion from chunks until a 'header' is seen\n" | |||
|
4167 | " NB: header == new-file mark\n" | |||
|
4168 | " " | |||
|
4169 | msgstr "" | |||
|
4170 | ||||
|
4171 | msgid "" | |||
|
4172 | "prompt query, and process base inputs\n" | |||
|
4173 | "\n" | |||
|
4174 | " - y/n for the rest of file\n" | |||
|
4175 | " - y/n for the rest\n" | |||
|
4176 | " - ? (help)\n" | |||
|
4177 | " - q (quit)\n" | |||
|
4178 | "\n" | |||
|
4179 | " else, input is returned to the caller.\n" | |||
|
4180 | " " | |||
|
4181 | msgstr "" | |||
|
4182 | ||||
|
4183 | msgid "[Ynsfdaq?]" | |||
|
4184 | msgstr "" | |||
|
4185 | ||||
|
4186 | msgid "y" | |||
|
4187 | msgstr "" | |||
|
4188 | ||||
|
4189 | msgid "?" | |||
|
4190 | msgstr "" | |||
|
4191 | ||||
|
4192 | msgid "y - record this change" | |||
|
4193 | msgstr "" | |||
|
4194 | ||||
|
4195 | msgid "s" | |||
|
4196 | msgstr "" | |||
|
4197 | ||||
|
4198 | msgid "f" | |||
|
4199 | msgstr "" | |||
|
4200 | ||||
|
4201 | msgid "d" | |||
|
4202 | msgstr "" | |||
|
4203 | ||||
|
4204 | msgid "a" | |||
|
4205 | msgstr "" | |||
|
4206 | ||||
|
4207 | msgid "q" | |||
|
4208 | msgstr "" | |||
|
4209 | ||||
|
4210 | msgid "user quit" | |||
|
4211 | msgstr "" | |||
|
4212 | ||||
|
4213 | #, python-format | |||
|
4214 | msgid "examine changes to %s?" | |||
|
4215 | msgstr "" | |||
|
4216 | ||||
|
4217 | msgid " and " | |||
|
4218 | msgstr "" | |||
|
4219 | ||||
|
4220 | #, python-format | |||
|
4221 | msgid "record this change to %r?" | |||
|
4222 | msgstr "" | |||
|
4223 | ||||
|
4224 | msgid "" | |||
|
4225 | "interactively select changes to commit\n" | |||
|
4226 | "\n" | |||
|
4227 | " If a list of files is omitted, all changes reported by \"hg status\"\n" | |||
|
4228 | " will be candidates for recording.\n" | |||
|
4229 | "\n" | |||
|
4230 | " See 'hg help dates' for a list of formats valid for -d/--date.\n" | |||
|
4231 | "\n" | |||
|
4232 | " You will be prompted for whether to record changes to each\n" | |||
|
4233 | " modified file, and for files with multiple changes, for each\n" | |||
|
4234 | " change to use. For each query, the following responses are\n" | |||
|
4235 | " possible:\n" | |||
|
4236 | "\n" | |||
|
4237 | " y - record this change\n" | |||
|
4238 | " n - skip this change\n" | |||
|
4239 | "\n" | |||
|
4240 | " s - skip remaining changes to this file\n" | |||
|
4241 | " f - record remaining changes to this file\n" | |||
|
4242 | "\n" | |||
|
4243 | " d - done, skip remaining changes and files\n" | |||
|
4244 | " a - record all changes to all remaining files\n" | |||
|
4245 | " q - quit, recording no changes\n" | |||
|
4246 | "\n" | |||
|
4247 | " ? - display help" | |||
|
4248 | msgstr "" | |||
|
4249 | ||||
|
4250 | msgid "" | |||
|
4251 | "interactively record a new patch\n" | |||
|
4252 | "\n" | |||
|
4253 | " see 'hg help qnew' & 'hg help record' for more information and usage\n" | |||
|
4254 | " " | |||
|
4255 | msgstr "" | |||
|
4256 | ||||
|
4257 | msgid "'mq' extension not loaded" | |||
|
4258 | msgstr "" | |||
|
4259 | ||||
|
4260 | msgid "running non-interactively, use commit instead" | |||
|
4261 | msgstr "" | |||
|
4262 | ||||
|
4263 | msgid "" | |||
|
4264 | "This is generic record driver.\n" | |||
|
4265 | "\n" | |||
|
4266 | " It's job is to interactively filter local changes, and accordingly\n" | |||
|
4267 | " prepare working dir into a state, where the job can be delegated to\n" | |||
|
4268 | " non-interactive commit command such as 'commit' or 'qrefresh'.\n" | |||
|
4269 | "\n" | |||
|
4270 | " After the actual job is done by non-interactive command, working " | |||
|
4271 | "dir\n" | |||
|
4272 | " state is restored to original.\n" | |||
|
4273 | "\n" | |||
|
4274 | " In the end we'll record intresting changes, and everything else will " | |||
|
4275 | "be\n" | |||
|
4276 | " left in place, so the user can continue his work.\n" | |||
|
4277 | " " | |||
|
4278 | msgstr "" | |||
|
4279 | ||||
|
4280 | msgid "no changes to record\n" | |||
|
4281 | msgstr "" | |||
|
4282 | ||||
|
4283 | #, python-format | |||
|
4284 | msgid "backup %r as %r\n" | |||
|
4285 | msgstr "" | |||
|
4286 | ||||
|
4287 | msgid "applying patch\n" | |||
|
4288 | msgstr "" | |||
|
4289 | ||||
|
4290 | msgid "patch failed to apply" | |||
|
4291 | msgstr "" | |||
|
4292 | ||||
|
4293 | #, python-format | |||
|
4294 | msgid "restoring %r to %r\n" | |||
|
4295 | msgstr "" | |||
|
4296 | ||||
|
4297 | msgid "hg record [OPTION]... [FILE]..." | |||
|
4298 | msgstr "" | |||
|
4299 | ||||
|
4300 | msgid "hg qrecord [OPTION]... PATCH [FILE]..." | |||
|
4301 | msgstr "" | |||
|
4302 | ||||
|
4303 | msgid "" | |||
|
4304 | "patch transplanting tool\n" | |||
|
4305 | "\n" | |||
|
4306 | "This extension allows you to transplant patches from another branch.\n" | |||
|
4307 | "\n" | |||
|
4308 | "Transplanted patches are recorded in .hg/transplant/transplants, as a map\n" | |||
|
4309 | "from a changeset hash to its hash in the source repository.\n" | |||
|
4310 | msgstr "" | |||
|
4311 | ||||
|
4312 | msgid "" | |||
|
4313 | "returns True if a node is already an ancestor of parent\n" | |||
|
4314 | " or has already been transplanted" | |||
|
4315 | msgstr "" | |||
|
4316 | ||||
|
4317 | msgid "apply the revisions in revmap one by one in revision order" | |||
|
4318 | msgstr "" | |||
|
4319 | ||||
|
4320 | #, python-format | |||
|
4321 | msgid "skipping already applied revision %s\n" | |||
|
4322 | msgstr "" | |||
|
4323 | ||||
|
4324 | #, python-format | |||
|
4325 | msgid "skipping merge changeset %s:%s\n" | |||
|
4326 | msgstr "" | |||
|
4327 | ||||
|
4328 | #, python-format | |||
|
4329 | msgid "%s merged at %s\n" | |||
|
4330 | msgstr "" | |||
|
4331 | ||||
|
4332 | #, python-format | |||
|
4333 | msgid "%s transplanted to %s\n" | |||
|
4334 | msgstr "" | |||
|
4335 | ||||
|
4336 | msgid "arbitrarily rewrite changeset before applying it" | |||
|
4337 | msgstr "" | |||
|
4338 | ||||
|
4339 | #, python-format | |||
|
4340 | msgid "filtering %s\n" | |||
|
4341 | msgstr "" | |||
|
4342 | ||||
|
4343 | msgid "filter failed" | |||
|
4344 | msgstr "" | |||
|
4345 | ||||
|
4346 | msgid "apply the patch in patchfile to the repository as a transplant" | |||
|
4347 | msgstr "" | |||
|
4348 | ||||
|
4349 | msgid "can only omit patchfile if merging" | |||
|
4350 | msgstr "" | |||
|
4351 | ||||
|
4352 | #, python-format | |||
|
4353 | msgid "%s: empty changeset" | |||
|
4354 | msgstr "%s: tom ændring" | |||
|
4355 | ||||
|
4356 | msgid "Fix up the merge and run hg transplant --continue" | |||
|
4357 | msgstr "" | |||
|
4358 | ||||
|
4359 | msgid "recover last transaction and apply remaining changesets" | |||
|
4360 | msgstr "" | |||
|
4361 | ||||
|
4362 | #, python-format | |||
|
4363 | msgid "%s transplanted as %s\n" | |||
|
4364 | msgstr "" | |||
|
4365 | ||||
|
4366 | msgid "commit working directory using journal metadata" | |||
|
4367 | msgstr "" | |||
|
4368 | ||||
|
4369 | msgid "transplant log file is corrupt" | |||
|
4370 | msgstr "" | |||
|
4371 | ||||
|
4372 | #, python-format | |||
|
4373 | msgid "working dir not at transplant parent %s" | |||
|
4374 | msgstr "" | |||
|
4375 | ||||
|
4376 | msgid "commit failed" | |||
|
4377 | msgstr "" | |||
|
4378 | ||||
|
4379 | msgid "journal changelog metadata for later recover" | |||
|
4380 | msgstr "" | |||
|
4381 | ||||
|
4382 | msgid "remove changelog journal" | |||
|
4383 | msgstr "" | |||
|
4384 | ||||
|
4385 | msgid "interactively transplant changesets" | |||
|
4386 | msgstr "transplanter ændringer interaktivt" | |||
|
4387 | ||||
|
4388 | msgid "apply changeset? [ynmpcq?]:" | |||
|
4389 | msgstr "" | |||
|
4390 | ||||
|
4391 | msgid "" | |||
|
4392 | "transplant changesets from another branch\n" | |||
|
4393 | "\n" | |||
|
4394 | " Selected changesets will be applied on top of the current working\n" | |||
|
4395 | " directory with the log of the original changeset. If --log is\n" | |||
|
4396 | " specified, log messages will have a comment appended of the form:\n" | |||
|
4397 | "\n" | |||
|
4398 | " (transplanted from CHANGESETHASH)\n" | |||
|
4399 | "\n" | |||
|
4400 | " You can rewrite the changelog message with the --filter option.\n" | |||
|
4401 | " Its argument will be invoked with the current changelog message\n" | |||
|
4402 | " as $1 and the patch as $2.\n" | |||
|
4403 | "\n" | |||
|
4404 | " If --source is specified, selects changesets from the named\n" | |||
|
4405 | " repository. If --branch is specified, selects changesets from the\n" | |||
|
4406 | " branch holding the named revision, up to that revision. If --all\n" | |||
|
4407 | " is specified, all changesets on the branch will be transplanted,\n" | |||
|
4408 | " otherwise you will be prompted to select the changesets you want.\n" | |||
|
4409 | "\n" | |||
|
4410 | " hg transplant --branch REVISION --all will rebase the selected branch\n" | |||
|
4411 | " (up to the named revision) onto your current working directory.\n" | |||
|
4412 | "\n" | |||
|
4413 | " You can optionally mark selected transplanted changesets as\n" | |||
|
4414 | " merge changesets. You will not be prompted to transplant any\n" | |||
|
4415 | " ancestors of a merged transplant, and you can merge descendants\n" | |||
|
4416 | " of them normally instead of transplanting them.\n" | |||
|
4417 | "\n" | |||
|
4418 | " If no merges or revisions are provided, hg transplant will start\n" | |||
|
4419 | " an interactive changeset browser.\n" | |||
|
4420 | "\n" | |||
|
4421 | " If a changeset application fails, you can fix the merge by hand and\n" | |||
|
4422 | " then resume where you left off by calling hg transplant --continue.\n" | |||
|
4423 | " " | |||
|
4424 | msgstr "" | |||
|
4425 | ||||
|
4426 | msgid "--continue is incompatible with branch, all or merge" | |||
|
4427 | msgstr "" | |||
|
4428 | ||||
|
4429 | msgid "no source URL, branch tag or revision list provided" | |||
|
4430 | msgstr "" | |||
|
4431 | ||||
|
4432 | msgid "--all requires a branch revision" | |||
|
4433 | msgstr "" | |||
|
4434 | ||||
|
4435 | msgid "--all is incompatible with a revision list" | |||
|
4436 | msgstr "" | |||
|
4437 | ||||
|
4438 | msgid "no revision checked out" | |||
|
4439 | msgstr "" | |||
|
4440 | ||||
|
4441 | msgid "outstanding uncommitted merges" | |||
|
4442 | msgstr "" | |||
|
4443 | ||||
|
4444 | msgid "outstanding local changes" | |||
|
4445 | msgstr "" | |||
|
4446 | ||||
|
4447 | msgid "pull patches from REPOSITORY" | |||
|
4448 | msgstr "" | |||
|
4449 | ||||
|
4450 | msgid "pull patches from branch BRANCH" | |||
|
4451 | msgstr "" | |||
|
4452 | ||||
|
4453 | msgid "pull all changesets up to BRANCH" | |||
|
4454 | msgstr "" | |||
|
4455 | ||||
|
4456 | msgid "skip over REV" | |||
|
4457 | msgstr "spring over REV" | |||
|
4458 | ||||
|
4459 | msgid "merge at REV" | |||
|
4460 | msgstr "" | |||
|
4461 | ||||
|
4462 | msgid "append transplant info to log message" | |||
|
4463 | msgstr "" | |||
|
4464 | ||||
|
4465 | msgid "continue last transplant session after repair" | |||
|
4466 | msgstr "" | |||
|
4467 | ||||
|
4468 | msgid "filter changesets through FILTER" | |||
|
4469 | msgstr "" | |||
|
4470 | ||||
|
4471 | msgid "" | |||
|
4472 | "hg transplant [-s REPOSITORY] [-b BRANCH [-a]] [-p REV] [-m REV] [REV]..." | |||
|
4473 | msgstr "" | |||
|
4474 | ||||
|
4475 | msgid "" | |||
|
4476 | "allow to use MBCS path with problematic encoding.\n" | |||
|
4477 | "\n" | |||
|
4478 | "Some MBCS encodings are not good for some path operations\n" | |||
|
4479 | "(i.e. splitting path, case conversion, etc.) with its encoded bytes.\n" | |||
|
4480 | "We call such a encoding (i.e. shift_jis and big5) as \"problematic\n" | |||
|
4481 | "encoding\". This extension can be used to fix the issue with those\n" | |||
|
4482 | "encodings by wrapping some functions to convert to unicode string\n" | |||
|
4483 | "before path operation.\n" | |||
|
4484 | "\n" | |||
|
4485 | "This extension is usefull for:\n" | |||
|
4486 | " * Japanese Windows users using shift_jis encoding.\n" | |||
|
4487 | " * Chinese Windows users using big5 encoding.\n" | |||
|
4488 | " * All users who use a repository with one of problematic encodings\n" | |||
|
4489 | " on case-insensitive file system.\n" | |||
|
4490 | "\n" | |||
|
4491 | "This extension is not needed for:\n" | |||
|
4492 | " * Any user who use only ascii chars in path.\n" | |||
|
4493 | " * Any user who do not use any of problematic encodings.\n" | |||
|
4494 | "\n" | |||
|
4495 | "Note that there are some limitations on using this extension:\n" | |||
|
4496 | " * You should use single encoding in one repository.\n" | |||
|
4497 | " * You should set same encoding for the repository by locale or HGENCODING.\n" | |||
|
4498 | "\n" | |||
|
4499 | "To use this extension, enable the extension in .hg/hgrc or ~/.hgrc:\n" | |||
|
4500 | "\n" | |||
|
4501 | " [extensions]\n" | |||
|
4502 | " hgext.win32mbcs =\n" | |||
|
4503 | "\n" | |||
|
4504 | "Path encoding conversion are done between unicode and util._encoding\n" | |||
|
4505 | "which is decided by mercurial from current locale setting or HGENCODING.\n" | |||
|
4506 | "\n" | |||
|
4507 | msgstr "" | |||
|
4508 | ||||
|
4509 | #, python-format | |||
|
4510 | msgid "[win32mbcs] filename conversion fail with %s encoding\n" | |||
|
4511 | msgstr "" | |||
|
4512 | ||||
|
4513 | msgid "[win32mbcs] cannot activate on this platform.\n" | |||
|
4514 | msgstr "" | |||
|
4515 | ||||
|
4516 | #, python-format | |||
|
4517 | msgid "[win32mbcs] activated with encoding: %s\n" | |||
|
4518 | msgstr "" | |||
|
4519 | ||||
|
4520 | #, python-format | |||
|
4521 | msgid "" | |||
|
4522 | "WARNING: %s already has %s line endings\n" | |||
|
4523 | "and does not need EOL conversion by the win32text plugin.\n" | |||
|
4524 | "Before your next commit, please reconsider your encode/decode settings in \n" | |||
|
4525 | "Mercurial.ini or %s.\n" | |||
|
4526 | msgstr "" | |||
|
4527 | ||||
|
4528 | #, python-format | |||
|
4529 | msgid "Attempt to commit or push text file(s) using %s line endings\n" | |||
|
4530 | msgstr "" | |||
|
4531 | ||||
|
4532 | #, python-format | |||
|
4533 | msgid "in %s: %s\n" | |||
|
4534 | msgstr "" | |||
|
4535 | ||||
|
4536 | #, python-format | |||
|
4537 | msgid "" | |||
|
4538 | "\n" | |||
|
4539 | "To prevent this mistake in your local repository,\n" | |||
|
4540 | "add to Mercurial.ini or .hg/hgrc:\n" | |||
|
4541 | "\n" | |||
|
4542 | "[hooks]\n" | |||
|
4543 | "pretxncommit.%s = python:hgext.win32text.forbid%s\n" | |||
|
4544 | "\n" | |||
|
4545 | "and also consider adding:\n" | |||
|
4546 | "\n" | |||
|
4547 | "[extensions]\n" | |||
|
4548 | "hgext.win32text =\n" | |||
|
4549 | "[encode]\n" | |||
|
4550 | "** = %sencode:\n" | |||
|
4551 | "[decode]\n" | |||
|
4552 | "** = %sdecode:\n" | |||
|
4553 | msgstr "" | |||
|
4554 | ||||
|
4555 | msgid "" | |||
|
4556 | "zeroconf support for mercurial repositories\n" | |||
|
4557 | "\n" | |||
|
4558 | "Zeroconf enabled repositories will be announced in a network without the " | |||
|
4559 | "need\n" | |||
|
4560 | "to configure a server or a service. They can be discovered without knowing\n" | |||
|
4561 | "their actual IP address.\n" | |||
|
4562 | "\n" | |||
|
4563 | "To use the zeroconf extension add the following entry to your hgrc file:\n" | |||
|
4564 | "\n" | |||
|
4565 | "[extensions]\n" | |||
|
4566 | "hgext.zeroconf =\n" | |||
|
4567 | "\n" | |||
|
4568 | "To allow other people to discover your repository using run \"hg serve\" in " | |||
|
4569 | "your\n" | |||
|
4570 | "repository.\n" | |||
|
4571 | "\n" | |||
|
4572 | " $ cd test\n" | |||
|
4573 | " $ hg serve\n" | |||
|
4574 | "\n" | |||
|
4575 | "You can discover zeroconf enabled repositories by running \"hg paths\".\n" | |||
|
4576 | "\n" | |||
|
4577 | " $ hg paths\n" | |||
|
4578 | " zc-test = http://example.com:8000/test\n" | |||
|
4579 | msgstr "" | |||
|
4580 | ||||
|
4581 | msgid "archive prefix contains illegal components" | |||
|
4582 | msgstr "arkivpræfix indeholder ugyldige komponenter" | |||
|
4583 | ||||
|
4584 | msgid "cannot give prefix when archiving to files" | |||
|
4585 | msgstr "kan ikke give præfix ved arkivering til filer" | |||
|
4586 | ||||
|
4587 | #, python-format | |||
|
4588 | msgid "unknown archive type '%s'" | |||
|
4589 | msgstr "ukendt arkivtype '%s'" | |||
|
4590 | ||||
|
4591 | msgid "invalid changegroup" | |||
|
4592 | msgstr "" | |||
|
4593 | ||||
|
4594 | msgid "unknown parent" | |||
|
4595 | msgstr "ukendt forældre" | |||
|
4596 | ||||
|
4597 | #, python-format | |||
|
4598 | msgid "integrity check failed on %s:%d" | |||
|
4599 | msgstr "integritetstjek fejlede på %s:%d" | |||
|
4600 | ||||
|
4601 | #, python-format | |||
|
4602 | msgid "%s: not a Mercurial bundle file" | |||
|
4603 | msgstr "%s er ikke en Mercurial bundle fil" | |||
|
4604 | ||||
|
4605 | #, python-format | |||
|
4606 | msgid "%s: unknown bundle version" | |||
|
4607 | msgstr "%s: ukendt bundle version" | |||
|
4608 | ||||
|
4609 | #, python-format | |||
|
4610 | msgid "%s: unknown bundle compression type" | |||
|
4611 | msgstr "%s: ukendt bundle kompressionstype" | |||
|
4612 | ||||
|
4613 | msgid "cannot create new bundle repository" | |||
|
4614 | msgstr "" | |||
|
4615 | ||||
|
4616 | #, python-format | |||
|
4617 | msgid "premature EOF reading chunk (got %d bytes, expected %d)" | |||
|
4618 | msgstr "for tidlig EOF ved læsning af chunk (fik %d bytes, forventede %d)" | |||
|
4619 | ||||
|
4620 | #, python-format | |||
|
4621 | msgid "username %s contains a newline" | |||
|
4622 | msgstr "brugernavn %s indeholder et linieskift" | |||
|
4623 | ||||
|
4624 | msgid "options --message and --logfile are mutually exclusive" | |||
|
4625 | msgstr "" | |||
|
4626 | ||||
|
4627 | #, python-format | |||
|
4628 | msgid "can't read commit message '%s': %s" | |||
|
4629 | msgstr "Kan ikke lase commit besked '%s': %s" | |||
|
4630 | ||||
|
4631 | msgid "limit must be a positive integer" | |||
|
4632 | msgstr "" | |||
|
4633 | ||||
|
4634 | msgid "limit must be positive" | |||
|
4635 | msgstr "" | |||
|
4636 | ||||
|
4637 | msgid "too many revisions specified" | |||
|
4638 | msgstr "der er specificeret for mange revisioner" | |||
|
4639 | ||||
|
4640 | #, python-format | |||
|
4641 | msgid "invalid format spec '%%%s' in output file name" | |||
|
4642 | msgstr "" | |||
|
4643 | ||||
|
4644 | #, python-format | |||
|
4645 | msgid "adding %s\n" | |||
|
4646 | msgstr "tilføjer %s\n" | |||
|
4647 | ||||
|
4648 | #, python-format | |||
|
4649 | msgid "removing %s\n" | |||
|
4650 | msgstr "fjerner %s\n" | |||
|
4651 | ||||
|
4652 | #, python-format | |||
|
4653 | msgid "recording removal of %s as rename to %s (%d%% similar)\n" | |||
|
4654 | msgstr "noterer fjernelse af %s som en omdøbning til %s (%d%% lighed)\n" | |||
|
4655 | ||||
|
4656 | #, python-format | |||
|
4657 | msgid "%s: not copying - file is not managed\n" | |||
|
4658 | msgstr "%s: kopierer ikke - filen er ikke versionsstyret\n" | |||
|
4659 | ||||
|
4660 | #, python-format | |||
|
4661 | msgid "%s: not copying - file has been marked for remove\n" | |||
|
4662 | msgstr "%s: kopierer ikke - filen er markeret til sletning\n" | |||
|
4663 | ||||
|
4664 | #, python-format | |||
|
4665 | msgid "%s: not overwriting - %s collides with %s\n" | |||
|
4666 | msgstr "%s: overskriver ikke - %s kolliderer med %s\n" | |||
|
4667 | ||||
|
4668 | #, python-format | |||
|
4669 | msgid "%s: not overwriting - file exists\n" | |||
|
4670 | msgstr "%s: overskriver ikke - filen eksisterer\n" | |||
|
4671 | ||||
|
4672 | #, python-format | |||
|
4673 | msgid "%s: deleted in working copy\n" | |||
|
4674 | msgstr "%s: slettet i arbejdskopien\n" | |||
|
4675 | ||||
|
4676 | #, python-format | |||
|
4677 | msgid "%s: cannot copy - %s\n" | |||
|
4678 | msgstr "%s: kan ikke kopiere - %s\n" | |||
|
4679 | ||||
|
4680 | #, python-format | |||
|
4681 | msgid "%s %s to %s\n" | |||
|
4682 | msgstr "%s: %s til %s\n" | |||
|
4683 | ||||
|
4684 | #, python-format | |||
|
4685 | msgid "%s has not been committed yet, so no copy data will be stored for %s.\n" | |||
|
4686 | msgstr "" | |||
|
4687 | "%s er endnu ikke comitted, så der vil ikke blive gemt kopieringsdata for %" | |||
|
4688 | "s.\n" | |||
|
4689 | ||||
|
4690 | msgid "no source or destination specified" | |||
|
4691 | msgstr "ingen kilde eller destination angivet" | |||
|
4692 | ||||
|
4693 | msgid "no destination specified" | |||
|
4694 | msgstr "ingen destination angivet" | |||
|
4695 | ||||
|
4696 | msgid "with multiple sources, destination must be an existing directory" | |||
|
4697 | msgstr "" | |||
|
4698 | "destinationen skal være en eksisterende mappe når der angivet flere kilder" | |||
|
4699 | ||||
|
4700 | #, python-format | |||
|
4701 | msgid "destination %s is not a directory" | |||
|
4702 | msgstr "destinationen %s er ikke en mappe" | |||
|
4703 | ||||
|
4704 | msgid "no files to copy" | |||
|
4705 | msgstr "ingen filer at kopiere" | |||
|
4706 | ||||
|
4707 | msgid "(consider using --after)\n" | |||
|
4708 | msgstr "(overvej at bruge --after)\n" | |||
|
4709 | ||||
|
4710 | #, python-format | |||
|
4711 | msgid "changeset: %d:%s\n" | |||
|
4712 | msgstr "ændring: %d:%s\n" | |||
|
4713 | ||||
|
4714 | #, python-format | |||
|
4715 | msgid "branch: %s\n" | |||
|
4716 | msgstr "gren: %s\n" | |||
|
4717 | ||||
|
4718 | #, python-format | |||
|
4719 | msgid "tag: %s\n" | |||
|
4720 | msgstr "mærkat: %s\n" | |||
|
4721 | ||||
|
4722 | #, python-format | |||
|
4723 | msgid "parent: %d:%s\n" | |||
|
4724 | msgstr "forældre: %d:%s\n" | |||
|
4725 | ||||
|
4726 | #, python-format | |||
|
4727 | msgid "manifest: %d:%s\n" | |||
|
4728 | msgstr "" | |||
|
4729 | ||||
|
4730 | #, python-format | |||
|
4731 | msgid "user: %s\n" | |||
|
4732 | msgstr "bruger: %s\n" | |||
|
4733 | ||||
|
4734 | #, python-format | |||
|
4735 | msgid "date: %s\n" | |||
|
4736 | msgstr "dato: %s\n" | |||
|
4737 | ||||
|
4738 | msgid "files+:" | |||
|
4739 | msgstr "filer+:" | |||
|
4740 | ||||
|
4741 | msgid "files-:" | |||
|
4742 | msgstr "filer-:" | |||
|
4743 | ||||
|
4744 | msgid "files:" | |||
|
4745 | msgstr "" | |||
|
4746 | ||||
|
4747 | #, python-format | |||
|
4748 | msgid "files: %s\n" | |||
|
4749 | msgstr "filer: %s\n" | |||
|
4750 | ||||
|
4751 | #, python-format | |||
|
4752 | msgid "copies: %s\n" | |||
|
4753 | msgstr "kopier: %s\n" | |||
|
4754 | ||||
|
4755 | #, python-format | |||
|
4756 | msgid "extra: %s=%s\n" | |||
|
4757 | msgstr "ekstra: %s=%s\n" | |||
|
4758 | ||||
|
4759 | msgid "description:\n" | |||
|
4760 | msgstr "beskrivelse:\n" | |||
|
4761 | ||||
|
4762 | #, python-format | |||
|
4763 | msgid "summary: %s\n" | |||
|
4764 | msgstr "uddrag: %s\n" | |||
|
4765 | ||||
|
4766 | #, python-format | |||
|
4767 | msgid "%s: no key named '%s'" | |||
|
4768 | msgstr "" | |||
|
4769 | ||||
|
4770 | #, python-format | |||
|
4771 | msgid "%s: %s" | |||
|
4772 | msgstr "" | |||
|
4773 | ||||
|
4774 | #, python-format | |||
|
4775 | msgid "Found revision %s from %s\n" | |||
|
4776 | msgstr "" | |||
|
4777 | ||||
|
4778 | msgid "revision matching date not found" | |||
|
4779 | msgstr "" | |||
|
4780 | ||||
|
4781 | #, python-format | |||
|
4782 | msgid "cannot follow nonexistent file: \"%s\"" | |||
|
4783 | msgstr "" | |||
|
4784 | ||||
|
4785 | #, python-format | |||
|
4786 | msgid "%s:%s copy source revision cannot be found!\n" | |||
|
4787 | msgstr "" | |||
|
4788 | ||||
|
4789 | msgid "can only follow copies/renames for explicit file names" | |||
|
4790 | msgstr "" | |||
|
4791 | ||||
|
4792 | #, python-format | |||
|
4793 | msgid "file %s not found!" | |||
|
4794 | msgstr "filen %s blev ikke fundet!" | |||
|
4795 | ||||
|
4796 | #, python-format | |||
|
4797 | msgid "no match under directory %s!" | |||
|
4798 | msgstr "" | |||
|
4799 | ||||
|
4800 | #, python-format | |||
|
4801 | msgid "can't commit %s: unsupported file type!" | |||
|
4802 | msgstr "" | |||
|
4803 | ||||
|
4804 | #, python-format | |||
|
4805 | msgid "file %s not tracked!" | |||
|
4806 | msgstr "" | |||
|
4807 | ||||
|
4808 | msgid "" | |||
|
4809 | "add the specified files on the next commit\n" | |||
|
4810 | "\n" | |||
|
4811 | " Schedule files to be version controlled and added to the repository.\n" | |||
|
4812 | "\n" | |||
|
4813 | " The files will be added to the repository at the next commit. To\n" | |||
|
4814 | " undo an add before that, see hg revert.\n" | |||
|
4815 | "\n" | |||
|
4816 | " If no names are given, add all files in the repository.\n" | |||
|
4817 | " " | |||
|
4818 | msgstr "" | |||
|
4819 | "tilføj de angivne filer ved næste commit\n" | |||
|
4820 | "\n" | |||
|
4821 | " Opskriv filer til at blive versionsstyret og tilføjet til arkivet.\n" | |||
|
4822 | "\n" | |||
|
4823 | " Filerne vil bliver tilføjet til arkivet ved næste commit. For at\n" | |||
|
4824 | " omgøre en tilføjelse før det, se hg revert.\n" | |||
|
4825 | "\n" | |||
|
4826 | " Hvis der ikke er angivet nogen navne tilføjes alle filer i\n" | |||
|
4827 | " arkivet.\n" | |||
|
4828 | " " | |||
|
4829 | ||||
|
4830 | msgid "" | |||
|
4831 | "add all new files, delete all missing files\n" | |||
|
4832 | "\n" | |||
|
4833 | " Add all new files and remove all missing files from the repository.\n" | |||
|
4834 | "\n" | |||
|
4835 | " New files are ignored if they match any of the patterns in .hgignore. " | |||
|
4836 | "As\n" | |||
|
4837 | " with add, these changes take effect at the next commit.\n" | |||
|
4838 | "\n" | |||
|
4839 | " Use the -s option to detect renamed files. With a parameter > 0,\n" | |||
|
4840 | " this compares every removed file with every added file and records\n" | |||
|
4841 | " those similar enough as renames. This option takes a percentage\n" | |||
|
4842 | " between 0 (disabled) and 100 (files must be identical) as its\n" | |||
|
4843 | " parameter. Detecting renamed files this way can be expensive.\n" | |||
|
4844 | " " | |||
|
4845 | msgstr "" | |||
|
4846 | ||||
|
4847 | msgid "similarity must be a number" | |||
|
4848 | msgstr "" | |||
|
4849 | ||||
|
4850 | msgid "similarity must be between 0 and 100" | |||
|
4851 | msgstr "" | |||
|
4852 | ||||
|
4853 | msgid "" | |||
|
4854 | "show changeset information per file line\n" | |||
|
4855 | "\n" | |||
|
4856 | " List changes in files, showing the revision id responsible for each " | |||
|
4857 | "line\n" | |||
|
4858 | "\n" | |||
|
4859 | " This command is useful to discover who did a change or when a change " | |||
|
4860 | "took\n" | |||
|
4861 | " place.\n" | |||
|
4862 | "\n" | |||
|
4863 | " Without the -a option, annotate will avoid processing files it\n" | |||
|
4864 | " detects as binary. With -a, annotate will generate an annotation\n" | |||
|
4865 | " anyway, probably with undesirable results.\n" | |||
|
4866 | " " | |||
|
4867 | msgstr "" | |||
|
4868 | ||||
|
4869 | msgid "at least one file name or pattern required" | |||
|
4870 | msgstr "" | |||
|
4871 | ||||
|
4872 | msgid "at least one of -n/-c is required for -l" | |||
|
4873 | msgstr "" | |||
|
4874 | ||||
|
4875 | #, python-format | |||
|
4876 | msgid "%s: binary file\n" | |||
|
4877 | msgstr "" | |||
|
4878 | ||||
|
4879 | msgid "" | |||
|
4880 | "create unversioned archive of a repository revision\n" | |||
|
4881 | "\n" | |||
|
4882 | " By default, the revision used is the parent of the working\n" | |||
|
4883 | " directory; use \"-r\" to specify a different revision.\n" | |||
|
4884 | "\n" | |||
|
4885 | " To specify the type of archive to create, use \"-t\". Valid\n" | |||
|
4886 | " types are:\n" | |||
|
4887 | "\n" | |||
|
4888 | " \"files\" (default): a directory full of files\n" | |||
|
4889 | " \"tar\": tar archive, uncompressed\n" | |||
|
4890 | " \"tbz2\": tar archive, compressed using bzip2\n" | |||
|
4891 | " \"tgz\": tar archive, compressed using gzip\n" | |||
|
4892 | " \"uzip\": zip archive, uncompressed\n" | |||
|
4893 | " \"zip\": zip archive, compressed using deflate\n" | |||
|
4894 | "\n" | |||
|
4895 | " The exact name of the destination archive or directory is given\n" | |||
|
4896 | " using a format string; see \"hg help export\" for details.\n" | |||
|
4897 | "\n" | |||
|
4898 | " Each member added to an archive file has a directory prefix\n" | |||
|
4899 | " prepended. Use \"-p\" to specify a format string for the prefix.\n" | |||
|
4900 | " The default is the basename of the archive, with suffixes removed.\n" | |||
|
4901 | " " | |||
|
4902 | msgstr "" | |||
|
4903 | ||||
|
4904 | msgid "no working directory: please specify a revision" | |||
|
4905 | msgstr "" | |||
|
4906 | ||||
|
4907 | msgid "repository root cannot be destination" | |||
|
4908 | msgstr "" | |||
|
4909 | ||||
|
4910 | msgid "cannot archive plain files to stdout" | |||
|
4911 | msgstr "" | |||
|
4912 | ||||
|
4913 | msgid "" | |||
|
4914 | "reverse effect of earlier changeset\n" | |||
|
4915 | "\n" | |||
|
4916 | " Commit the backed out changes as a new changeset. The new\n" | |||
|
4917 | " changeset is a child of the backed out changeset.\n" | |||
|
4918 | "\n" | |||
|
4919 | " If you back out a changeset other than the tip, a new head is\n" | |||
|
4920 | " created. This head will be the new tip and you should merge this\n" | |||
|
4921 | " backout changeset with another head (current one by default).\n" | |||
|
4922 | "\n" | |||
|
4923 | " The --merge option remembers the parent of the working directory\n" | |||
|
4924 | " before starting the backout, then merges the new head with that\n" | |||
|
4925 | " changeset afterwards. This saves you from doing the merge by\n" | |||
|
4926 | " hand. The result of this merge is not committed, as for a normal\n" | |||
|
4927 | " merge.\n" | |||
|
4928 | "\n" | |||
|
4929 | " See 'hg help dates' for a list of formats valid for -d/--date.\n" | |||
|
4930 | " " | |||
|
4931 | msgstr "" | |||
|
4932 | ||||
|
4933 | msgid "please specify just one revision" | |||
|
4934 | msgstr "angiv venligst kun en revision" | |||
|
4935 | ||||
|
4936 | msgid "please specify a revision to backout" | |||
|
4937 | msgstr "" | |||
|
4938 | ||||
|
4939 | msgid "cannot back out change on a different branch" | |||
|
4940 | msgstr "kan ikke bakke en ændring på en anden gren ud" | |||
|
4941 | ||||
|
4942 | msgid "cannot back out a change with no parents" | |||
|
4943 | msgstr "kan ikke bakke en ændring ud uden forældre" | |||
|
4944 | ||||
|
4945 | msgid "cannot back out a merge changeset without --parent" | |||
|
4946 | msgstr "" | |||
|
4947 | ||||
|
4948 | #, python-format | |||
|
4949 | msgid "%s is not a parent of %s" | |||
|
4950 | msgstr "%s er ikke forældre til %s" | |||
|
4951 | ||||
|
4952 | msgid "cannot use --parent on non-merge changeset" | |||
|
4953 | msgstr "" | |||
|
4954 | ||||
|
4955 | #, python-format | |||
|
4956 | msgid "Backed out changeset %s" | |||
|
4957 | msgstr "" | |||
|
4958 | ||||
|
4959 | #, python-format | |||
|
4960 | msgid "changeset %s backs out changeset %s\n" | |||
|
4961 | msgstr "ændring %s bakker ændring %s ud\n" | |||
|
4962 | ||||
|
4963 | #, python-format | |||
|
4964 | msgid "merging with changeset %s\n" | |||
|
4965 | msgstr "" | |||
|
4966 | ||||
|
4967 | msgid "the backout changeset is a new head - do not forget to merge\n" | |||
|
4968 | msgstr "" | |||
|
4969 | ||||
|
4970 | msgid "(use \"backout --merge\" if you want to auto-merge)\n" | |||
|
4971 | msgstr "" | |||
|
4972 | ||||
|
4973 | msgid "" | |||
|
4974 | "subdivision search of changesets\n" | |||
|
4975 | "\n" | |||
|
4976 | " This command helps to find changesets which introduce problems.\n" | |||
|
4977 | " To use, mark the earliest changeset you know exhibits the problem\n" | |||
|
4978 | " as bad, then mark the latest changeset which is free from the\n" | |||
|
4979 | " problem as good. Bisect will update your working directory to a\n" | |||
|
4980 | " revision for testing (unless the --noupdate option is specified).\n" | |||
|
4981 | " Once you have performed tests, mark the working directory as bad\n" | |||
|
4982 | " or good and bisect will either update to another candidate changeset\n" | |||
|
4983 | " or announce that it has found the bad revision.\n" | |||
|
4984 | "\n" | |||
|
4985 | " As a shortcut, you can also use the revision argument to mark a\n" | |||
|
4986 | " revision as good or bad without checking it out first.\n" | |||
|
4987 | "\n" | |||
|
4988 | " If you supply a command it will be used for automatic bisection. Its " | |||
|
4989 | "exit\n" | |||
|
4990 | " status will be used as flag to mark revision as bad or good. In case " | |||
|
4991 | "exit\n" | |||
|
4992 | " status is 0 the revision is marked as good, 125 - skipped, 127 (command " | |||
|
4993 | "not\n" | |||
|
4994 | " found) - bisection will be aborted and any other status bigger than 0 " | |||
|
4995 | "will\n" | |||
|
4996 | " mark revision as bad.\n" | |||
|
4997 | " " | |||
|
4998 | msgstr "" | |||
|
4999 | ||||
|
5000 | #, python-format | |||
|
5001 | msgid "The first %s revision is:\n" | |||
|
5002 | msgstr "Den første %s revision er:\n" | |||
|
5003 | ||||
|
5004 | #, python-format | |||
|
5005 | msgid "Due to skipped revisions, the first %s revision could be any of:\n" | |||
|
5006 | msgstr "" | |||
|
5007 | ||||
|
5008 | msgid "cannot bisect (no known good revisions)" | |||
|
5009 | msgstr "" | |||
|
5010 | ||||
|
5011 | msgid "cannot bisect (no known bad revisions)" | |||
|
5012 | msgstr "" | |||
|
5013 | ||||
|
5014 | msgid "(use of 'hg bisect <cmd>' is deprecated)\n" | |||
|
5015 | msgstr "" | |||
|
5016 | ||||
|
5017 | msgid "incompatible arguments" | |||
|
5018 | msgstr "" | |||
|
5019 | ||||
|
5020 | #, python-format | |||
|
5021 | msgid "failed to execute %s" | |||
|
5022 | msgstr "" | |||
|
5023 | ||||
|
5024 | #, python-format | |||
|
5025 | msgid "%s killed" | |||
|
5026 | msgstr "%s dræbt" | |||
|
5027 | ||||
|
5028 | #, python-format | |||
|
5029 | msgid "Changeset %s: %s\n" | |||
|
5030 | msgstr "Ændring: %s: %s\n" | |||
|
5031 | ||||
|
5032 | #, python-format | |||
|
5033 | msgid "Testing changeset %s:%s (%s changesets remaining, ~%s tests)\n" | |||
|
5034 | msgstr "" | |||
|
5035 | ||||
|
5036 | msgid "" | |||
|
5037 | "set or show the current branch name\n" | |||
|
5038 | "\n" | |||
|
5039 | " With no argument, show the current branch name. With one argument,\n" | |||
|
5040 | " set the working directory branch name (the branch does not exist in\n" | |||
|
5041 | " the repository until the next commit).\n" | |||
|
5042 | "\n" | |||
|
5043 | " Unless --force is specified, branch will not let you set a\n" | |||
|
5044 | " branch name that shadows an existing branch.\n" | |||
|
5045 | "\n" | |||
|
5046 | " Use --clean to reset the working directory branch to that of the\n" | |||
|
5047 | " parent of the working directory, negating a previous branch change.\n" | |||
|
5048 | "\n" | |||
|
5049 | " Use the command 'hg update' to switch to an existing branch.\n" | |||
|
5050 | " " | |||
|
5051 | msgstr "" | |||
|
5052 | ||||
|
5053 | #, python-format | |||
|
5054 | msgid "reset working directory to branch %s\n" | |||
|
5055 | msgstr "" | |||
|
5056 | ||||
|
5057 | msgid "a branch of the same name already exists (use --force to override)" | |||
|
5058 | msgstr "" | |||
|
5059 | ||||
|
5060 | #, python-format | |||
|
5061 | msgid "marked working directory as branch %s\n" | |||
|
5062 | msgstr "" | |||
|
5063 | ||||
|
5064 | msgid "" | |||
|
5065 | "list repository named branches\n" | |||
|
5066 | "\n" | |||
|
5067 | " List the repository's named branches, indicating which ones are\n" | |||
|
5068 | " inactive. If active is specified, only show active branches.\n" | |||
|
5069 | "\n" | |||
|
5070 | " A branch is considered active if it contains repository heads.\n" | |||
|
5071 | "\n" | |||
|
5072 | " Use the command 'hg update' to switch to an existing branch.\n" | |||
|
5073 | " " | |||
|
5074 | msgstr "" | |||
|
5075 | ||||
|
5076 | msgid "" | |||
|
5077 | "create a changegroup file\n" | |||
|
5078 | "\n" | |||
|
5079 | " Generate a compressed changegroup file collecting changesets not\n" | |||
|
5080 | " found in the other repository.\n" | |||
|
5081 | "\n" | |||
|
5082 | " If no destination repository is specified the destination is\n" | |||
|
5083 | " assumed to have all the nodes specified by one or more --base\n" | |||
|
5084 | " parameters. To create a bundle containing all changesets, use\n" | |||
|
5085 | " --all (or --base null). To change the compression method applied,\n" | |||
|
5086 | " use the -t option (by default, bundles are compressed using bz2).\n" | |||
|
5087 | "\n" | |||
|
5088 | " The bundle file can then be transferred using conventional means and\n" | |||
|
5089 | " applied to another repository with the unbundle or pull command.\n" | |||
|
5090 | " This is useful when direct push and pull are not available or when\n" | |||
|
5091 | " exporting an entire repository is undesirable.\n" | |||
|
5092 | "\n" | |||
|
5093 | " Applying bundles preserves all changeset contents including\n" | |||
|
5094 | " permissions, copy/rename information, and revision history.\n" | |||
|
5095 | " " | |||
|
5096 | msgstr "" | |||
|
5097 | ||||
|
5098 | msgid "--base is incompatible with specifiying a destination" | |||
|
5099 | msgstr "" | |||
|
5100 | ||||
|
5101 | msgid "unknown bundle type specified with --type" | |||
|
5102 | msgstr "" | |||
|
5103 | ||||
|
5104 | msgid "" | |||
|
5105 | "output the current or given revision of files\n" | |||
|
5106 | "\n" | |||
|
5107 | " Print the specified files as they were at the given revision.\n" | |||
|
5108 | " If no revision is given, the parent of the working directory is used,\n" | |||
|
5109 | " or tip if no revision is checked out.\n" | |||
|
5110 | "\n" | |||
|
5111 | " Output may be to a file, in which case the name of the file is\n" | |||
|
5112 | " given using a format string. The formatting rules are the same as\n" | |||
|
5113 | " for the export command, with the following additions:\n" | |||
|
5114 | "\n" | |||
|
5115 | " %s basename of file being printed\n" | |||
|
5116 | " %d dirname of file being printed, or '.' if in repo root\n" | |||
|
5117 | " %p root-relative path name of file being printed\n" | |||
|
5118 | " " | |||
|
5119 | msgstr "" | |||
|
5120 | ||||
|
5121 | msgid "" | |||
|
5122 | "make a copy of an existing repository\n" | |||
|
5123 | "\n" | |||
|
5124 | " Create a copy of an existing repository in a new directory.\n" | |||
|
5125 | "\n" | |||
|
5126 | " If no destination directory name is specified, it defaults to the\n" | |||
|
5127 | " basename of the source.\n" | |||
|
5128 | "\n" | |||
|
5129 | " The location of the source is added to the new repository's\n" | |||
|
5130 | " .hg/hgrc file, as the default to be used for future pulls.\n" | |||
|
5131 | "\n" | |||
|
5132 | " For efficiency, hardlinks are used for cloning whenever the source\n" | |||
|
5133 | " and destination are on the same filesystem (note this applies only\n" | |||
|
5134 | " to the repository data, not to the checked out files). Some\n" | |||
|
5135 | " filesystems, such as AFS, implement hardlinking incorrectly, but\n" | |||
|
5136 | " do not report errors. In these cases, use the --pull option to\n" | |||
|
5137 | " avoid hardlinking.\n" | |||
|
5138 | "\n" | |||
|
5139 | " In some cases, you can clone repositories and checked out files\n" | |||
|
5140 | " using full hardlinks with\n" | |||
|
5141 | "\n" | |||
|
5142 | " $ cp -al REPO REPOCLONE\n" | |||
|
5143 | "\n" | |||
|
5144 | " This is the fastest way to clone, but it is not always safe. The\n" | |||
|
5145 | " operation is not atomic (making sure REPO is not modified during\n" | |||
|
5146 | " the operation is up to you) and you have to make sure your editor\n" | |||
|
5147 | " breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,\n" | |||
|
5148 | " this is not compatible with certain extensions that place their\n" | |||
|
5149 | " metadata under the .hg directory, such as mq.\n" | |||
|
5150 | "\n" | |||
|
5151 | " If you use the -r option to clone up to a specific revision, no\n" | |||
|
5152 | " subsequent revisions will be present in the cloned repository.\n" | |||
|
5153 | " This option implies --pull, even on local repositories.\n" | |||
|
5154 | "\n" | |||
|
5155 | " If the -U option is used, the new clone will contain only a repository\n" | |||
|
5156 | " (.hg) and no working copy (the working copy parent is the null " | |||
|
5157 | "revision).\n" | |||
|
5158 | "\n" | |||
|
5159 | " See 'hg help urls' for valid source format details.\n" | |||
|
5160 | "\n" | |||
|
5161 | " It is possible to specify an ssh:// URL as the destination, but no\n" | |||
|
5162 | " .hg/hgrc and working directory will be created on the remote side.\n" | |||
|
5163 | " Look at the help text for urls for important details about ssh:// URLs.\n" | |||
|
5164 | " " | |||
|
5165 | msgstr "" | |||
|
5166 | ||||
|
5167 | msgid "" | |||
|
5168 | "commit the specified files or all outstanding changes\n" | |||
|
5169 | "\n" | |||
|
5170 | " Commit changes to the given files into the repository.\n" | |||
|
5171 | "\n" | |||
|
5172 | " If a list of files is omitted, all changes reported by \"hg status\"\n" | |||
|
5173 | " will be committed.\n" | |||
|
5174 | "\n" | |||
|
5175 | " If you are committing the result of a merge, do not provide any\n" | |||
|
5176 | " file names or -I/-X filters.\n" | |||
|
5177 | "\n" | |||
|
5178 | " If no commit message is specified, the configured editor is started to\n" | |||
|
5179 | " enter a message.\n" | |||
|
5180 | "\n" | |||
|
5181 | " See 'hg help dates' for a list of formats valid for -d/--date.\n" | |||
|
5182 | " " | |||
|
5183 | msgstr "" | |||
|
5184 | ||||
|
5185 | msgid "created new head\n" | |||
|
5186 | msgstr "lavede et nyt hoved\n" | |||
|
5187 | ||||
|
5188 | #, python-format | |||
|
5189 | msgid "committed changeset %d:%s\n" | |||
|
5190 | msgstr "" | |||
|
5191 | ||||
|
5192 | msgid "" | |||
|
5193 | "mark files as copied for the next commit\n" | |||
|
5194 | "\n" | |||
|
5195 | " Mark dest as having copies of source files. If dest is a\n" | |||
|
5196 | " directory, copies are put in that directory. If dest is a file,\n" | |||
|
5197 | " there can only be one source.\n" | |||
|
5198 | "\n" | |||
|
5199 | " By default, this command copies the contents of files as they\n" | |||
|
5200 | " stand in the working directory. If invoked with --after, the\n" | |||
|
5201 | " operation is recorded, but no copying is performed.\n" | |||
|
5202 | "\n" | |||
|
5203 | " This command takes effect in the next commit. To undo a copy\n" | |||
|
5204 | " before that, see hg revert.\n" | |||
|
5205 | " " | |||
|
5206 | msgstr "" | |||
|
5207 | ||||
|
5208 | msgid "find the ancestor revision of two revisions in a given index" | |||
|
5209 | msgstr "" | |||
|
5210 | ||||
|
5211 | msgid "There is no Mercurial repository here (.hg not found)" | |||
|
5212 | msgstr "Der er ikke noget Mercurial arkiv her (fandt ikke .hg)" | |||
|
5213 | ||||
|
5214 | msgid "either two or three arguments required" | |||
|
5215 | msgstr "kræver enten to eller tre argumenter" | |||
|
5216 | ||||
|
5217 | msgid "returns the completion list associated with the given command" | |||
|
5218 | msgstr "" | |||
|
5219 | ||||
|
5220 | msgid "rebuild the dirstate as it would look like for the given revision" | |||
|
5221 | msgstr "" | |||
|
5222 | ||||
|
5223 | msgid "validate the correctness of the current dirstate" | |||
|
5224 | msgstr "" | |||
|
5225 | ||||
|
5226 | #, python-format | |||
|
5227 | msgid "%s in state %s, but not in manifest1\n" | |||
|
5228 | msgstr "" | |||
|
5229 | ||||
|
5230 | #, python-format | |||
|
5231 | msgid "%s in state %s, but also in manifest1\n" | |||
|
5232 | msgstr "" | |||
|
5233 | ||||
|
5234 | #, python-format | |||
|
5235 | msgid "%s in state %s, but not in either manifest\n" | |||
|
5236 | msgstr "" | |||
|
5237 | ||||
|
5238 | #, python-format | |||
|
5239 | msgid "%s in manifest1, but listed as state %s" | |||
|
5240 | msgstr "" | |||
|
5241 | ||||
|
5242 | msgid ".hg/dirstate inconsistent with current parent's manifest" | |||
|
5243 | msgstr "" | |||
|
5244 | ||||
|
5245 | msgid "" | |||
|
5246 | "show combined config settings from all hgrc files\n" | |||
|
5247 | "\n" | |||
|
5248 | " With no args, print names and values of all config items.\n" | |||
|
5249 | "\n" | |||
|
5250 | " With one arg of the form section.name, print just the value of\n" | |||
|
5251 | " that config item.\n" | |||
|
5252 | "\n" | |||
|
5253 | " With multiple args, print names and values of all config items\n" | |||
|
5254 | " with matching section names." | |||
|
5255 | msgstr "" | |||
|
5256 | ||||
|
5257 | msgid "only one config item permitted" | |||
|
5258 | msgstr "" | |||
|
5259 | ||||
|
5260 | msgid "" | |||
|
5261 | "manually set the parents of the current working directory\n" | |||
|
5262 | "\n" | |||
|
5263 | " This is useful for writing repository conversion tools, but should\n" | |||
|
5264 | " be used with care.\n" | |||
|
5265 | " " | |||
|
5266 | msgstr "" | |||
|
5267 | ||||
|
5268 | msgid "show the contents of the current dirstate" | |||
|
5269 | msgstr "" | |||
|
5270 | ||||
|
5271 | #, python-format | |||
|
5272 | msgid "copy: %s -> %s\n" | |||
|
5273 | msgstr "kopi: %s -> %s\n" | |||
|
5274 | ||||
|
5275 | msgid "dump the contents of a data file revision" | |||
|
5276 | msgstr "" | |||
|
5277 | ||||
|
5278 | #, python-format | |||
|
5279 | msgid "invalid revision identifier %s" | |||
|
5280 | msgstr "ugyldig revisionsidentification %s" | |||
|
5281 | ||||
|
5282 | msgid "parse and display a date" | |||
|
5283 | msgstr "" | |||
|
5284 | ||||
|
5285 | msgid "dump the contents of an index file" | |||
|
5286 | msgstr "" | |||
|
5287 | ||||
|
5288 | msgid "dump an index DAG as a .dot file" | |||
|
5289 | msgstr "" | |||
|
5290 | ||||
|
5291 | msgid "test Mercurial installation" | |||
|
5292 | msgstr "" | |||
|
5293 | ||||
|
5294 | #, python-format | |||
|
5295 | msgid "Checking encoding (%s)...\n" | |||
|
5296 | msgstr "" | |||
|
5297 | ||||
|
5298 | msgid " (check that your locale is properly set)\n" | |||
|
5299 | msgstr "" | |||
|
5300 | ||||
|
5301 | msgid "Checking extensions...\n" | |||
|
5302 | msgstr "" | |||
|
5303 | ||||
|
5304 | msgid " One or more extensions could not be found" | |||
|
5305 | msgstr "" | |||
|
5306 | ||||
|
5307 | msgid " (check that you compiled the extensions)\n" | |||
|
5308 | msgstr "" | |||
|
5309 | ||||
|
5310 | msgid "Checking templates...\n" | |||
|
5311 | msgstr "" | |||
|
5312 | ||||
|
5313 | msgid " (templates seem to have been installed incorrectly)\n" | |||
|
5314 | msgstr "" | |||
|
5315 | ||||
|
5316 | msgid "Checking patch...\n" | |||
|
5317 | msgstr "" | |||
|
5318 | ||||
|
5319 | msgid " patch call failed:\n" | |||
|
5320 | msgstr "" | |||
|
5321 | ||||
|
5322 | msgid " unexpected patch output!\n" | |||
|
5323 | msgstr "" | |||
|
5324 | ||||
|
5325 | msgid " patch test failed!\n" | |||
|
5326 | msgstr "" | |||
|
5327 | ||||
|
5328 | msgid "" | |||
|
5329 | " (Current patch tool may be incompatible with patch, or misconfigured. " | |||
|
5330 | "Please check your .hgrc file)\n" | |||
|
5331 | msgstr "" | |||
|
5332 | ||||
|
5333 | msgid "" | |||
|
5334 | " Internal patcher failure, please report this error to http://www.selenic." | |||
|
5335 | "com/mercurial/bts\n" | |||
|
5336 | msgstr "" | |||
|
5337 | ||||
|
5338 | msgid "Checking commit editor...\n" | |||
|
5339 | msgstr "" | |||
|
5340 | ||||
|
5341 | msgid " No commit editor set and can't find vi in PATH\n" | |||
|
5342 | msgstr "" | |||
|
5343 | ||||
|
5344 | msgid " (specify a commit editor in your .hgrc file)\n" | |||
|
5345 | msgstr "" | |||
|
5346 | ||||
|
5347 | #, python-format | |||
|
5348 | msgid " Can't find editor '%s' in PATH\n" | |||
|
5349 | msgstr "" | |||
|
5350 | ||||
|
5351 | msgid "Checking username...\n" | |||
|
5352 | msgstr "" | |||
|
5353 | ||||
|
5354 | msgid " (specify a username in your .hgrc file)\n" | |||
|
5355 | msgstr "" | |||
|
5356 | ||||
|
5357 | msgid "No problems detected\n" | |||
|
5358 | msgstr "Fandt ingen problemer\n" | |||
|
5359 | ||||
|
5360 | #, python-format | |||
|
5361 | msgid "%s problems detected, please check your install!\n" | |||
|
5362 | msgstr "" | |||
|
5363 | ||||
|
5364 | msgid "dump rename information" | |||
|
5365 | msgstr "" | |||
|
5366 | ||||
|
5367 | #, python-format | |||
|
5368 | msgid "%s renamed from %s:%s\n" | |||
|
5369 | msgstr "%s omdøbt fra %s:%s\n" | |||
|
5370 | ||||
|
5371 | #, python-format | |||
|
5372 | msgid "%s not renamed\n" | |||
|
5373 | msgstr "%s ikke omdøbt\n" | |||
|
5374 | ||||
|
5375 | msgid "show how files match on given patterns" | |||
|
5376 | msgstr "" | |||
|
5377 | ||||
|
5378 | msgid "" | |||
|
5379 | "diff repository (or selected files)\n" | |||
|
5380 | "\n" | |||
|
5381 | " Show differences between revisions for the specified files.\n" | |||
|
5382 | "\n" | |||
|
5383 | " Differences between files are shown using the unified diff format.\n" | |||
|
5384 | "\n" | |||
|
5385 | " NOTE: diff may generate unexpected results for merges, as it will\n" | |||
|
5386 | " default to comparing against the working directory's first parent\n" | |||
|
5387 | " changeset if no revisions are specified.\n" | |||
|
5388 | "\n" | |||
|
5389 | " When two revision arguments are given, then changes are shown\n" | |||
|
5390 | " between those revisions. If only one revision is specified then\n" | |||
|
5391 | " that revision is compared to the working directory, and, when no\n" | |||
|
5392 | " revisions are specified, the working directory files are compared\n" | |||
|
5393 | " to its parent.\n" | |||
|
5394 | "\n" | |||
|
5395 | " Without the -a option, diff will avoid generating diffs of files\n" | |||
|
5396 | " it detects as binary. With -a, diff will generate a diff anyway,\n" | |||
|
5397 | " probably with undesirable results.\n" | |||
|
5398 | "\n" | |||
|
5399 | " Use the --git option to generate diffs in the git extended diff\n" | |||
|
5400 | " format. Read the diffs help topic for more information.\n" | |||
|
5401 | " " | |||
|
5402 | msgstr "" | |||
|
5403 | ||||
|
5404 | msgid "" | |||
|
5405 | "dump the header and diffs for one or more changesets\n" | |||
|
5406 | "\n" | |||
|
5407 | " Print the changeset header and diffs for one or more revisions.\n" | |||
|
5408 | "\n" | |||
|
5409 | " The information shown in the changeset header is: author,\n" | |||
|
5410 | " changeset hash, parent(s) and commit comment.\n" | |||
|
5411 | "\n" | |||
|
5412 | " NOTE: export may generate unexpected diff output for merge changesets,\n" | |||
|
5413 | " as it will compare the merge changeset against its first parent only.\n" | |||
|
5414 | "\n" | |||
|
5415 | " Output may be to a file, in which case the name of the file is\n" | |||
|
5416 | " given using a format string. The formatting rules are as follows:\n" | |||
|
5417 | "\n" | |||
|
5418 | " %% literal \"%\" character\n" | |||
|
5419 | " %H changeset hash (40 bytes of hexadecimal)\n" | |||
|
5420 | " %N number of patches being generated\n" | |||
|
5421 | " %R changeset revision number\n" | |||
|
5422 | " %b basename of the exporting repository\n" | |||
|
5423 | " %h short-form changeset hash (12 bytes of hexadecimal)\n" | |||
|
5424 | " %n zero-padded sequence number, starting at 1\n" | |||
|
5425 | " %r zero-padded changeset revision number\n" | |||
|
5426 | "\n" | |||
|
5427 | " Without the -a option, export will avoid generating diffs of files\n" | |||
|
5428 | " it detects as binary. With -a, export will generate a diff anyway,\n" | |||
|
5429 | " probably with undesirable results.\n" | |||
|
5430 | "\n" | |||
|
5431 | " Use the --git option to generate diffs in the git extended diff\n" | |||
|
5432 | " format. Read the diffs help topic for more information.\n" | |||
|
5433 | "\n" | |||
|
5434 | " With the --switch-parent option, the diff will be against the second\n" | |||
|
5435 | " parent. It can be useful to review a merge.\n" | |||
|
5436 | " " | |||
|
5437 | msgstr "" | |||
|
5438 | ||||
|
5439 | msgid "export requires at least one changeset" | |||
|
5440 | msgstr "" | |||
|
5441 | ||||
|
5442 | msgid "exporting patches:\n" | |||
|
5443 | msgstr "" | |||
|
5444 | ||||
|
5445 | msgid "exporting patch:\n" | |||
|
5446 | msgstr "" | |||
|
5447 | ||||
|
5448 | msgid "" | |||
|
5449 | "search for a pattern in specified files and revisions\n" | |||
|
5450 | "\n" | |||
|
5451 | " Search revisions of files for a regular expression.\n" | |||
|
5452 | "\n" | |||
|
5453 | " This command behaves differently than Unix grep. It only accepts\n" | |||
|
5454 | " Python/Perl regexps. It searches repository history, not the\n" | |||
|
5455 | " working directory. It always prints the revision number in which\n" | |||
|
5456 | " a match appears.\n" | |||
|
5457 | "\n" | |||
|
5458 | " By default, grep only prints output for the first revision of a\n" | |||
|
5459 | " file in which it finds a match. To get it to print every revision\n" | |||
|
5460 | " that contains a change in match status (\"-\" for a match that\n" | |||
|
5461 | " becomes a non-match, or \"+\" for a non-match that becomes a match),\n" | |||
|
5462 | " use the --all flag.\n" | |||
|
5463 | " " | |||
|
5464 | msgstr "" | |||
|
5465 | ||||
|
5466 | #, python-format | |||
|
5467 | msgid "grep: invalid match pattern: %s\n" | |||
|
5468 | msgstr "" | |||
|
5469 | ||||
|
5470 | msgid "" | |||
|
5471 | "show current repository heads or show branch heads\n" | |||
|
5472 | "\n" | |||
|
5473 | " With no arguments, show all repository head changesets.\n" | |||
|
5474 | "\n" | |||
|
5475 | " If branch or revisions names are given this will show the heads of\n" | |||
|
5476 | " the specified branches or the branches those revisions are tagged\n" | |||
|
5477 | " with.\n" | |||
|
5478 | "\n" | |||
|
5479 | " Repository \"heads\" are changesets that don't have child\n" | |||
|
5480 | " changesets. They are where development generally takes place and\n" | |||
|
5481 | " are the usual targets for update and merge operations.\n" | |||
|
5482 | "\n" | |||
|
5483 | " Branch heads are changesets that have a given branch tag, but have\n" | |||
|
5484 | " no child changesets with that tag. They are usually where\n" | |||
|
5485 | " development on the given branch takes place.\n" | |||
|
5486 | " " | |||
|
5487 | msgstr "" | |||
|
5488 | ||||
|
5489 | #, python-format | |||
|
5490 | msgid "no changes on branch %s containing %s are reachable from %s\n" | |||
|
5491 | msgstr "" | |||
|
5492 | ||||
|
5493 | #, python-format | |||
|
5494 | msgid "no changes on branch %s are reachable from %s\n" | |||
|
5495 | msgstr "" | |||
|
5496 | ||||
|
5497 | msgid "" | |||
|
5498 | "show help for a given topic or a help overview\n" | |||
|
5499 | "\n" | |||
|
5500 | " With no arguments, print a list of commands and short help.\n" | |||
|
5501 | "\n" | |||
|
5502 | " Given a topic, extension, or command name, print help for that topic." | |||
|
5503 | msgstr "" | |||
|
5504 | ||||
|
5505 | msgid "global options:" | |||
|
5506 | msgstr "" | |||
|
5507 | ||||
|
5508 | msgid "use \"hg help\" for the full list of commands" | |||
|
5509 | msgstr "brug \"hg help\" for den fulde liste af kommandoer" | |||
|
5510 | ||||
|
5511 | msgid "use \"hg help\" for the full list of commands or \"hg -v\" for details" | |||
|
5512 | msgstr "" | |||
|
5513 | "brug \"hg help\" for den fulde liste af kommandoer eller \"hg -v\" for " | |||
|
5514 | "detaljer" | |||
|
5515 | ||||
|
5516 | #, python-format | |||
|
5517 | msgid "use \"hg -v help%s\" to show aliases and global options" | |||
|
5518 | msgstr "brug \"hg -v help%s\" for at vise aliaser og globale valgmuligheder" | |||
|
5519 | ||||
|
5520 | #, python-format | |||
|
5521 | msgid "use \"hg -v help %s\" to show global options" | |||
|
5522 | msgstr "brug \"hg -v help %s\" for at vise globale valgmuligheder" | |||
|
5523 | ||||
|
5524 | msgid "" | |||
|
5525 | "list of commands:\n" | |||
|
5526 | "\n" | |||
|
5527 | msgstr "" | |||
|
5528 | "liste af kommandoer:\n" | |||
|
5529 | "\n" | |||
|
5530 | ||||
|
5531 | #, python-format | |||
|
5532 | msgid "" | |||
|
5533 | "\n" | |||
|
5534 | "aliases: %s\n" | |||
|
5535 | msgstr "" | |||
|
5536 | "\n" | |||
|
5537 | "aliaser %s:\n" | |||
|
5538 | ||||
|
5539 | msgid "(no help text available)" | |||
|
5540 | msgstr "(ingen hjælpetekst tilgængelig)" | |||
|
5541 | ||||
|
5542 | msgid "options:\n" | |||
|
5543 | msgstr "valgmuligheder:\n" | |||
|
5544 | ||||
|
5545 | msgid "no commands defined\n" | |||
|
5546 | msgstr "ingen kommandoer defineret\n" | |||
|
5547 | ||||
|
5548 | msgid "" | |||
|
5549 | "\n" | |||
|
5550 | "enabled extensions:\n" | |||
|
5551 | "\n" | |||
|
5552 | msgstr "" | |||
|
5553 | "\n" | |||
|
5554 | "aktiverede udvidelser:\n" | |||
|
5555 | "\n" | |||
|
5556 | ||||
|
5557 | #, python-format | |||
|
5558 | msgid " %s %s\n" | |||
|
5559 | msgstr "" | |||
|
5560 | ||||
|
5561 | msgid "no help text available" | |||
|
5562 | msgstr "ingen hjælpetekst tilgængelig" | |||
|
5563 | ||||
|
5564 | #, python-format | |||
|
5565 | msgid "%s extension - %s\n" | |||
|
5566 | msgstr "" | |||
|
5567 | ||||
|
5568 | msgid "Mercurial Distributed SCM\n" | |||
|
5569 | msgstr "Mercurial Distribueret SCM\n" | |||
|
5570 | ||||
|
5571 | msgid "" | |||
|
5572 | "basic commands:\n" | |||
|
5573 | "\n" | |||
|
5574 | msgstr "" | |||
|
5575 | "basale kommandoer:\n" | |||
|
5576 | "\n" | |||
|
5577 | ||||
|
5578 | msgid "" | |||
|
5579 | "\n" | |||
|
5580 | "additional help topics:\n" | |||
|
5581 | "\n" | |||
|
5582 | msgstr "" | |||
|
5583 | "\n" | |||
|
5584 | "yderligere hjælpeemner:\n" | |||
|
5585 | "\n" | |||
|
5586 | ||||
|
5587 | msgid "" | |||
|
5588 | "identify the working copy or specified revision\n" | |||
|
5589 | "\n" | |||
|
5590 | " With no revision, print a summary of the current state of the repo.\n" | |||
|
5591 | "\n" | |||
|
5592 | " With a path, do a lookup in another repository.\n" | |||
|
5593 | "\n" | |||
|
5594 | " This summary identifies the repository state using one or two parent\n" | |||
|
5595 | " hash identifiers, followed by a \"+\" if there are uncommitted changes\n" | |||
|
5596 | " in the working directory, a list of tags for this revision and a branch\n" | |||
|
5597 | " name for non-default branches.\n" | |||
|
5598 | " " | |||
|
5599 | msgstr "" | |||
|
5600 | ||||
|
5601 | msgid "" | |||
|
5602 | "import an ordered set of patches\n" | |||
|
5603 | "\n" | |||
|
5604 | " Import a list of patches and commit them individually.\n" | |||
|
5605 | "\n" | |||
|
5606 | " If there are outstanding changes in the working directory, import\n" | |||
|
5607 | " will abort unless given the -f flag.\n" | |||
|
5608 | "\n" | |||
|
5609 | " You can import a patch straight from a mail message. Even patches\n" | |||
|
5610 | " as attachments work (body part must be type text/plain or\n" | |||
|
5611 | " text/x-patch to be used). From and Subject headers of email\n" | |||
|
5612 | " message are used as default committer and commit message. All\n" | |||
|
5613 | " text/plain body parts before first diff are added to commit\n" | |||
|
5614 | " message.\n" | |||
|
5615 | "\n" | |||
|
5616 | " If the imported patch was generated by hg export, user and description\n" | |||
|
5617 | " from patch override values from message headers and body. Values\n" | |||
|
5618 | " given on command line with -m and -u override these.\n" | |||
|
5619 | "\n" | |||
|
5620 | " If --exact is specified, import will set the working directory\n" | |||
|
5621 | " to the parent of each patch before applying it, and will abort\n" | |||
|
5622 | " if the resulting changeset has a different ID than the one\n" | |||
|
5623 | " recorded in the patch. This may happen due to character set\n" | |||
|
5624 | " problems or other deficiencies in the text patch format.\n" | |||
|
5625 | "\n" | |||
|
5626 | " With --similarity, hg will attempt to discover renames and copies\n" | |||
|
5627 | " in the patch in the same way as 'addremove'.\n" | |||
|
5628 | "\n" | |||
|
5629 | " To read a patch from standard input, use patch name \"-\".\n" | |||
|
5630 | " See 'hg help dates' for a list of formats valid for -d/--date.\n" | |||
|
5631 | " " | |||
|
5632 | msgstr "" | |||
|
5633 | ||||
|
5634 | msgid "applying patch from stdin\n" | |||
|
5635 | msgstr "" | |||
|
5636 | ||||
|
5637 | msgid "no diffs found" | |||
|
5638 | msgstr "" | |||
|
5639 | ||||
|
5640 | #, python-format | |||
|
5641 | msgid "" | |||
|
5642 | "message:\n" | |||
|
5643 | "%s\n" | |||
|
5644 | msgstr "" | |||
|
5645 | "meddelse:\n" | |||
|
5646 | "%s\n" | |||
|
5647 | ||||
|
5648 | msgid "not a mercurial patch" | |||
|
5649 | msgstr "" | |||
|
5650 | ||||
|
5651 | msgid "patch is damaged or loses information" | |||
|
5652 | msgstr "" | |||
|
5653 | ||||
|
5654 | msgid "" | |||
|
5655 | "show new changesets found in source\n" | |||
|
5656 | "\n" | |||
|
5657 | " Show new changesets found in the specified path/URL or the default\n" | |||
|
5658 | " pull location. These are the changesets that would be pulled if a pull\n" | |||
|
5659 | " was requested.\n" | |||
|
5660 | "\n" | |||
|
5661 | " For remote repository, using --bundle avoids downloading the changesets\n" | |||
|
5662 | " twice if the incoming is followed by a pull.\n" | |||
|
5663 | "\n" | |||
|
5664 | " See pull for valid source format details.\n" | |||
|
5665 | " " | |||
|
5666 | msgstr "" | |||
|
5667 | ||||
|
5668 | msgid "" | |||
|
5669 | "create a new repository in the given directory\n" | |||
|
5670 | "\n" | |||
|
5671 | " Initialize a new repository in the given directory. If the given\n" | |||
|
5672 | " directory does not exist, it is created.\n" | |||
|
5673 | "\n" | |||
|
5674 | " If no directory is given, the current directory is used.\n" | |||
|
5675 | "\n" | |||
|
5676 | " It is possible to specify an ssh:// URL as the destination.\n" | |||
|
5677 | " See 'hg help urls' for more information.\n" | |||
|
5678 | " " | |||
|
5679 | msgstr "" | |||
|
5680 | ||||
|
5681 | msgid "" | |||
|
5682 | "locate files matching specific patterns\n" | |||
|
5683 | "\n" | |||
|
5684 | " Print all files under Mercurial control whose names match the\n" | |||
|
5685 | " given patterns.\n" | |||
|
5686 | "\n" | |||
|
5687 | " This command searches the entire repository by default. To search\n" | |||
|
5688 | " just the current directory and its subdirectories, use\n" | |||
|
5689 | " \"--include .\".\n" | |||
|
5690 | "\n" | |||
|
5691 | " If no patterns are given to match, this command prints all file\n" | |||
|
5692 | " names.\n" | |||
|
5693 | "\n" | |||
|
5694 | " If you want to feed the output of this command into the \"xargs\"\n" | |||
|
5695 | " command, use the \"-0\" option to both this command and \"xargs\".\n" | |||
|
5696 | " This will avoid the problem of \"xargs\" treating single filenames\n" | |||
|
5697 | " that contain white space as multiple filenames.\n" | |||
|
5698 | " " | |||
|
5699 | msgstr "" | |||
|
5700 | ||||
|
5701 | msgid "" | |||
|
5702 | "show revision history of entire repository or files\n" | |||
|
5703 | "\n" | |||
|
5704 | " Print the revision history of the specified files or the entire\n" | |||
|
5705 | " project.\n" | |||
|
5706 | "\n" | |||
|
5707 | " File history is shown without following rename or copy history of\n" | |||
|
5708 | " files. Use -f/--follow with a file name to follow history across\n" | |||
|
5709 | " renames and copies. --follow without a file name will only show\n" | |||
|
5710 | " ancestors or descendants of the starting revision. --follow-first\n" | |||
|
5711 | " only follows the first parent of merge revisions.\n" | |||
|
5712 | "\n" | |||
|
5713 | " If no revision range is specified, the default is tip:0 unless\n" | |||
|
5714 | " --follow is set, in which case the working directory parent is\n" | |||
|
5715 | " used as the starting revision.\n" | |||
|
5716 | "\n" | |||
|
5717 | " See 'hg help dates' for a list of formats valid for -d/--date.\n" | |||
|
5718 | "\n" | |||
|
5719 | " By default this command outputs: changeset id and hash, tags,\n" | |||
|
5720 | " non-trivial parents, user, date and time, and a summary for each\n" | |||
|
5721 | " commit. When the -v/--verbose switch is used, the list of changed\n" | |||
|
5722 | " files and full commit message is shown.\n" | |||
|
5723 | "\n" | |||
|
5724 | " NOTE: log -p may generate unexpected diff output for merge\n" | |||
|
5725 | " changesets, as it will compare the merge changeset against its\n" | |||
|
5726 | " first parent only. Also, the files: list will only reflect files\n" | |||
|
5727 | " that are different from BOTH parents.\n" | |||
|
5728 | "\n" | |||
|
5729 | " " | |||
|
5730 | msgstr "" | |||
|
5731 | ||||
|
5732 | msgid "" | |||
|
5733 | "looks up all renames for a file (up to endrev) the first\n" | |||
|
5734 | " time the file is given. It indexes on the changerev and only\n" | |||
|
5735 | " parses the manifest if linkrev != changerev.\n" | |||
|
5736 | " Returns rename info for fn at changerev rev." | |||
|
5737 | msgstr "" | |||
|
5738 | ||||
|
5739 | msgid "" | |||
|
5740 | "output the current or given revision of the project manifest\n" | |||
|
5741 | "\n" | |||
|
5742 | " Print a list of version controlled files for the given revision.\n" | |||
|
5743 | " If no revision is given, the parent of the working directory is used,\n" | |||
|
5744 | " or tip if no revision is checked out.\n" | |||
|
5745 | "\n" | |||
|
5746 | " The manifest is the list of files being version controlled. If no " | |||
|
5747 | "revision\n" | |||
|
5748 | " is given then the first parent of the working directory is used.\n" | |||
|
5749 | "\n" | |||
|
5750 | " With -v flag, print file permissions, symlink and executable bits. With\n" | |||
|
5751 | " --debug flag, print file revision hashes.\n" | |||
|
5752 | " " | |||
|
5753 | msgstr "" | |||
|
5754 | ||||
|
5755 | msgid "" | |||
|
5756 | "merge working directory with another revision\n" | |||
|
5757 | "\n" | |||
|
5758 | " Merge the contents of the current working directory and the\n" | |||
|
5759 | " requested revision. Files that changed between either parent are\n" | |||
|
5760 | " marked as changed for the next commit and a commit must be\n" | |||
|
5761 | " performed before any further updates are allowed.\n" | |||
|
5762 | "\n" | |||
|
5763 | " If no revision is specified, the working directory's parent is a\n" | |||
|
5764 | " head revision, and the current branch contains exactly one other head,\n" | |||
|
5765 | " the other head is merged with by default. Otherwise, an explicit\n" | |||
|
5766 | " revision to merge with must be provided.\n" | |||
|
5767 | " " | |||
|
5768 | msgstr "" | |||
|
5769 | ||||
|
5770 | #, python-format | |||
|
5771 | msgid "branch '%s' has %d heads - please merge with an explicit rev" | |||
|
5772 | msgstr "" | |||
|
5773 | ||||
|
5774 | #, python-format | |||
|
5775 | msgid "branch '%s' has one head - please merge with an explicit rev" | |||
|
5776 | msgstr "" | |||
|
5777 | ||||
|
5778 | msgid "there is nothing to merge" | |||
|
5779 | msgstr "" | |||
|
5780 | ||||
|
5781 | #, python-format | |||
|
5782 | msgid "%s - use \"hg update\" instead" | |||
|
5783 | msgstr "%s - brug \"hg update\" istedet" | |||
|
5784 | ||||
|
5785 | msgid "" | |||
|
5786 | "working dir not at a head rev - use \"hg update\" or merge with an explicit " | |||
|
5787 | "rev" | |||
|
5788 | msgstr "" | |||
|
5789 | ||||
|
5790 | msgid "" | |||
|
5791 | "show changesets not found in destination\n" | |||
|
5792 | "\n" | |||
|
5793 | " Show changesets not found in the specified destination repository or\n" | |||
|
5794 | " the default push location. These are the changesets that would be " | |||
|
5795 | "pushed\n" | |||
|
5796 | " if a push was requested.\n" | |||
|
5797 | "\n" | |||
|
5798 | " See pull for valid destination format details.\n" | |||
|
5799 | " " | |||
|
5800 | msgstr "" | |||
|
5801 | ||||
|
5802 | msgid "" | |||
|
5803 | "show the parents of the working dir or revision\n" | |||
|
5804 | "\n" | |||
|
5805 | " Print the working directory's parent revisions. If a\n" | |||
|
5806 | " revision is given via --rev, the parent of that revision\n" | |||
|
5807 | " will be printed. If a file argument is given, revision in\n" | |||
|
5808 | " which the file was last changed (before the working directory\n" | |||
|
5809 | " revision or the argument to --rev if given) is printed.\n" | |||
|
5810 | " " | |||
|
5811 | msgstr "" | |||
|
5812 | ||||
|
5813 | msgid "can only specify an explicit file name" | |||
|
5814 | msgstr "" | |||
|
5815 | ||||
|
5816 | #, python-format | |||
|
5817 | msgid "'%s' not found in manifest!" | |||
|
5818 | msgstr "" | |||
|
5819 | ||||
|
5820 | msgid "" | |||
|
5821 | "show aliases for remote repositories\n" | |||
|
5822 | "\n" | |||
|
5823 | " Show definition of symbolic path name NAME. If no name is given, show\n" | |||
|
5824 | " definition of available names.\n" | |||
|
5825 | "\n" | |||
|
5826 | " Path names are defined in the [paths] section of /etc/mercurial/hgrc\n" | |||
|
5827 | " and $HOME/.hgrc. If run inside a repository, .hg/hgrc is used, too.\n" | |||
|
5828 | "\n" | |||
|
5829 | " See 'hg help urls' for more information.\n" | |||
|
5830 | " " | |||
|
5831 | msgstr "" | |||
|
5832 | ||||
|
5833 | msgid "not found!\n" | |||
|
5834 | msgstr "ikke fundet!\n" | |||
|
5835 | ||||
|
5836 | msgid "not updating, since new heads added\n" | |||
|
5837 | msgstr "opdaterer ikke idet nye hoveder er tilføjet\n" | |||
|
5838 | ||||
|
5839 | msgid "(run 'hg heads' to see heads, 'hg merge' to merge)\n" | |||
|
5840 | msgstr "(kør 'hg heads' for at se hoveder, 'hg merge' for at sammenføje)\n" | |||
|
5841 | ||||
|
5842 | msgid "(run 'hg update' to get a working copy)\n" | |||
|
5843 | msgstr "(kør 'hg update' for at få en arbejdskopi)\n" | |||
|
5844 | ||||
|
5845 | msgid "" | |||
|
5846 | "pull changes from the specified source\n" | |||
|
5847 | "\n" | |||
|
5848 | " Pull changes from a remote repository to a local one.\n" | |||
|
5849 | "\n" | |||
|
5850 | " This finds all changes from the repository at the specified path\n" | |||
|
5851 | " or URL and adds them to the local repository. By default, this\n" | |||
|
5852 | " does not update the copy of the project in the working directory.\n" | |||
|
5853 | "\n" | |||
|
5854 | " If SOURCE is omitted, the 'default' path will be used.\n" | |||
|
5855 | " See 'hg help urls' for more information.\n" | |||
|
5856 | " " | |||
|
5857 | msgstr "" | |||
|
5858 | ||||
|
5859 | msgid "" | |||
|
5860 | "Other repository doesn't support revision lookup, so a rev cannot be " | |||
|
5861 | "specified." | |||
|
5862 | msgstr "" | |||
|
5863 | ||||
|
5864 | msgid "" | |||
|
5865 | "push changes to the specified destination\n" | |||
|
5866 | "\n" | |||
|
5867 | " Push changes from the local repository to the given destination.\n" | |||
|
5868 | "\n" | |||
|
5869 | " This is the symmetrical operation for pull. It helps to move\n" | |||
|
5870 | " changes from the current repository to a different one. If the\n" | |||
|
5871 | " destination is local this is identical to a pull in that directory\n" | |||
|
5872 | " from the current one.\n" | |||
|
5873 | "\n" | |||
|
5874 | " By default, push will refuse to run if it detects the result would\n" | |||
|
5875 | " increase the number of remote heads. This generally indicates the\n" | |||
|
5876 | " the client has forgotten to pull and merge before pushing.\n" | |||
|
5877 | "\n" | |||
|
5878 | " If -r is used, the named changeset and all its ancestors will be pushed\n" | |||
|
5879 | " to the remote repository.\n" | |||
|
5880 | "\n" | |||
|
5881 | " Look at the help text for urls for important details about ssh:// URLs.\n" | |||
|
5882 | " If DESTINATION is omitted, a default path will be used.\n" | |||
|
5883 | " See 'hg help urls' for more information.\n" | |||
|
5884 | " " | |||
|
5885 | msgstr "" | |||
|
5886 | ||||
|
5887 | #, python-format | |||
|
5888 | msgid "pushing to %s\n" | |||
|
5889 | msgstr "skubber til %s\n" | |||
|
5890 | ||||
|
5891 | msgid "" | |||
|
5892 | "raw commit interface (DEPRECATED)\n" | |||
|
5893 | "\n" | |||
|
5894 | " (DEPRECATED)\n" | |||
|
5895 | " Lowlevel commit, for use in helper scripts.\n" | |||
|
5896 | "\n" | |||
|
5897 | " This command is not intended to be used by normal users, as it is\n" | |||
|
5898 | " primarily useful for importing from other SCMs.\n" | |||
|
5899 | "\n" | |||
|
5900 | " This command is now deprecated and will be removed in a future\n" | |||
|
5901 | " release, please use debugsetparents and commit instead.\n" | |||
|
5902 | " " | |||
|
5903 | msgstr "" | |||
|
5904 | ||||
|
5905 | msgid "(the rawcommit command is deprecated)\n" | |||
|
5906 | msgstr "" | |||
|
5907 | ||||
|
5908 | msgid "" | |||
|
5909 | "roll back an interrupted transaction\n" | |||
|
5910 | "\n" | |||
|
5911 | " Recover from an interrupted commit or pull.\n" | |||
|
5912 | "\n" | |||
|
5913 | " This command tries to fix the repository status after an interrupted\n" | |||
|
5914 | " operation. It should only be necessary when Mercurial suggests it.\n" | |||
|
5915 | " " | |||
|
5916 | msgstr "" | |||
|
5917 | ||||
|
5918 | msgid "" | |||
|
5919 | "remove the specified files on the next commit\n" | |||
|
5920 | "\n" | |||
|
5921 | " Schedule the indicated files for removal from the repository.\n" | |||
|
5922 | "\n" | |||
|
5923 | " This only removes files from the current branch, not from the entire\n" | |||
|
5924 | " project history. -A can be used to remove only files that have already\n" | |||
|
5925 | " been deleted, -f can be used to force deletion, and -Af can be used\n" | |||
|
5926 | " to remove files from the next revision without deleting them.\n" | |||
|
5927 | "\n" | |||
|
5928 | " The following table details the behavior of remove for different file\n" | |||
|
5929 | " states (columns) and option combinations (rows). The file states are\n" | |||
|
5930 | " Added, Clean, Modified and Missing (as reported by hg status). The\n" | |||
|
5931 | " actions are Warn, Remove (from branch) and Delete (from disk).\n" | |||
|
5932 | "\n" | |||
|
5933 | " A C M !\n" | |||
|
5934 | " none W RD W R\n" | |||
|
5935 | " -f R RD RD R\n" | |||
|
5936 | " -A W W W R\n" | |||
|
5937 | " -Af R R R R\n" | |||
|
5938 | "\n" | |||
|
5939 | " This command schedules the files to be removed at the next commit.\n" | |||
|
5940 | " To undo a remove before that, see hg revert.\n" | |||
|
5941 | " " | |||
|
5942 | msgstr "" | |||
|
5943 | ||||
|
5944 | msgid "no files specified" | |||
|
5945 | msgstr "" | |||
|
5946 | ||||
|
5947 | #, python-format | |||
|
5948 | msgid "not removing %s: file %s (use -f to force removal)\n" | |||
|
5949 | msgstr "fjerner ikke %s: filen %s (brug -f for at forcere fjernelsen)\n" | |||
|
5950 | ||||
|
5951 | msgid "still exists" | |||
|
5952 | msgstr "eksisterer stadig" | |||
|
5953 | ||||
|
5954 | msgid "is modified" | |||
|
5955 | msgstr "er modificeret" | |||
|
5956 | ||||
|
5957 | msgid "has been marked for add" | |||
|
5958 | msgstr "er markeret som tilføjet" | |||
|
5959 | ||||
|
5960 | msgid "" | |||
|
5961 | "rename files; equivalent of copy + remove\n" | |||
|
5962 | "\n" | |||
|
5963 | " Mark dest as copies of sources; mark sources for deletion. If\n" | |||
|
5964 | " dest is a directory, copies are put in that directory. If dest is\n" | |||
|
5965 | " a file, there can only be one source.\n" | |||
|
5966 | "\n" | |||
|
5967 | " By default, this command copies the contents of files as they\n" | |||
|
5968 | " stand in the working directory. If invoked with --after, the\n" | |||
|
5969 | " operation is recorded, but no copying is performed.\n" | |||
|
5970 | "\n" | |||
|
5971 | " This command takes effect in the next commit. To undo a rename\n" | |||
|
5972 | " before that, see hg revert.\n" | |||
|
5973 | " " | |||
|
5974 | msgstr "" | |||
|
5975 | ||||
|
5976 | msgid "" | |||
|
5977 | "retry file merges from a merge or update\n" | |||
|
5978 | "\n" | |||
|
5979 | " This command will cleanly retry unresolved file merges using file\n" | |||
|
5980 | " revisions preserved from the last update or merge. To attempt to\n" | |||
|
5981 | " resolve all unresolved files, use the -a switch.\n" | |||
|
5982 | "\n" | |||
|
5983 | " This command will also allow listing resolved files and manually\n" | |||
|
5984 | " marking and unmarking files as resolved.\n" | |||
|
5985 | "\n" | |||
|
5986 | " The codes used to show the status of files are:\n" | |||
|
5987 | " U = unresolved\n" | |||
|
5988 | " R = resolved\n" | |||
|
5989 | " " | |||
|
5990 | msgstr "" | |||
|
5991 | ||||
|
5992 | msgid "too many options specified" | |||
|
5993 | msgstr "" | |||
|
5994 | ||||
|
5995 | msgid "can't specify --all and patterns" | |||
|
5996 | msgstr "" | |||
|
5997 | ||||
|
5998 | msgid "no files or directories specified; use --all to remerge all files" | |||
|
5999 | msgstr "" | |||
|
6000 | "ingen filer eller mapper specificeret; brug --all for at gen-sammenføje alle " | |||
|
6001 | "filerne" | |||
|
6002 | ||||
|
6003 | msgid "" | |||
|
6004 | "restore individual files or dirs to an earlier state\n" | |||
|
6005 | "\n" | |||
|
6006 | " (use update -r to check out earlier revisions, revert does not\n" | |||
|
6007 | " change the working dir parents)\n" | |||
|
6008 | "\n" | |||
|
6009 | " With no revision specified, revert the named files or directories\n" | |||
|
6010 | " to the contents they had in the parent of the working directory.\n" | |||
|
6011 | " This restores the contents of the affected files to an unmodified\n" | |||
|
6012 | " state and unschedules adds, removes, copies, and renames. If the\n" | |||
|
6013 | " working directory has two parents, you must explicitly specify the\n" | |||
|
6014 | " revision to revert to.\n" | |||
|
6015 | "\n" | |||
|
6016 | " Using the -r option, revert the given files or directories to their\n" | |||
|
6017 | " contents as of a specific revision. This can be helpful to \"roll\n" | |||
|
6018 | " back\" some or all of an earlier change.\n" | |||
|
6019 | " See 'hg help dates' for a list of formats valid for -d/--date.\n" | |||
|
6020 | "\n" | |||
|
6021 | " Revert modifies the working directory. It does not commit any\n" | |||
|
6022 | " changes, or change the parent of the working directory. If you\n" | |||
|
6023 | " revert to a revision other than the parent of the working\n" | |||
|
6024 | " directory, the reverted files will thus appear modified\n" | |||
|
6025 | " afterwards.\n" | |||
|
6026 | "\n" | |||
|
6027 | " If a file has been deleted, it is restored. If the executable\n" | |||
|
6028 | " mode of a file was changed, it is reset.\n" | |||
|
6029 | "\n" | |||
|
6030 | " If names are given, all files matching the names are reverted.\n" | |||
|
6031 | " If no arguments are given, no files are reverted.\n" | |||
|
6032 | "\n" | |||
|
6033 | " Modified files are saved with a .orig suffix before reverting.\n" | |||
|
6034 | " To disable these backups, use --no-backup.\n" | |||
|
6035 | " " | |||
|
6036 | msgstr "" | |||
|
6037 | ||||
|
6038 | msgid "you can't specify a revision and a date" | |||
|
6039 | msgstr "du kan ikke specificeret en revision og en dato" | |||
|
6040 | ||||
|
6041 | msgid "no files or directories specified; use --all to revert the whole repo" | |||
|
6042 | msgstr "" | |||
|
6043 | "ingen filer eller mapper specificeret; brug --all for at føre hele repo'et " | |||
|
6044 | "tilbage" | |||
|
6045 | ||||
|
6046 | #, python-format | |||
|
6047 | msgid "forgetting %s\n" | |||
|
6048 | msgstr "glemmer %s\n" | |||
|
6049 | ||||
|
6050 | #, python-format | |||
|
6051 | msgid "reverting %s\n" | |||
|
6052 | msgstr "fører %s tilbage\n" | |||
|
6053 | ||||
|
6054 | #, python-format | |||
|
6055 | msgid "undeleting %s\n" | |||
|
6056 | msgstr "" | |||
|
6057 | ||||
|
6058 | #, python-format | |||
|
6059 | msgid "saving current version of %s as %s\n" | |||
|
6060 | msgstr "gemmer nuværende version af %s som %s\n" | |||
|
6061 | ||||
|
6062 | #, python-format | |||
|
6063 | msgid "file not managed: %s\n" | |||
|
6064 | msgstr "" | |||
|
6065 | ||||
|
6066 | #, python-format | |||
|
6067 | msgid "no changes needed to %s\n" | |||
|
6068 | msgstr "" | |||
|
6069 | ||||
|
6070 | msgid "" | |||
|
6071 | "roll back the last transaction\n" | |||
|
6072 | "\n" | |||
|
6073 | " This command should be used with care. There is only one level of\n" | |||
|
6074 | " rollback, and there is no way to undo a rollback. It will also\n" | |||
|
6075 | " restore the dirstate at the time of the last transaction, losing\n" | |||
|
6076 | " any dirstate changes since that time.\n" | |||
|
6077 | "\n" | |||
|
6078 | " Transactions are used to encapsulate the effects of all commands\n" | |||
|
6079 | " that create new changesets or propagate existing changesets into a\n" | |||
|
6080 | " repository. For example, the following commands are transactional,\n" | |||
|
6081 | " and their effects can be rolled back:\n" | |||
|
6082 | "\n" | |||
|
6083 | " commit\n" | |||
|
6084 | " import\n" | |||
|
6085 | " pull\n" | |||
|
6086 | " push (with this repository as destination)\n" | |||
|
6087 | " unbundle\n" | |||
|
6088 | "\n" | |||
|
6089 | " This command is not intended for use on public repositories. Once\n" | |||
|
6090 | " changes are visible for pull by other users, rolling a transaction\n" | |||
|
6091 | " back locally is ineffective (someone else may already have pulled\n" | |||
|
6092 | " the changes). Furthermore, a race is possible with readers of the\n" | |||
|
6093 | " repository; for example an in-progress pull from the repository\n" | |||
|
6094 | " may fail if a rollback is performed.\n" | |||
|
6095 | " " | |||
|
6096 | msgstr "" | |||
|
6097 | ||||
|
6098 | msgid "" | |||
|
6099 | "print the root (top) of the current working dir\n" | |||
|
6100 | "\n" | |||
|
6101 | " Print the root directory of the current repository.\n" | |||
|
6102 | " " | |||
|
6103 | msgstr "" | |||
|
6104 | ||||
|
6105 | msgid "" | |||
|
6106 | "export the repository via HTTP\n" | |||
|
6107 | "\n" | |||
|
6108 | " Start a local HTTP repository browser and pull server.\n" | |||
|
6109 | "\n" | |||
|
6110 | " By default, the server logs accesses to stdout and errors to\n" | |||
|
6111 | " stderr. Use the \"-A\" and \"-E\" options to log to files.\n" | |||
|
6112 | " " | |||
|
6113 | msgstr "" | |||
|
6114 | ||||
|
6115 | #, python-format | |||
|
6116 | msgid "listening at http://%s%s/%s (bound to %s:%d)\n" | |||
|
6117 | msgstr "lytter på http://%s%s/%s (bundet til %s:%d)\n" | |||
|
6118 | ||||
|
6119 | msgid "" | |||
|
6120 | "show changed files in the working directory\n" | |||
|
6121 | "\n" | |||
|
6122 | " Show status of files in the repository. If names are given, only\n" | |||
|
6123 | " files that match are shown. Files that are clean or ignored or\n" | |||
|
6124 | " source of a copy/move operation, are not listed unless -c (clean),\n" | |||
|
6125 | " -i (ignored), -C (copies) or -A is given. Unless options described\n" | |||
|
6126 | " with \"show only ...\" are given, the options -mardu are used.\n" | |||
|
6127 | "\n" | |||
|
6128 | " Option -q/--quiet hides untracked (unknown and ignored) files\n" | |||
|
6129 | " unless explicitly requested with -u/--unknown or -i/-ignored.\n" | |||
|
6130 | "\n" | |||
|
6131 | " NOTE: status may appear to disagree with diff if permissions have\n" | |||
|
6132 | " changed or a merge has occurred. The standard diff format does not\n" | |||
|
6133 | " report permission changes and diff only reports changes relative\n" | |||
|
6134 | " to one merge parent.\n" | |||
|
6135 | "\n" | |||
|
6136 | " If one revision is given, it is used as the base revision.\n" | |||
|
6137 | " If two revisions are given, the difference between them is shown.\n" | |||
|
6138 | "\n" | |||
|
6139 | " The codes used to show the status of files are:\n" | |||
|
6140 | " M = modified\n" | |||
|
6141 | " A = added\n" | |||
|
6142 | " R = removed\n" | |||
|
6143 | " C = clean\n" | |||
|
6144 | " ! = deleted, but still tracked\n" | |||
|
6145 | " ? = not tracked\n" | |||
|
6146 | " I = ignored\n" | |||
|
6147 | " = the previous added file was copied from here\n" | |||
|
6148 | " " | |||
|
6149 | msgstr "" | |||
|
6150 | ||||
|
6151 | msgid "" | |||
|
6152 | "add one or more tags for the current or given revision\n" | |||
|
6153 | "\n" | |||
|
6154 | " Name a particular revision using <name>.\n" | |||
|
6155 | "\n" | |||
|
6156 | " Tags are used to name particular revisions of the repository and are\n" | |||
|
6157 | " very useful to compare different revisions, to go back to significant\n" | |||
|
6158 | " earlier versions or to mark branch points as releases, etc.\n" | |||
|
6159 | "\n" | |||
|
6160 | " If no revision is given, the parent of the working directory is used,\n" | |||
|
6161 | " or tip if no revision is checked out.\n" | |||
|
6162 | "\n" | |||
|
6163 | " To facilitate version control, distribution, and merging of tags,\n" | |||
|
6164 | " they are stored as a file named \".hgtags\" which is managed\n" | |||
|
6165 | " similarly to other project files and can be hand-edited if\n" | |||
|
6166 | " necessary. The file '.hg/localtags' is used for local tags (not\n" | |||
|
6167 | " shared among repositories).\n" | |||
|
6168 | "\n" | |||
|
6169 | " See 'hg help dates' for a list of formats valid for -d/--date.\n" | |||
|
6170 | " " | |||
|
6171 | msgstr "" | |||
|
6172 | ||||
|
6173 | msgid "tag names must be unique" | |||
|
6174 | msgstr "" | |||
|
6175 | ||||
|
6176 | #, python-format | |||
|
6177 | msgid "the name '%s' is reserved" | |||
|
6178 | msgstr "" | |||
|
6179 | ||||
|
6180 | msgid "--rev and --remove are incompatible" | |||
|
6181 | msgstr "" | |||
|
6182 | ||||
|
6183 | #, python-format | |||
|
6184 | msgid "tag '%s' does not exist" | |||
|
6185 | msgstr "" | |||
|
6186 | ||||
|
6187 | #, python-format | |||
|
6188 | msgid "tag '%s' is not a %s tag" | |||
|
6189 | msgstr "" | |||
|
6190 | ||||
|
6191 | #, python-format | |||
|
6192 | msgid "Removed tag %s" | |||
|
6193 | msgstr "" | |||
|
6194 | ||||
|
6195 | #, python-format | |||
|
6196 | msgid "tag '%s' already exists (use -f to force)" | |||
|
6197 | msgstr "" | |||
|
6198 | ||||
|
6199 | #, python-format | |||
|
6200 | msgid "Added tag %s for changeset %s" | |||
|
6201 | msgstr "Tilføjede mærkat %s til ændring %s" | |||
|
6202 | ||||
|
6203 | msgid "" | |||
|
6204 | "list repository tags\n" | |||
|
6205 | "\n" | |||
|
6206 | " This lists both regular and local tags. When the -v/--verbose switch\n" | |||
|
6207 | " is used, a third column \"local\" is printed for local tags.\n" | |||
|
6208 | " " | |||
|
6209 | msgstr "" | |||
|
6210 | "vis arkivmærkater\n" | |||
|
6211 | "\n" | |||
|
6212 | " Viser både normale og lokale mærkater. Når -v/--verbose flaget\n" | |||
|
6213 | " bruges, udskrives en tredje kolonne \"local\" for lokale mærkater.\n" | |||
|
6214 | " " | |||
|
6215 | ||||
|
6216 | msgid "" | |||
|
6217 | "show the tip revision\n" | |||
|
6218 | "\n" | |||
|
6219 | " The tip revision (usually just called the tip) is the most\n" | |||
|
6220 | " recently added changeset in the repository, the most recently\n" | |||
|
6221 | " changed head.\n" | |||
|
6222 | "\n" | |||
|
6223 | " If you have just made a commit, that commit will be the tip. If\n" | |||
|
6224 | " you have just pulled changes from another repository, the tip of\n" | |||
|
6225 | " that repository becomes the current tip. The \"tip\" tag is special\n" | |||
|
6226 | " and cannot be renamed or assigned to a different changeset.\n" | |||
|
6227 | " " | |||
|
6228 | msgstr "" | |||
|
6229 | ||||
|
6230 | msgid "" | |||
|
6231 | "apply one or more changegroup files\n" | |||
|
6232 | "\n" | |||
|
6233 | " Apply one or more compressed changegroup files generated by the\n" | |||
|
6234 | " bundle command.\n" | |||
|
6235 | " " | |||
|
6236 | msgstr "" | |||
|
6237 | ||||
|
6238 | msgid "" | |||
|
6239 | "update working directory\n" | |||
|
6240 | "\n" | |||
|
6241 | " Update the repository's working directory to the specified revision,\n" | |||
|
6242 | " or the tip of the current branch if none is specified. Use null as\n" | |||
|
6243 | " the revision to remove the working copy (like 'hg clone -U').\n" | |||
|
6244 | "\n" | |||
|
6245 | " When the working dir contains no uncommitted changes, it will be\n" | |||
|
6246 | " replaced by the state of the requested revision from the repo. When\n" | |||
|
6247 | " the requested revision is on a different branch, the working dir\n" | |||
|
6248 | " will additionally be switched to that branch.\n" | |||
|
6249 | "\n" | |||
|
6250 | " When there are uncommitted changes, use option -C to discard them,\n" | |||
|
6251 | " forcibly replacing the state of the working dir with the requested\n" | |||
|
6252 | " revision.\n" | |||
|
6253 | "\n" | |||
|
6254 | " When there are uncommitted changes and option -C is not used, and\n" | |||
|
6255 | " the parent revision and requested revision are on the same branch,\n" | |||
|
6256 | " and one of them is an ancestor of the other, then the new working\n" | |||
|
6257 | " directory will contain the requested revision merged with the\n" | |||
|
6258 | " uncommitted changes. Otherwise, the update will fail with a\n" | |||
|
6259 | " suggestion to use 'merge' or 'update -C' instead.\n" | |||
|
6260 | "\n" | |||
|
6261 | " If you want to update just one file to an older revision, use revert.\n" | |||
|
6262 | "\n" | |||
|
6263 | " See 'hg help dates' for a list of formats valid for --date.\n" | |||
|
6264 | " " | |||
|
6265 | msgstr "" | |||
|
6266 | ||||
|
6267 | msgid "" | |||
|
6268 | "verify the integrity of the repository\n" | |||
|
6269 | "\n" | |||
|
6270 | " Verify the integrity of the current repository.\n" | |||
|
6271 | "\n" | |||
|
6272 | " This will perform an extensive check of the repository's\n" | |||
|
6273 | " integrity, validating the hashes and checksums of each entry in\n" | |||
|
6274 | " the changelog, manifest, and tracked files, as well as the\n" | |||
|
6275 | " integrity of their crosslinks and indices.\n" | |||
|
6276 | " " | |||
|
6277 | msgstr "" | |||
|
6278 | ||||
|
6279 | msgid "output version and copyright information" | |||
|
6280 | msgstr "" | |||
|
6281 | ||||
|
6282 | #, python-format | |||
|
6283 | msgid "Mercurial Distributed SCM (version %s)\n" | |||
|
6284 | msgstr "Mercurial Distributed SCM (version %s)\n" | |||
|
6285 | ||||
|
6286 | msgid "" | |||
|
6287 | "\n" | |||
|
6288 | "Copyright (C) 2005-2008 Matt Mackall <mpm@selenic.com> and others\n" | |||
|
6289 | "This is free software; see the source for copying conditions. There is NO\n" | |||
|
6290 | "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" | |||
|
6291 | msgstr "" | |||
|
6292 | ||||
|
6293 | msgid "repository root directory or symbolic path name" | |||
|
6294 | msgstr "" | |||
|
6295 | ||||
|
6296 | msgid "change working directory" | |||
|
6297 | msgstr "skift arbejdsbibliotek" | |||
|
6298 | ||||
|
6299 | msgid "do not prompt, assume 'yes' for any required answers" | |||
|
6300 | msgstr "spørg ikke, antag alle svar er 'ja'" | |||
|
6301 | ||||
|
6302 | msgid "suppress output" | |||
|
6303 | msgstr "undertryk output" | |||
|
6304 | ||||
|
6305 | msgid "enable additional output" | |||
|
6306 | msgstr "" | |||
|
6307 | ||||
|
6308 | msgid "set/override config option" | |||
|
6309 | msgstr "" | |||
|
6310 | ||||
|
6311 | msgid "enable debugging output" | |||
|
6312 | msgstr "" | |||
|
6313 | ||||
|
6314 | msgid "start debugger" | |||
|
6315 | msgstr "" | |||
|
6316 | ||||
|
6317 | msgid "set the charset encoding" | |||
|
6318 | msgstr "" | |||
|
6319 | ||||
|
6320 | msgid "set the charset encoding mode" | |||
|
6321 | msgstr "" | |||
|
6322 | ||||
|
6323 | msgid "print improved command execution profile" | |||
|
6324 | msgstr "" | |||
|
6325 | ||||
|
6326 | msgid "print traceback on exception" | |||
|
6327 | msgstr "" | |||
|
6328 | ||||
|
6329 | msgid "time how long the command takes" | |||
|
6330 | msgstr "" | |||
|
6331 | ||||
|
6332 | msgid "print command execution profile" | |||
|
6333 | msgstr "" | |||
|
6334 | ||||
|
6335 | msgid "output version information and exit" | |||
|
6336 | msgstr "" | |||
|
6337 | ||||
|
6338 | msgid "display help and exit" | |||
|
6339 | msgstr "" | |||
|
6340 | ||||
|
6341 | msgid "do not perform actions, just print output" | |||
|
6342 | msgstr "udfør ingen handlinger, udskriv kun outputttet" | |||
|
6343 | ||||
|
6344 | msgid "specify ssh command to use" | |||
|
6345 | msgstr "specificer ssh kommandoen som skal bruges" | |||
|
6346 | ||||
|
6347 | msgid "specify hg command to run on the remote side" | |||
|
6348 | msgstr "" | |||
|
6349 | ||||
|
6350 | msgid "include names matching the given patterns" | |||
|
6351 | msgstr "inkluder navne som matcher det givne mønster" | |||
|
6352 | ||||
|
6353 | msgid "exclude names matching the given patterns" | |||
|
6354 | msgstr "ekskluder navne som matcher det givne mønster" | |||
|
6355 | ||||
|
6356 | msgid "use <text> as commit message" | |||
|
6357 | msgstr "brug <tekst> som commit-besked" | |||
|
6358 | ||||
|
6359 | msgid "read commit message from <file>" | |||
|
6360 | msgstr "læs commit-beskeden fra <fil>" | |||
|
6361 | ||||
|
6362 | msgid "record datecode as commit date" | |||
|
6363 | msgstr "" | |||
|
6364 | ||||
|
6365 | msgid "record user as committer" | |||
|
6366 | msgstr "" | |||
|
6367 | ||||
|
6368 | msgid "display using template map file" | |||
|
6369 | msgstr "" | |||
|
6370 | ||||
|
6371 | msgid "display with template" | |||
|
6372 | msgstr "" | |||
|
6373 | ||||
|
6374 | msgid "do not show merges" | |||
|
6375 | msgstr "" | |||
|
6376 | ||||
|
6377 | msgid "treat all files as text" | |||
|
6378 | msgstr "behandl alle filer som tekst" | |||
|
6379 | ||||
|
6380 | msgid "don't include dates in diff headers" | |||
|
6381 | msgstr "" | |||
|
6382 | ||||
|
6383 | msgid "show which function each change is in" | |||
|
6384 | msgstr "" | |||
|
6385 | ||||
|
6386 | msgid "ignore white space when comparing lines" | |||
|
6387 | msgstr "" | |||
|
6388 | ||||
|
6389 | msgid "ignore changes in the amount of white space" | |||
|
6390 | msgstr "" | |||
|
6391 | ||||
|
6392 | msgid "ignore changes whose lines are all blank" | |||
|
6393 | msgstr "" | |||
|
6394 | ||||
|
6395 | msgid "number of lines of context to show" | |||
|
6396 | msgstr "" | |||
|
6397 | ||||
|
6398 | msgid "guess renamed files by similarity (0<=s<=100)" | |||
|
6399 | msgstr "" | |||
|
6400 | ||||
|
6401 | msgid "[OPTION]... [FILE]..." | |||
|
6402 | msgstr "" | |||
|
6403 | ||||
|
6404 | msgid "annotate the specified revision" | |||
|
6405 | msgstr "annotér den angivne revision" | |||
|
6406 | ||||
|
6407 | msgid "follow file copies and renames" | |||
|
6408 | msgstr "følg kopier og omdøbninger" | |||
|
6409 | ||||
|
6410 | msgid "list the author (long with -v)" | |||
|
6411 | msgstr "vis forfatteren (lang med -v)" | |||
|
6412 | ||||
|
6413 | msgid "list the date (short with -q)" | |||
|
6414 | msgstr "vis datoen (kort med -q)" | |||
|
6415 | ||||
|
6416 | msgid "list the revision number (default)" | |||
|
6417 | msgstr "vis revisionsnummeret (standard)" | |||
|
6418 | ||||
|
6419 | msgid "list the changeset" | |||
|
6420 | msgstr "vis ændringen" | |||
|
6421 | ||||
|
6422 | msgid "show line number at the first appearance" | |||
|
6423 | msgstr "vil linienummeret for den første forekomst" | |||
|
6424 | ||||
|
6425 | msgid "[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FILE..." | |||
|
6426 | msgstr "" | |||
|
6427 | ||||
|
6428 | msgid "do not pass files through decoders" | |||
|
6429 | msgstr "" | |||
|
6430 | ||||
|
6431 | msgid "directory prefix for files in archive" | |||
|
6432 | msgstr "" | |||
|
6433 | ||||
|
6434 | msgid "revision to distribute" | |||
|
6435 | msgstr "" | |||
|
6436 | ||||
|
6437 | msgid "type of distribution to create" | |||
|
6438 | msgstr "" | |||
|
6439 | ||||
|
6440 | msgid "[OPTION]... DEST" | |||
|
6441 | msgstr "" | |||
|
6442 | ||||
|
6443 | msgid "merge with old dirstate parent after backout" | |||
|
6444 | msgstr "" | |||
|
6445 | ||||
|
6446 | msgid "parent to choose when backing out merge" | |||
|
6447 | msgstr "" | |||
|
6448 | ||||
|
6449 | msgid "revision to backout" | |||
|
6450 | msgstr "revision som skal bakkes ud" | |||
|
6451 | ||||
|
6452 | msgid "[OPTION]... [-r] REV" | |||
|
6453 | msgstr "" | |||
|
6454 | ||||
|
6455 | msgid "reset bisect state" | |||
|
6456 | msgstr "nulstil bisect" | |||
|
6457 | ||||
|
6458 | msgid "mark changeset good" | |||
|
6459 | msgstr "marker ændring som god" | |||
|
6460 | ||||
|
6461 | msgid "mark changeset bad" | |||
|
6462 | msgstr "marker ændring som dårlig" | |||
|
6463 | ||||
|
6464 | msgid "skip testing changeset" | |||
|
6465 | msgstr "" | |||
|
6466 | ||||
|
6467 | msgid "use command to check changeset state" | |||
|
6468 | msgstr "brug kommando for at tjekke tilstanden af ændringen" | |||
|
6469 | ||||
|
6470 | msgid "do not update to target" | |||
|
6471 | msgstr "undlad at opdatere til målet" | |||
|
6472 | ||||
|
6473 | msgid "[-gbsr] [-c CMD] [REV]" | |||
|
6474 | msgstr "" | |||
|
6475 | ||||
|
6476 | msgid "set branch name even if it shadows an existing branch" | |||
|
6477 | msgstr "" | |||
|
6478 | ||||
|
6479 | msgid "reset branch name to parent branch name" | |||
|
6480 | msgstr "" | |||
|
6481 | ||||
|
6482 | msgid "[-fC] [NAME]" | |||
|
6483 | msgstr "" | |||
|
6484 | ||||
|
6485 | msgid "show only branches that have unmerged heads" | |||
|
6486 | msgstr "" | |||
|
6487 | ||||
|
6488 | msgid "[-a]" | |||
|
6489 | msgstr "" | |||
|
6490 | ||||
|
6491 | msgid "run even when remote repository is unrelated" | |||
|
6492 | msgstr "kør selv hvis fjernarkivet er urelateret" | |||
|
6493 | ||||
|
6494 | msgid "a changeset up to which you would like to bundle" | |||
|
6495 | msgstr "" | |||
|
6496 | ||||
|
6497 | msgid "a base changeset to specify instead of a destination" | |||
|
6498 | msgstr "" | |||
|
6499 | ||||
|
6500 | msgid "bundle all changesets in the repository" | |||
|
6501 | msgstr "" | |||
|
6502 | ||||
|
6503 | msgid "bundle compression type to use" | |||
|
6504 | msgstr "" | |||
|
6505 | ||||
|
6506 | msgid "[-f] [-a] [-r REV]... [--base REV]... FILE [DEST]" | |||
|
6507 | msgstr "" | |||
|
6508 | ||||
|
6509 | msgid "print output to file with formatted name" | |||
|
6510 | msgstr "" | |||
|
6511 | ||||
|
6512 | msgid "print the given revision" | |||
|
6513 | msgstr "" | |||
|
6514 | ||||
|
6515 | msgid "apply any matching decode filter" | |||
|
6516 | msgstr "" | |||
|
6517 | ||||
|
6518 | msgid "[OPTION]... FILE..." | |||
|
6519 | msgstr "" | |||
|
6520 | ||||
|
6521 | msgid "the clone will only contain a repository (no working copy)" | |||
|
6522 | msgstr "" | |||
|
6523 | ||||
|
6524 | msgid "a changeset you would like to have after cloning" | |||
|
6525 | msgstr "" | |||
|
6526 | ||||
|
6527 | msgid "[OPTION]... SOURCE [DEST]" | |||
|
6528 | msgstr "" | |||
|
6529 | ||||
|
6530 | msgid "mark new/missing files as added/removed before committing" | |||
|
6531 | msgstr "" | |||
|
6532 | ||||
|
6533 | msgid "mark a branch as closed, hiding it from the branch list" | |||
|
6534 | msgstr "" | |||
|
6535 | ||||
|
6536 | msgid "record a copy that has already occurred" | |||
|
6537 | msgstr "" | |||
|
6538 | ||||
|
6539 | msgid "forcibly copy over an existing managed file" | |||
|
6540 | msgstr "" | |||
|
6541 | ||||
|
6542 | msgid "[OPTION]... [SOURCE]... DEST" | |||
|
6543 | msgstr "" | |||
|
6544 | ||||
|
6545 | msgid "[INDEX] REV1 REV2" | |||
|
6546 | msgstr "" | |||
|
6547 | ||||
|
6548 | msgid "show the command options" | |||
|
6549 | msgstr "" | |||
|
6550 | ||||
|
6551 | msgid "[-o] CMD" | |||
|
6552 | msgstr "" | |||
|
6553 | ||||
|
6554 | msgid "try extended date formats" | |||
|
6555 | msgstr "" | |||
|
6556 | ||||
|
6557 | msgid "[-e] DATE [RANGE]" | |||
|
6558 | msgstr "" | |||
|
6559 | ||||
|
6560 | msgid "FILE REV" | |||
|
6561 | msgstr "" | |||
|
6562 | ||||
|
6563 | msgid "[PATH]" | |||
|
6564 | msgstr "" | |||
|
6565 | ||||
|
6566 | msgid "FILE" | |||
|
6567 | msgstr "" | |||
|
6568 | ||||
|
6569 | msgid "parent" | |||
|
6570 | msgstr "" | |||
|
6571 | ||||
|
6572 | msgid "file list" | |||
|
6573 | msgstr "" | |||
|
6574 | ||||
|
6575 | msgid "revision to rebuild to" | |||
|
6576 | msgstr "" | |||
|
6577 | ||||
|
6578 | msgid "[-r REV] [REV]" | |||
|
6579 | msgstr "" | |||
|
6580 | ||||
|
6581 | msgid "revision to debug" | |||
|
6582 | msgstr "" | |||
|
6583 | ||||
|
6584 | msgid "[-r REV] FILE" | |||
|
6585 | msgstr "" | |||
|
6586 | ||||
|
6587 | msgid "REV1 [REV2]" | |||
|
6588 | msgstr "" | |||
|
6589 | ||||
|
6590 | msgid "do not display the saved mtime" | |||
|
6591 | msgstr "" | |||
|
6592 | ||||
|
6593 | msgid "[OPTION]..." | |||
|
6594 | msgstr "" | |||
|
6595 | ||||
|
6596 | msgid "[OPTION]... [-r REV1 [-r REV2]] [FILE]..." | |||
|
6597 | msgstr "" | |||
|
6598 | ||||
|
6599 | msgid "diff against the second parent" | |||
|
6600 | msgstr "" | |||
|
6601 | ||||
|
6602 | msgid "[OPTION]... [-o OUTFILESPEC] REV..." | |||
|
6603 | msgstr "" | |||
|
6604 | ||||
|
6605 | msgid "end fields with NUL" | |||
|
6606 | msgstr "" | |||
|
6607 | ||||
|
6608 | msgid "print all revisions that match" | |||
|
6609 | msgstr "" | |||
|
6610 | ||||
|
6611 | msgid "follow changeset history, or file history across copies and renames" | |||
|
6612 | msgstr "" | |||
|
6613 | ||||
|
6614 | msgid "ignore case when matching" | |||
|
6615 | msgstr "" | |||
|
6616 | ||||
|
6617 | msgid "print only filenames and revs that match" | |||
|
6618 | msgstr "" | |||
|
6619 | ||||
|
6620 | msgid "print matching line numbers" | |||
|
6621 | msgstr "" | |||
|
6622 | ||||
|
6623 | msgid "search in given revision range" | |||
|
6624 | msgstr "" | |||
|
6625 | ||||
|
6626 | msgid "[OPTION]... PATTERN [FILE]..." | |||
|
6627 | msgstr "" | |||
|
6628 | ||||
|
6629 | msgid "show only heads which are descendants of rev" | |||
|
6630 | msgstr "" | |||
|
6631 | ||||
|
6632 | msgid "show only the active heads from open branches" | |||
|
6633 | msgstr "" | |||
|
6634 | ||||
|
6635 | msgid "[-r REV] [REV]..." | |||
|
6636 | msgstr "" | |||
|
6637 | ||||
|
6638 | msgid "[TOPIC]" | |||
|
6639 | msgstr "" | |||
|
6640 | ||||
|
6641 | msgid "identify the specified rev" | |||
|
6642 | msgstr "" | |||
|
6643 | ||||
|
6644 | msgid "show local revision number" | |||
|
6645 | msgstr "" | |||
|
6646 | ||||
|
6647 | msgid "show global revision id" | |||
|
6648 | msgstr "" | |||
|
6649 | ||||
|
6650 | msgid "show branch" | |||
|
6651 | msgstr "" | |||
|
6652 | ||||
|
6653 | msgid "show tags" | |||
|
6654 | msgstr "vis mærkater" | |||
|
6655 | ||||
|
6656 | msgid "[-nibt] [-r REV] [SOURCE]" | |||
|
6657 | msgstr "" | |||
|
6658 | ||||
|
6659 | msgid "" | |||
|
6660 | "directory strip option for patch. This has the same\n" | |||
|
6661 | "meaning as the corresponding patch option" | |||
|
6662 | msgstr "" | |||
|
6663 | ||||
|
6664 | msgid "base path" | |||
|
6665 | msgstr "" | |||
|
6666 | ||||
|
6667 | msgid "skip check for outstanding uncommitted changes" | |||
|
6668 | msgstr "" | |||
|
6669 | ||||
|
6670 | msgid "don't commit, just update the working directory" | |||
|
6671 | msgstr "" | |||
|
6672 | ||||
|
6673 | msgid "apply patch to the nodes from which it was generated" | |||
|
6674 | msgstr "" | |||
|
6675 | ||||
|
6676 | msgid "Use any branch information in patch (implied by --exact)" | |||
|
6677 | msgstr "" | |||
|
6678 | ||||
|
6679 | msgid "[OPTION]... PATCH..." | |||
|
6680 | msgstr "" | |||
|
6681 | ||||
|
6682 | msgid "show newest record first" | |||
|
6683 | msgstr "" | |||
|
6684 | ||||
|
6685 | msgid "file to store the bundles into" | |||
|
6686 | msgstr "" | |||
|
6687 | ||||
|
6688 | msgid "a specific revision up to which you would like to pull" | |||
|
6689 | msgstr "" | |||
|
6690 | ||||
|
6691 | msgid "[-p] [-n] [-M] [-f] [-r REV]... [--bundle FILENAME] [SOURCE]" | |||
|
6692 | msgstr "" | |||
|
6693 | ||||
|
6694 | msgid "[-e CMD] [--remotecmd CMD] [DEST]" | |||
|
6695 | msgstr "" | |||
|
6696 | ||||
|
6697 | msgid "search the repository as it stood at rev" | |||
|
6698 | msgstr "" | |||
|
6699 | ||||
|
6700 | msgid "end filenames with NUL, for use with xargs" | |||
|
6701 | msgstr "" | |||
|
6702 | ||||
|
6703 | msgid "print complete paths from the filesystem root" | |||
|
6704 | msgstr "" | |||
|
6705 | ||||
|
6706 | msgid "[OPTION]... [PATTERN]..." | |||
|
6707 | msgstr "" | |||
|
6708 | ||||
|
6709 | msgid "only follow the first parent of merge changesets" | |||
|
6710 | msgstr "" | |||
|
6711 | ||||
|
6712 | msgid "show revs matching date spec" | |||
|
6713 | msgstr "" | |||
|
6714 | ||||
|
6715 | msgid "show copied files" | |||
|
6716 | msgstr "" | |||
|
6717 | ||||
|
6718 | msgid "do case-insensitive search for a keyword" | |||
|
6719 | msgstr "" | |||
|
6720 | ||||
|
6721 | msgid "include revs where files were removed" | |||
|
6722 | msgstr "" | |||
|
6723 | ||||
|
6724 | msgid "show only merges" | |||
|
6725 | msgstr "" | |||
|
6726 | ||||
|
6727 | msgid "revs committed by user" | |||
|
6728 | msgstr "" | |||
|
6729 | ||||
|
6730 | msgid "show only changesets within the given named branch" | |||
|
6731 | msgstr "" | |||
|
6732 | ||||
|
6733 | msgid "do not display revision or any of its ancestors" | |||
|
6734 | msgstr "" | |||
|
6735 | ||||
|
6736 | msgid "[OPTION]... [FILE]" | |||
|
6737 | msgstr "" | |||
|
6738 | ||||
|
6739 | msgid "revision to display" | |||
|
6740 | msgstr "" | |||
|
6741 | ||||
|
6742 | msgid "[-r REV]" | |||
|
6743 | msgstr "" | |||
|
6744 | ||||
|
6745 | msgid "force a merge with outstanding changes" | |||
|
6746 | msgstr "" | |||
|
6747 | ||||
|
6748 | msgid "revision to merge" | |||
|
6749 | msgstr "" | |||
|
6750 | ||||
|
6751 | msgid "[-f] [[-r] REV]" | |||
|
6752 | msgstr "" | |||
|
6753 | ||||
|
6754 | msgid "a specific revision up to which you would like to push" | |||
|
6755 | msgstr "" | |||
|
6756 | ||||
|
6757 | msgid "[-M] [-p] [-n] [-f] [-r REV]... [DEST]" | |||
|
6758 | msgstr "" | |||
|
6759 | ||||
|
6760 | msgid "show parents from the specified rev" | |||
|
6761 | msgstr "" | |||
|
6762 | ||||
|
6763 | msgid "hg parents [-r REV] [FILE]" | |||
|
6764 | msgstr "" | |||
|
6765 | ||||
|
6766 | msgid "[NAME]" | |||
|
6767 | msgstr "" | |||
|
6768 | ||||
|
6769 | msgid "update to new tip if changesets were pulled" | |||
|
6770 | msgstr "" | |||
|
6771 | ||||
|
6772 | msgid "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]" | |||
|
6773 | msgstr "" | |||
|
6774 | ||||
|
6775 | msgid "force push" | |||
|
6776 | msgstr "" | |||
|
6777 | ||||
|
6778 | msgid "[-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]" | |||
|
6779 | msgstr "" | |||
|
6780 | ||||
|
6781 | msgid "record delete for missing files" | |||
|
6782 | msgstr "" | |||
|
6783 | ||||
|
6784 | msgid "remove (and delete) file even if added or modified" | |||
|
6785 | msgstr "" | |||
|
6786 | ||||
|
6787 | msgid "record a rename that has already occurred" | |||
|
6788 | msgstr "" | |||
|
6789 | ||||
|
6790 | msgid "[OPTION]... SOURCE... DEST" | |||
|
6791 | msgstr "" | |||
|
6792 | ||||
|
6793 | msgid "remerge all unresolved files" | |||
|
6794 | msgstr "" | |||
|
6795 | ||||
|
6796 | msgid "list state of files needing merge" | |||
|
6797 | msgstr "" | |||
|
6798 | ||||
|
6799 | msgid "mark files as resolved" | |||
|
6800 | msgstr "" | |||
|
6801 | ||||
|
6802 | msgid "unmark files as resolved" | |||
|
6803 | msgstr "" | |||
|
6804 | ||||
|
6805 | msgid "revert all changes when no arguments given" | |||
|
6806 | msgstr "" | |||
|
6807 | ||||
|
6808 | msgid "tipmost revision matching date" | |||
|
6809 | msgstr "" | |||
|
6810 | ||||
|
6811 | msgid "revision to revert to" | |||
|
6812 | msgstr "" | |||
|
6813 | ||||
|
6814 | msgid "do not save backup copies of files" | |||
|
6815 | msgstr "" | |||
|
6816 | ||||
|
6817 | msgid "[OPTION]... [-r REV] [NAME]..." | |||
|
6818 | msgstr "" | |||
|
6819 | ||||
|
6820 | msgid "name of access log file to write to" | |||
|
6821 | msgstr "" | |||
|
6822 | ||||
|
6823 | msgid "name of error log file to write to" | |||
|
6824 | msgstr "" | |||
|
6825 | ||||
|
6826 | msgid "port to listen on (default: 8000)" | |||
|
6827 | msgstr "" | |||
|
6828 | ||||
|
6829 | msgid "address to listen on (default: all interfaces)" | |||
|
6830 | msgstr "" | |||
|
6831 | ||||
|
6832 | msgid "prefix path to serve from (default: server root)" | |||
|
6833 | msgstr "" | |||
|
6834 | ||||
|
6835 | msgid "name to show in web pages (default: working dir)" | |||
|
6836 | msgstr "" | |||
|
6837 | ||||
|
6838 | msgid "name of the webdir config file (serve more than one repo)" | |||
|
6839 | msgstr "" | |||
|
6840 | ||||
|
6841 | msgid "for remote clients" | |||
|
6842 | msgstr "" | |||
|
6843 | ||||
|
6844 | msgid "web templates to use" | |||
|
6845 | msgstr "" | |||
|
6846 | ||||
|
6847 | msgid "template style to use" | |||
|
6848 | msgstr "" | |||
|
6849 | ||||
|
6850 | msgid "use IPv6 in addition to IPv4" | |||
|
6851 | msgstr "" | |||
|
6852 | ||||
|
6853 | msgid "SSL certificate file" | |||
|
6854 | msgstr "" | |||
|
6855 | ||||
|
6856 | msgid "show untrusted configuration options" | |||
|
6857 | msgstr "" | |||
|
6858 | ||||
|
6859 | msgid "[-u] [NAME]..." | |||
|
6860 | msgstr "" | |||
|
6861 | ||||
|
6862 | msgid "show status of all files" | |||
|
6863 | msgstr "" | |||
|
6864 | ||||
|
6865 | msgid "show only modified files" | |||
|
6866 | msgstr "" | |||
|
6867 | ||||
|
6868 | msgid "show only added files" | |||
|
6869 | msgstr "" | |||
|
6870 | ||||
|
6871 | msgid "show only removed files" | |||
|
6872 | msgstr "" | |||
|
6873 | ||||
|
6874 | msgid "show only deleted (but tracked) files" | |||
|
6875 | msgstr "" | |||
|
6876 | ||||
|
6877 | msgid "show only files without changes" | |||
|
6878 | msgstr "" | |||
|
6879 | ||||
|
6880 | msgid "show only unknown (not tracked) files" | |||
|
6881 | msgstr "" | |||
|
6882 | ||||
|
6883 | msgid "show only ignored files" | |||
|
6884 | msgstr "" | |||
|
6885 | ||||
|
6886 | msgid "hide status prefix" | |||
|
6887 | msgstr "" | |||
|
6888 | ||||
|
6889 | msgid "show source of copied files" | |||
|
6890 | msgstr "" | |||
|
6891 | ||||
|
6892 | msgid "show difference from revision" | |||
|
6893 | msgstr "" | |||
|
6894 | ||||
|
6895 | msgid "replace existing tag" | |||
|
6896 | msgstr "" | |||
|
6897 | ||||
|
6898 | msgid "make the tag local" | |||
|
6899 | msgstr "" | |||
|
6900 | ||||
|
6901 | msgid "revision to tag" | |||
|
6902 | msgstr "" | |||
|
6903 | ||||
|
6904 | msgid "remove a tag" | |||
|
6905 | msgstr "" | |||
|
6906 | ||||
|
6907 | msgid "[-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME..." | |||
|
6908 | msgstr "" | |||
|
6909 | ||||
|
6910 | msgid "[-p]" | |||
|
6911 | msgstr "" | |||
|
6912 | ||||
|
6913 | msgid "update to new tip if changesets were unbundled" | |||
|
6914 | msgstr "" | |||
|
6915 | ||||
|
6916 | msgid "[-u] FILE..." | |||
|
6917 | msgstr "" | |||
|
6918 | ||||
|
6919 | msgid "overwrite locally modified files (no backup)" | |||
|
6920 | msgstr "" | |||
|
6921 | ||||
|
6922 | msgid "[-C] [-d DATE] [[-r] REV]" | |||
|
6923 | msgstr "" | |||
|
6924 | ||||
|
6925 | msgid "not found in manifest" | |||
|
6926 | msgstr "" | |||
|
6927 | ||||
|
6928 | msgid "branch name not in UTF-8!" | |||
|
6929 | msgstr "" | |||
|
6930 | ||||
|
6931 | #, python-format | |||
|
6932 | msgid " searching for copies back to rev %d\n" | |||
|
6933 | msgstr " søger efter kopier tilbage til revision %d\n" | |||
|
6934 | ||||
|
6935 | #, python-format | |||
|
6936 | msgid "" | |||
|
6937 | " unmatched files in local:\n" | |||
|
6938 | " %s\n" | |||
|
6939 | msgstr "" | |||
|
6940 | ||||
|
6941 | #, python-format | |||
|
6942 | msgid "" | |||
|
6943 | " unmatched files in other:\n" | |||
|
6944 | " %s\n" | |||
|
6945 | msgstr "" | |||
|
6946 | ||||
|
6947 | msgid " all copies found (* = to merge, ! = divergent):\n" | |||
|
6948 | msgstr "" | |||
|
6949 | ||||
|
6950 | #, python-format | |||
|
6951 | msgid " %s -> %s %s\n" | |||
|
6952 | msgstr "" | |||
|
6953 | ||||
|
6954 | msgid " checking for directory renames\n" | |||
|
6955 | msgstr "" | |||
|
6956 | ||||
|
6957 | #, python-format | |||
|
6958 | msgid " dir %s -> %s\n" | |||
|
6959 | msgstr "" | |||
|
6960 | ||||
|
6961 | #, python-format | |||
|
6962 | msgid " file %s -> %s\n" | |||
|
6963 | msgstr "" | |||
|
6964 | ||||
|
6965 | #, python-format | |||
|
6966 | msgid "'\\n' and '\\r' disallowed in filenames: %r" | |||
|
6967 | msgstr "" | |||
|
6968 | ||||
|
6969 | #, python-format | |||
|
6970 | msgid "directory %r already in dirstate" | |||
|
6971 | msgstr "" | |||
|
6972 | ||||
|
6973 | #, python-format | |||
|
6974 | msgid "file %r in dirstate clashes with %r" | |||
|
6975 | msgstr "" | |||
|
6976 | ||||
|
6977 | #, python-format | |||
|
6978 | msgid "not in dirstate: %s\n" | |||
|
6979 | msgstr "" | |||
|
6980 | ||||
|
6981 | msgid "character device" | |||
|
6982 | msgstr "" | |||
|
6983 | ||||
|
6984 | msgid "block device" | |||
|
6985 | msgstr "" | |||
|
6986 | ||||
|
6987 | msgid "fifo" | |||
|
6988 | msgstr "" | |||
|
6989 | ||||
|
6990 | msgid "socket" | |||
|
6991 | msgstr "" | |||
|
6992 | ||||
|
6993 | msgid "directory" | |||
|
6994 | msgstr "" | |||
|
6995 | ||||
|
6996 | #, python-format | |||
|
6997 | msgid "%s: unsupported file type (type is %s)\n" | |||
|
6998 | msgstr "" | |||
|
6999 | ||||
|
7000 | #, python-format | |||
|
7001 | msgid "abort: %s\n" | |||
|
7002 | msgstr "afbrudt: %s\n" | |||
|
7003 | ||||
|
7004 | #, python-format | |||
|
7005 | msgid "" | |||
|
7006 | "hg: command '%s' is ambiguous:\n" | |||
|
7007 | " %s\n" | |||
|
7008 | msgstr "" | |||
|
7009 | "hg: kommandoen '%s' is tvetydig:\n" | |||
|
7010 | " %s\n" | |||
|
7011 | ||||
|
7012 | #, python-format | |||
|
7013 | msgid "timed out waiting for lock held by %s" | |||
|
7014 | msgstr "" | |||
|
7015 | ||||
|
7016 | #, python-format | |||
|
7017 | msgid "lock held by %s" | |||
|
7018 | msgstr "" | |||
|
7019 | ||||
|
7020 | #, python-format | |||
|
7021 | msgid "abort: %s: %s\n" | |||
|
7022 | msgstr "afbrudt: %s: %s\n" | |||
|
7023 | ||||
|
7024 | #, python-format | |||
|
7025 | msgid "abort: could not lock %s: %s\n" | |||
|
7026 | msgstr "afbrudt: kunne ikke låse %s: %s\n" | |||
|
7027 | ||||
|
7028 | #, python-format | |||
|
7029 | msgid "hg %s: %s\n" | |||
|
7030 | msgstr "hg %s: %s\n" | |||
|
7031 | ||||
|
7032 | #, python-format | |||
|
7033 | msgid "hg: %s\n" | |||
|
7034 | msgstr "hg: %s\n" | |||
|
7035 | ||||
|
7036 | #, python-format | |||
|
7037 | msgid "abort: %s!\n" | |||
|
7038 | msgstr "afbrudt: %s!\n" | |||
|
7039 | ||||
|
7040 | #, python-format | |||
|
7041 | msgid "abort: %s" | |||
|
7042 | msgstr "afbrudt: %s" | |||
|
7043 | ||||
|
7044 | msgid " empty string\n" | |||
|
7045 | msgstr " tom streng\n" | |||
|
7046 | ||||
|
7047 | msgid "killed!\n" | |||
|
7048 | msgstr "dræbt!\n" | |||
|
7049 | ||||
|
7050 | #, python-format | |||
|
7051 | msgid "hg: unknown command '%s'\n" | |||
|
7052 | msgstr "hg: ukendt kommando '%s'\n" | |||
|
7053 | ||||
|
7054 | #, python-format | |||
|
7055 | msgid "abort: could not import module %s!\n" | |||
|
7056 | msgstr "afbrudt: kunne ikke importere modul %s!\n" | |||
|
7057 | ||||
|
7058 | msgid "(did you forget to compile extensions?)\n" | |||
|
7059 | msgstr "(glemte du at kompilere udvidelserne?)\n" | |||
|
7060 | ||||
|
7061 | msgid "(is your Python install correct?)\n" | |||
|
7062 | msgstr "(er din Python installeret korrekt?)\n" | |||
|
7063 | ||||
|
7064 | #, python-format | |||
|
7065 | msgid "abort: error: %s\n" | |||
|
7066 | msgstr "" | |||
|
7067 | ||||
|
7068 | msgid "broken pipe\n" | |||
|
7069 | msgstr "" | |||
|
7070 | ||||
|
7071 | msgid "interrupted!\n" | |||
|
7072 | msgstr "standset!\n" | |||
|
7073 | ||||
|
7074 | msgid "" | |||
|
7075 | "\n" | |||
|
7076 | "broken pipe\n" | |||
|
7077 | msgstr "" | |||
|
7078 | ||||
|
7079 | msgid "abort: out of memory\n" | |||
|
7080 | msgstr "afbrudt: løbet tør for hukommelse\n" | |||
|
7081 | ||||
|
7082 | msgid "** unknown exception encountered, details follow\n" | |||
|
7083 | msgstr "** der opstod en ukendt fejl, detaljer følger\n" | |||
|
7084 | ||||
|
7085 | msgid "** report bug details to http://www.selenic.com/mercurial/bts\n" | |||
|
7086 | msgstr "** angiv fejldetaljer på http://www.selenic.com/mercurial/bts\n" | |||
|
7087 | ||||
|
7088 | msgid "** or mercurial@selenic.com\n" | |||
|
7089 | msgstr "** eller mercurial@selenic.com\n" | |||
|
7090 | ||||
|
7091 | #, python-format | |||
|
7092 | msgid "** Mercurial Distributed SCM (version %s)\n" | |||
|
7093 | msgstr "** Mercurial Distributed SCM (version %s)\n" | |||
|
7094 | ||||
|
7095 | #, python-format | |||
|
7096 | msgid "** Extensions loaded: %s\n" | |||
|
7097 | msgstr "" | |||
|
7098 | ||||
|
7099 | #, python-format | |||
|
7100 | msgid "malformed --config option: %s" | |||
|
7101 | msgstr "" | |||
|
7102 | ||||
|
7103 | #, python-format | |||
|
7104 | msgid "extension '%s' overrides commands: %s\n" | |||
|
7105 | msgstr "" | |||
|
7106 | ||||
|
7107 | msgid "Option --config may not be abbreviated!" | |||
|
7108 | msgstr "" | |||
|
7109 | ||||
|
7110 | msgid "Option --cwd may not be abbreviated!" | |||
|
7111 | msgstr "" | |||
|
7112 | ||||
|
7113 | msgid "" | |||
|
7114 | "Option -R has to be separated from other options (i.e. not -qR) and --" | |||
|
7115 | "repository may only be abbreviated as --repo!" | |||
|
7116 | msgstr "" | |||
|
7117 | ||||
|
7118 | #, python-format | |||
|
7119 | msgid "Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n" | |||
|
7120 | msgstr "" | |||
|
7121 | ||||
|
7122 | #, python-format | |||
|
7123 | msgid "repository '%s' is not local" | |||
|
7124 | msgstr "" | |||
|
7125 | ||||
|
7126 | msgid "invalid arguments" | |||
|
7127 | msgstr "" | |||
|
7128 | ||||
|
7129 | msgid "exception raised - generating profile anyway\n" | |||
|
7130 | msgstr "" | |||
|
7131 | ||||
|
7132 | msgid "" | |||
|
7133 | "lsprof not available - install from http://codespeak.net/svn/user/arigo/hack/" | |||
|
7134 | "misc/lsprof/" | |||
|
7135 | msgstr "" | |||
|
7136 | ||||
|
7137 | #, python-format | |||
|
7138 | msgid "*** failed to import extension %s from %s: %s\n" | |||
|
7139 | msgstr "" | |||
|
7140 | ||||
|
7141 | #, python-format | |||
|
7142 | msgid "*** failed to import extension %s: %s\n" | |||
|
7143 | msgstr "" | |||
|
7144 | ||||
|
7145 | #, python-format | |||
|
7146 | msgid "couldn't find merge tool %s\n" | |||
|
7147 | msgstr "" | |||
|
7148 | ||||
|
7149 | #, python-format | |||
|
7150 | msgid "tool %s can't handle symlinks\n" | |||
|
7151 | msgstr "" | |||
|
7152 | ||||
|
7153 | #, python-format | |||
|
7154 | msgid "tool %s can't handle binary\n" | |||
|
7155 | msgstr "" | |||
|
7156 | ||||
|
7157 | #, python-format | |||
|
7158 | msgid "tool %s requires a GUI\n" | |||
|
7159 | msgstr "" | |||
|
7160 | ||||
|
7161 | #, python-format | |||
|
7162 | msgid "picked tool '%s' for %s (binary %s symlink %s)\n" | |||
|
7163 | msgstr "" | |||
|
7164 | ||||
|
7165 | #, python-format | |||
|
7166 | msgid "" | |||
|
7167 | " no tool found to merge %s\n" | |||
|
7168 | "keep (l)ocal or take (o)ther?" | |||
|
7169 | msgstr "" | |||
|
7170 | ||||
|
7171 | msgid "[lo]" | |||
|
7172 | msgstr "" | |||
|
7173 | ||||
|
7174 | msgid "l" | |||
|
7175 | msgstr "" | |||
|
7176 | ||||
|
7177 | #, python-format | |||
|
7178 | msgid "merging %s and %s to %s\n" | |||
|
7179 | msgstr "" | |||
|
7180 | ||||
|
7181 | #, python-format | |||
|
7182 | msgid "merging %s\n" | |||
|
7183 | msgstr "" | |||
|
7184 | ||||
|
7185 | #, python-format | |||
|
7186 | msgid "my %s other %s ancestor %s\n" | |||
|
7187 | msgstr "" | |||
|
7188 | ||||
|
7189 | msgid " premerge successful\n" | |||
|
7190 | msgstr "" | |||
|
7191 | ||||
|
7192 | #, python-format | |||
|
7193 | msgid "" | |||
|
7194 | " output file %s appears unchanged\n" | |||
|
7195 | "was merge successful (yn)?" | |||
|
7196 | msgstr "" | |||
|
7197 | ||||
|
7198 | msgid "[yn]" | |||
|
7199 | msgstr "" | |||
|
7200 | ||||
|
7201 | msgid "n" | |||
|
7202 | msgstr "" | |||
|
7203 | ||||
|
7204 | #, python-format | |||
|
7205 | msgid "merging %s failed!\n" | |||
|
7206 | msgstr "" | |||
|
7207 | ||||
|
7208 | #, python-format | |||
|
7209 | msgid "Inconsistent state, %s:%s is good and bad" | |||
|
7210 | msgstr "" | |||
|
7211 | ||||
|
7212 | #, python-format | |||
|
7213 | msgid "unknown bisect kind %s" | |||
|
7214 | msgstr "" | |||
|
7215 | ||||
|
7216 | msgid "Date Formats" | |||
|
7217 | msgstr "Datoformater" | |||
|
7218 | ||||
|
7219 | msgid "" | |||
|
7220 | "\n" | |||
|
7221 | " Some commands allow the user to specify a date, e.g.:\n" | |||
|
7222 | " * backout, commit, import, tag: Specify the commit date.\n" | |||
|
7223 | " * log, revert, update: Select revision(s) by date.\n" | |||
|
7224 | "\n" | |||
|
7225 | " Many date formats are valid. Here are some examples:\n" | |||
|
7226 | "\n" | |||
|
7227 | " \"Wed Dec 6 13:18:29 2006\" (local timezone assumed)\n" | |||
|
7228 | " \"Dec 6 13:18 -0600\" (year assumed, time offset provided)\n" | |||
|
7229 | " \"Dec 6 13:18 UTC\" (UTC and GMT are aliases for +0000)\n" | |||
|
7230 | " \"Dec 6\" (midnight)\n" | |||
|
7231 | " \"13:18\" (today assumed)\n" | |||
|
7232 | " \"3:39\" (3:39AM assumed)\n" | |||
|
7233 | " \"3:39pm\" (15:39)\n" | |||
|
7234 | " \"2006-12-06 13:18:29\" (ISO 8601 format)\n" | |||
|
7235 | " \"2006-12-6 13:18\"\n" | |||
|
7236 | " \"2006-12-6\"\n" | |||
|
7237 | " \"12-6\"\n" | |||
|
7238 | " \"12/6\"\n" | |||
|
7239 | " \"12/6/6\" (Dec 6 2006)\n" | |||
|
7240 | "\n" | |||
|
7241 | " Lastly, there is Mercurial's internal format:\n" | |||
|
7242 | "\n" | |||
|
7243 | " \"1165432709 0\" (Wed Dec 6 13:18:29 2006 UTC)\n" | |||
|
7244 | "\n" | |||
|
7245 | " This is the internal representation format for dates. unixtime is\n" | |||
|
7246 | " the number of seconds since the epoch (1970-01-01 00:00 UTC). offset\n" | |||
|
7247 | " is the offset of the local timezone, in seconds west of UTC (negative\n" | |||
|
7248 | " if the timezone is east of UTC).\n" | |||
|
7249 | "\n" | |||
|
7250 | " The log command also accepts date ranges:\n" | |||
|
7251 | "\n" | |||
|
7252 | " \"<{date}\" - on or before a given date\n" | |||
|
7253 | " \">{date}\" - on or after a given date\n" | |||
|
7254 | " \"{date} to {date}\" - a date range, inclusive\n" | |||
|
7255 | " \"-{days}\" - within a given number of days of today\n" | |||
|
7256 | " " | |||
|
7257 | msgstr "" | |||
|
7258 | "\n" | |||
|
7259 | " Nogle kommandoer tillader brugeren at specificere en dato, f.eks.:\n" | |||
|
7260 | " * backout, commit, import, tag: specificer commit-datoen.\n" | |||
|
7261 | " * log, revert, update: vælg revisioner efter dato.\n" | |||
|
7262 | "\n" | |||
|
7263 | " Der er mange gyldige datoformater. Her er nogle eksempler:\n" | |||
|
7264 | "\n" | |||
|
7265 | " \"Wed Dec 6 13:18:29 2006\" (antager lokal tidszone)\n" | |||
|
7266 | " \"Dec 6 13:18 -0600\" (antager år, tidszone er angivet)\n" | |||
|
7267 | " \"Dec 6 13:18 UTC\" (UTC og GMT er aliaser for +0000)\n" | |||
|
7268 | " \"Dec 6\" (midnat)\n" | |||
|
7269 | " \"13:18\" (antager dags dato)\n" | |||
|
7270 | " \"3:39\"\n" | |||
|
7271 | " \"3:39pm\" (15:39)\n" | |||
|
7272 | " \"2006-12-06 13:18:29\" (ISO 8601 format)\n" | |||
|
7273 | " \"2006-12-6 13:18\"\n" | |||
|
7274 | " \"2006-12-6\"\n" | |||
|
7275 | " \"12-6\"\n" | |||
|
7276 | " \"12/6\"\n" | |||
|
7277 | " \"12/6/6\" (6. dec. 2006)\n" | |||
|
7278 | "\n" | |||
|
7279 | " Endelig er der Mercurials interne format:\n" | |||
|
7280 | "\n" | |||
|
7281 | " \"1165432709 0\" (Ons 6. dec. 13:18:29 2006 UTC)\n" | |||
|
7282 | "\n" | |||
|
7283 | " Dette er den interne repræsentation af datoer. unixtime er\n" | |||
|
7284 | " antallet af sekunder siden begyndelsen af epoken (1970-01-01 00:00\n" | |||
|
7285 | " UTC). offset er den lokale tidszone, angivet i antal sekunder vest\n" | |||
|
7286 | " for UTC (negativ hvis tidszonen er øst for UTC).\n" | |||
|
7287 | "\n" | |||
|
7288 | " Kommandoen log accepterer også datointervaller:\n" | |||
|
7289 | "\n" | |||
|
7290 | " \"<{date}\" - på eller før den angivne dato\n" | |||
|
7291 | " \">{date}\" - på eller efter den angivne dato\n" | |||
|
7292 | " \"{date} to {date}\" - et datointerval, inklusiv endepunkterne\n" | |||
|
7293 | " \"-{days}\" - indenfor et angivet antal dage, fra dags dato\n" | |||
|
7294 | " " | |||
|
7295 | ||||
|
7296 | msgid "File Name Patterns" | |||
|
7297 | msgstr "" | |||
|
7298 | ||||
|
7299 | msgid "" | |||
|
7300 | "\n" | |||
|
7301 | " Mercurial accepts several notations for identifying one or more\n" | |||
|
7302 | " files at a time.\n" | |||
|
7303 | "\n" | |||
|
7304 | " By default, Mercurial treats filenames as shell-style extended\n" | |||
|
7305 | " glob patterns.\n" | |||
|
7306 | "\n" | |||
|
7307 | " Alternate pattern notations must be specified explicitly.\n" | |||
|
7308 | "\n" | |||
|
7309 | " To use a plain path name without any pattern matching, start a\n" | |||
|
7310 | " name with \"path:\". These path names must match completely, from\n" | |||
|
7311 | " the root of the current repository.\n" | |||
|
7312 | "\n" | |||
|
7313 | " To use an extended glob, start a name with \"glob:\". Globs are\n" | |||
|
7314 | " rooted at the current directory; a glob such as \"*.c\" will match\n" | |||
|
7315 | " files ending in \".c\" in the current directory only.\n" | |||
|
7316 | "\n" | |||
|
7317 | " The supported glob syntax extensions are \"**\" to match any string\n" | |||
|
7318 | " across path separators, and \"{a,b}\" to mean \"a or b\".\n" | |||
|
7319 | "\n" | |||
|
7320 | " To use a Perl/Python regular expression, start a name with \"re:\".\n" | |||
|
7321 | " Regexp pattern matching is anchored at the root of the repository.\n" | |||
|
7322 | "\n" | |||
|
7323 | " Plain examples:\n" | |||
|
7324 | "\n" | |||
|
7325 | " path:foo/bar a name bar in a directory named foo in the root of\n" | |||
|
7326 | " the repository\n" | |||
|
7327 | " path:path:name a file or directory named \"path:name\"\n" | |||
|
7328 | "\n" | |||
|
7329 | " Glob examples:\n" | |||
|
7330 | "\n" | |||
|
7331 | " glob:*.c any name ending in \".c\" in the current directory\n" | |||
|
7332 | " *.c any name ending in \".c\" in the current directory\n" | |||
|
7333 | " **.c any name ending in \".c\" in the current directory, or\n" | |||
|
7334 | " any subdirectory\n" | |||
|
7335 | " foo/*.c any name ending in \".c\" in the directory foo\n" | |||
|
7336 | " foo/**.c any name ending in \".c\" in the directory foo, or any\n" | |||
|
7337 | " subdirectory\n" | |||
|
7338 | "\n" | |||
|
7339 | " Regexp examples:\n" | |||
|
7340 | "\n" | |||
|
7341 | " re:.*\\.c$ any name ending in \".c\", anywhere in the repository\n" | |||
|
7342 | "\n" | |||
|
7343 | " " | |||
|
7344 | msgstr "" | |||
|
7345 | ||||
|
7346 | msgid "Environment Variables" | |||
|
7347 | msgstr "Miljøvariable" | |||
|
7348 | ||||
|
7349 | msgid "" | |||
|
7350 | "\n" | |||
|
7351 | "HG::\n" | |||
|
7352 | " Path to the 'hg' executable, automatically passed when running hooks,\n" | |||
|
7353 | " extensions or external tools. If unset or empty, an executable named\n" | |||
|
7354 | " 'hg' (with com/exe/bat/cmd extension on Windows) is searched.\n" | |||
|
7355 | "\n" | |||
|
7356 | "HGEDITOR::\n" | |||
|
7357 | " This is the name of the editor to use when committing. See EDITOR.\n" | |||
|
7358 | "\n" | |||
|
7359 | " (deprecated, use .hgrc)\n" | |||
|
7360 | "\n" | |||
|
7361 | "HGENCODING::\n" | |||
|
7362 | " This overrides the default locale setting detected by Mercurial.\n" | |||
|
7363 | " This setting is used to convert data including usernames,\n" | |||
|
7364 | " changeset descriptions, tag names, and branches. This setting can\n" | |||
|
7365 | " be overridden with the --encoding command-line option.\n" | |||
|
7366 | "\n" | |||
|
7367 | "HGENCODINGMODE::\n" | |||
|
7368 | " This sets Mercurial's behavior for handling unknown characters\n" | |||
|
7369 | " while transcoding user inputs. The default is \"strict\", which\n" | |||
|
7370 | " causes Mercurial to abort if it can't translate a character. Other\n" | |||
|
7371 | " settings include \"replace\", which replaces unknown characters, and\n" | |||
|
7372 | " \"ignore\", which drops them. This setting can be overridden with\n" | |||
|
7373 | " the --encodingmode command-line option.\n" | |||
|
7374 | "\n" | |||
|
7375 | "HGMERGE::\n" | |||
|
7376 | " An executable to use for resolving merge conflicts. The program\n" | |||
|
7377 | " will be executed with three arguments: local file, remote file,\n" | |||
|
7378 | " ancestor file.\n" | |||
|
7379 | "\n" | |||
|
7380 | " (deprecated, use .hgrc)\n" | |||
|
7381 | "\n" | |||
|
7382 | "HGRCPATH::\n" | |||
|
7383 | " A list of files or directories to search for hgrc files. Item\n" | |||
|
7384 | " separator is \":\" on Unix, \";\" on Windows. If HGRCPATH is not set,\n" | |||
|
7385 | " platform default search path is used. If empty, only .hg/hgrc of\n" | |||
|
7386 | " current repository is read.\n" | |||
|
7387 | "\n" | |||
|
7388 | " For each element in path, if a directory, all entries in directory\n" | |||
|
7389 | " ending with \".rc\" are added to path. Else, element itself is\n" | |||
|
7390 | " added to path.\n" | |||
|
7391 | "\n" | |||
|
7392 | "HGUSER::\n" | |||
|
7393 | " This is the string used for the author of a commit.\n" | |||
|
7394 | "\n" | |||
|
7395 | " (deprecated, use .hgrc)\n" | |||
|
7396 | "\n" | |||
|
7397 | "EMAIL::\n" | |||
|
7398 | " If HGUSER is not set, this will be used as the author for a commit.\n" | |||
|
7399 | "\n" | |||
|
7400 | "LOGNAME::\n" | |||
|
7401 | " If neither HGUSER nor EMAIL is set, LOGNAME will be used (with\n" | |||
|
7402 | " '@hostname' appended) as the author value for a commit.\n" | |||
|
7403 | "\n" | |||
|
7404 | "VISUAL::\n" | |||
|
7405 | " This is the name of the editor to use when committing. See EDITOR.\n" | |||
|
7406 | "\n" | |||
|
7407 | "EDITOR::\n" | |||
|
7408 | " Sometimes Mercurial needs to open a text file in an editor\n" | |||
|
7409 | " for a user to modify, for example when writing commit messages.\n" | |||
|
7410 | " The editor it uses is determined by looking at the environment\n" | |||
|
7411 | " variables HGEDITOR, VISUAL and EDITOR, in that order. The first\n" | |||
|
7412 | " non-empty one is chosen. If all of them are empty, the editor\n" | |||
|
7413 | " defaults to 'vi'.\n" | |||
|
7414 | "\n" | |||
|
7415 | "PYTHONPATH::\n" | |||
|
7416 | " This is used by Python to find imported modules and may need to be set\n" | |||
|
7417 | " appropriately if Mercurial is not installed system-wide.\n" | |||
|
7418 | " " | |||
|
7419 | msgstr "" | |||
|
7420 | ||||
|
7421 | msgid "Specifying Single Revisions" | |||
|
7422 | msgstr "Angivning af en enkelt revision" | |||
|
7423 | ||||
|
7424 | msgid "" | |||
|
7425 | "\n" | |||
|
7426 | " Mercurial accepts several notations for identifying individual\n" | |||
|
7427 | " revisions.\n" | |||
|
7428 | "\n" | |||
|
7429 | " A plain integer is treated as a revision number. Negative\n" | |||
|
7430 | " integers are treated as offsets from the tip, with -1 denoting the\n" | |||
|
7431 | " tip.\n" | |||
|
7432 | "\n" | |||
|
7433 | " A 40-digit hexadecimal string is treated as a unique revision\n" | |||
|
7434 | " identifier.\n" | |||
|
7435 | "\n" | |||
|
7436 | " A hexadecimal string less than 40 characters long is treated as a\n" | |||
|
7437 | " unique revision identifier, and referred to as a short-form\n" | |||
|
7438 | " identifier. A short-form identifier is only valid if it is the\n" | |||
|
7439 | " prefix of one full-length identifier.\n" | |||
|
7440 | "\n" | |||
|
7441 | " Any other string is treated as a tag name, which is a symbolic\n" | |||
|
7442 | " name associated with a revision identifier. Tag names may not\n" | |||
|
7443 | " contain the \":\" character.\n" | |||
|
7444 | "\n" | |||
|
7445 | " The reserved name \"tip\" is a special tag that always identifies\n" | |||
|
7446 | " the most recent revision.\n" | |||
|
7447 | "\n" | |||
|
7448 | " The reserved name \"null\" indicates the null revision. This is the\n" | |||
|
7449 | " revision of an empty repository, and the parent of revision 0.\n" | |||
|
7450 | "\n" | |||
|
7451 | " The reserved name \".\" indicates the working directory parent. If\n" | |||
|
7452 | " no working directory is checked out, it is equivalent to null.\n" | |||
|
7453 | " If an uncommitted merge is in progress, \".\" is the revision of\n" | |||
|
7454 | " the first parent.\n" | |||
|
7455 | " " | |||
|
7456 | msgstr "" | |||
|
7457 | ||||
|
7458 | msgid "Specifying Multiple Revisions" | |||
|
7459 | msgstr "Angivning af flere revisioner" | |||
|
7460 | ||||
|
7461 | msgid "" | |||
|
7462 | "\n" | |||
|
7463 | " When Mercurial accepts more than one revision, they may be\n" | |||
|
7464 | " specified individually, or provided as a continuous range,\n" | |||
|
7465 | " separated by the \":\" character.\n" | |||
|
7466 | "\n" | |||
|
7467 | " The syntax of range notation is [BEGIN]:[END], where BEGIN and END\n" | |||
|
7468 | " are revision identifiers. Both BEGIN and END are optional. If\n" | |||
|
7469 | " BEGIN is not specified, it defaults to revision number 0. If END\n" | |||
|
7470 | " is not specified, it defaults to the tip. The range \":\" thus\n" | |||
|
7471 | " means \"all revisions\".\n" | |||
|
7472 | "\n" | |||
|
7473 | " If BEGIN is greater than END, revisions are treated in reverse\n" | |||
|
7474 | " order.\n" | |||
|
7475 | "\n" | |||
|
7476 | " A range acts as a closed interval. This means that a range of 3:5\n" | |||
|
7477 | " gives 3, 4 and 5. Similarly, a range of 4:2 gives 4, 3, and 2.\n" | |||
|
7478 | " " | |||
|
7479 | msgstr "" | |||
|
7480 | ||||
|
7481 | msgid "Diff Formats" | |||
|
7482 | msgstr "" | |||
|
7483 | ||||
|
7484 | msgid "" | |||
|
7485 | "\n" | |||
|
7486 | " Mercurial's default format for showing changes between two versions\n" | |||
|
7487 | " of a file is compatible with the unified format of GNU diff, which\n" | |||
|
7488 | " can be used by GNU patch and many other standard tools.\n" | |||
|
7489 | "\n" | |||
|
7490 | " While this standard format is often enough, it does not encode the\n" | |||
|
7491 | " following information:\n" | |||
|
7492 | "\n" | |||
|
7493 | " - executable status\n" | |||
|
7494 | " - copy or rename information\n" | |||
|
7495 | " - changes in binary files\n" | |||
|
7496 | " - creation or deletion of empty files\n" | |||
|
7497 | "\n" | |||
|
7498 | " Mercurial also supports the extended diff format from the git VCS\n" | |||
|
7499 | " which addresses these limitations. The git diff format is not\n" | |||
|
7500 | " produced by default because there are very few tools which\n" | |||
|
7501 | " understand this format.\n" | |||
|
7502 | "\n" | |||
|
7503 | " This means that when generating diffs from a Mercurial repository\n" | |||
|
7504 | " (e.g. with \"hg export\"), you should be careful about things like\n" | |||
|
7505 | " file copies and renames or other things mentioned above, because\n" | |||
|
7506 | " when applying a standard diff to a different repository, this extra\n" | |||
|
7507 | " information is lost. Mercurial's internal operations (like push and\n" | |||
|
7508 | " pull) are not affected by this, because they use an internal binary\n" | |||
|
7509 | " format for communicating changes.\n" | |||
|
7510 | "\n" | |||
|
7511 | " To make Mercurial produce the git extended diff format, use the\n" | |||
|
7512 | " --git option available for many commands, or set 'git = True' in the\n" | |||
|
7513 | " [diff] section of your hgrc. You do not need to set this option when\n" | |||
|
7514 | " importing diffs in this format or using them in the mq extension.\n" | |||
|
7515 | " " | |||
|
7516 | msgstr "" | |||
|
7517 | ||||
|
7518 | msgid "Template Usage" | |||
|
7519 | msgstr "" | |||
|
7520 | ||||
|
7521 | msgid "" | |||
|
7522 | "\n" | |||
|
7523 | " Mercurial allows you to customize output of commands through\n" | |||
|
7524 | " templates. You can either pass in a template from the command line,\n" | |||
|
7525 | " via the --template option, or select an existing template-style (--" | |||
|
7526 | "style).\n" | |||
|
7527 | "\n" | |||
|
7528 | " You can customize output for any \"log-like\" command: log, outgoing,\n" | |||
|
7529 | " incoming, tip, parents, heads and glog are all template-enabled.\n" | |||
|
7530 | "\n" | |||
|
7531 | " Three styles are packaged with Mercurial: default (the style used\n" | |||
|
7532 | " when no explicit preference is passed), compact and changelog. Usage:\n" | |||
|
7533 | "\n" | |||
|
7534 | " $ hg log -r1 --style changelog\n" | |||
|
7535 | "\n" | |||
|
7536 | " A template is a piece of text, with markup to invoke variable " | |||
|
7537 | "expansion:\n" | |||
|
7538 | "\n" | |||
|
7539 | " $ hg log -r1 --template \"{node}\\n\"\n" | |||
|
7540 | " b56ce7b07c52de7d5fd79fb89701ea538af65746\n" | |||
|
7541 | "\n" | |||
|
7542 | " Strings in curly braces are called keywords. The availability of\n" | |||
|
7543 | " keywords depends on the exact context of the templater. These keywords\n" | |||
|
7544 | " are usually available for templating a log-like command:\n" | |||
|
7545 | "\n" | |||
|
7546 | " - author: String. The unmodified author of the changeset.\n" | |||
|
7547 | " - branches: String. The name of the branch on which the changeset\n" | |||
|
7548 | " was committed. Will be empty if the branch name was default.\n" | |||
|
7549 | " - date: Date information. The date when the changeset was committed.\n" | |||
|
7550 | " - desc: String. The text of the changeset description.\n" | |||
|
7551 | " - files: List of strings. All files modified, added, or removed by\n" | |||
|
7552 | " this changeset.\n" | |||
|
7553 | " - file_adds: List of strings. Files added by this changeset.\n" | |||
|
7554 | " - file_mods: List of strings. Files modified by this changeset.\n" | |||
|
7555 | " - file_dels: List of strings. Files removed by this changeset.\n" | |||
|
7556 | " - node: String. The changeset identification hash, as a 40-character\n" | |||
|
7557 | " hexadecimal string.\n" | |||
|
7558 | " - parents: List of strings. The parents of the changeset.\n" | |||
|
7559 | " - rev: Integer. The repository-local changeset revision number.\n" | |||
|
7560 | " - tags: List of strings. Any tags associated with the changeset.\n" | |||
|
7561 | "\n" | |||
|
7562 | " The \"date\" keyword does not produce human-readable output. If you\n" | |||
|
7563 | " want to use a date in your output, you can use a filter to process it.\n" | |||
|
7564 | " Filters are functions which return a string based on the input " | |||
|
7565 | "variable.\n" | |||
|
7566 | " You can also use a chain of filters to get the wanted output:\n" | |||
|
7567 | "\n" | |||
|
7568 | " $ hg tip --template \"{date|isodate}\\n\"\n" | |||
|
7569 | " 2008-08-21 18:22 +0000\n" | |||
|
7570 | "\n" | |||
|
7571 | " List of filters:\n" | |||
|
7572 | "\n" | |||
|
7573 | " - addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n" | |||
|
7574 | " every line except the last.\n" | |||
|
7575 | " - age: Date. Returns a human-readable age for the given date.\n" | |||
|
7576 | " - basename: Any text. Treats the text as a path, and returns the\n" | |||
|
7577 | " basename. For example, \"foo/bar/baz\" becomes \"baz\".\n" | |||
|
7578 | " - date: Date. Returns a date in a Unix date command format, including\n" | |||
|
7579 | " the timezone: \"Mon Sep 04 15:13:13 2006 0700\".\n" | |||
|
7580 | " - domain: Any text. Finds the first string that looks like an email\n" | |||
|
7581 | " address, and extracts just the domain component.\n" | |||
|
7582 | " - email: Any text. Extracts the first string that looks like an email\n" | |||
|
7583 | " address.\n" | |||
|
7584 | " - escape: Any text. Replaces the special XML/XHTML characters \"&\",\n" | |||
|
7585 | " \"<\" and \">\" with XML entities.\n" | |||
|
7586 | " - fill68: Any text. Wraps the text to fit in 68 columns.\n" | |||
|
7587 | " - fill76: Any text. Wraps the text to fit in 76 columns.\n" | |||
|
7588 | " - firstline: Any text. Returns the first line of text.\n" | |||
|
7589 | " - hgdate: Date. Returns the date as a pair of numbers:\n" | |||
|
7590 | " \"1157407993 25200\" (Unix timestamp, timezone offset).\n" | |||
|
7591 | " - isodate: Date. Returns the date in ISO 8601 format.\n" | |||
|
7592 | " - obfuscate: Any text. Returns the input text rendered as a sequence\n" | |||
|
7593 | " of XML entities.\n" | |||
|
7594 | " - person: Any text. Returns the text before an email address.\n" | |||
|
7595 | " - rfc822date: Date. Returns a date using the same format used\n" | |||
|
7596 | " in email headers.\n" | |||
|
7597 | " - short: Changeset hash. Returns the short form of a changeset hash,\n" | |||
|
7598 | " i.e. a 12-byte hexadecimal string.\n" | |||
|
7599 | " - shortdate: Date. Returns a date like \"2006-09-04\".\n" | |||
|
7600 | " - strip: Any text. Strips all leading and trailing whitespace.\n" | |||
|
7601 | " - tabindent: Any text. Returns the text, with every line except the\n" | |||
|
7602 | " first starting with a tab character.\n" | |||
|
7603 | " - urlescape: Any text. Escapes all \"special\" characters. For example,\n" | |||
|
7604 | " \"foo bar\" becomes \"foo%20bar\".\n" | |||
|
7605 | " - user: Any text. Returns the user portion of an email address.\n" | |||
|
7606 | " " | |||
|
7607 | msgstr "" | |||
|
7608 | ||||
|
7609 | msgid "Url Paths" | |||
|
7610 | msgstr "URL-stier" | |||
|
7611 | ||||
|
7612 | msgid "" | |||
|
7613 | "\n" | |||
|
7614 | " Valid URLs are of the form:\n" | |||
|
7615 | "\n" | |||
|
7616 | " local/filesystem/path (or file://local/filesystem/path)\n" | |||
|
7617 | " http://[user[:pass]@]host[:port]/[path]\n" | |||
|
7618 | " https://[user[:pass]@]host[:port]/[path]\n" | |||
|
7619 | " ssh://[user[:pass]@]host[:port]/[path]\n" | |||
|
7620 | "\n" | |||
|
7621 | " Paths in the local filesystem can either point to Mercurial\n" | |||
|
7622 | " repositories or to bundle files (as created by 'hg bundle' or\n" | |||
|
7623 | " 'hg incoming --bundle').\n" | |||
|
7624 | "\n" | |||
|
7625 | " An optional identifier after # indicates a particular branch, tag,\n" | |||
|
7626 | " or changeset to deal with in the remote repository.\n" | |||
|
7627 | "\n" | |||
|
7628 | " Some features, such as pushing to http:// and https:// URLs are\n" | |||
|
7629 | " only possible if the feature is explicitly enabled on the\n" | |||
|
7630 | " remote Mercurial server.\n" | |||
|
7631 | "\n" | |||
|
7632 | " Some notes about using SSH with Mercurial:\n" | |||
|
7633 | " - SSH requires an accessible shell account on the destination machine\n" | |||
|
7634 | " and a copy of hg in the remote path or specified with as remotecmd.\n" | |||
|
7635 | " - path is relative to the remote user's home directory by default.\n" | |||
|
7636 | " Use an extra slash at the start of a path to specify an absolute " | |||
|
7637 | "path:\n" | |||
|
7638 | " ssh://example.com//tmp/repository\n" | |||
|
7639 | " - Mercurial doesn't use its own compression via SSH; the right thing\n" | |||
|
7640 | " to do is to configure it in your ~/.ssh/config, e.g.:\n" | |||
|
7641 | " Host *.mylocalnetwork.example.com\n" | |||
|
7642 | " Compression no\n" | |||
|
7643 | " Host *\n" | |||
|
7644 | " Compression yes\n" | |||
|
7645 | " Alternatively specify \"ssh -C\" as your ssh command in your hgrc or\n" | |||
|
7646 | " with the --ssh command line option.\n" | |||
|
7647 | "\n" | |||
|
7648 | " These urls can all be stored in your hgrc with path aliases under the\n" | |||
|
7649 | " [paths] section like so:\n" | |||
|
7650 | " [paths]\n" | |||
|
7651 | " alias1 = URL1\n" | |||
|
7652 | " alias2 = URL2\n" | |||
|
7653 | " ...\n" | |||
|
7654 | "\n" | |||
|
7655 | " You can then use the alias for any command that uses a url (for example\n" | |||
|
7656 | " 'hg pull alias1' would pull from the 'alias1' path).\n" | |||
|
7657 | "\n" | |||
|
7658 | " Two path aliases are more important because they are used as defaults\n" | |||
|
7659 | " when you do not provide the url to a command:\n" | |||
|
7660 | "\n" | |||
|
7661 | " default:\n" | |||
|
7662 | " When you create a repository with hg clone, the clone command saves\n" | |||
|
7663 | " the location of the source repository as the 'default' path. This is\n" | |||
|
7664 | " then used when you omit a path from the push and pull commands.\n" | |||
|
7665 | "\n" | |||
|
7666 | " default-push:\n" | |||
|
7667 | " The push command will look for a path named 'default-push', and\n" | |||
|
7668 | " prefer it over 'default' if both are defined.\n" | |||
|
7669 | " " | |||
|
7670 | msgstr "" | |||
|
7671 | ||||
|
7672 | #, python-format | |||
|
7673 | msgid "destination directory: %s\n" | |||
|
7674 | msgstr "" | |||
|
7675 | ||||
|
7676 | #, python-format | |||
|
7677 | msgid "destination '%s' already exists" | |||
|
7678 | msgstr "" | |||
|
7679 | ||||
|
7680 | msgid "" | |||
|
7681 | "src repository does not support revision lookup and so doesn't support clone " | |||
|
7682 | "by revision" | |||
|
7683 | msgstr "" | |||
|
7684 | ||||
|
7685 | msgid "clone from remote to remote not supported" | |||
|
7686 | msgstr "" | |||
|
7687 | ||||
|
7688 | msgid "updating working directory\n" | |||
|
7689 | msgstr "opdaterer arbejdsbibliotek\n" | |||
|
7690 | ||||
|
7691 | msgid "updated" | |||
|
7692 | msgstr "opdateret" | |||
|
7693 | ||||
|
7694 | msgid "merged" | |||
|
7695 | msgstr "sammenføjet" | |||
|
7696 | ||||
|
7697 | msgid "removed" | |||
|
7698 | msgstr "fjernet" | |||
|
7699 | ||||
|
7700 | msgid "unresolved" | |||
|
7701 | msgstr "uløst" | |||
|
7702 | ||||
|
7703 | #, python-format | |||
|
7704 | msgid "%d files %s" | |||
|
7705 | msgstr "%d filer %s" | |||
|
7706 | ||||
|
7707 | msgid "use 'hg resolve' to retry unresolved file merges\n" | |||
|
7708 | msgstr "" | |||
|
7709 | ||||
|
7710 | msgid "(branch merge, don't forget to commit)\n" | |||
|
7711 | msgstr "" | |||
|
7712 | ||||
|
7713 | #, python-format | |||
|
7714 | msgid "error reading %s/.hg/hgrc: %s\n" | |||
|
7715 | msgstr "" | |||
|
7716 | ||||
|
7717 | msgid "SSL support is unavailable" | |||
|
7718 | msgstr "understøttelse for SSL er ikke tilstede" | |||
|
7719 | ||||
|
7720 | msgid "IPv6 not available on this system" | |||
|
7721 | msgstr "IPv6 er ikke til rådighed på dette system" | |||
|
7722 | ||||
|
7723 | #, python-format | |||
|
7724 | msgid "cannot start server at '%s:%d': %s" | |||
|
7725 | msgstr "kan ikke starte server på '%s:%d': %s" | |||
|
7726 | ||||
|
7727 | #, python-format | |||
|
7728 | msgid "calling hook %s: %s\n" | |||
|
7729 | msgstr "" | |||
|
7730 | ||||
|
7731 | #, python-format | |||
|
7732 | msgid "%s hook is invalid (\"%s\" not in a module)" | |||
|
7733 | msgstr "" | |||
|
7734 | ||||
|
7735 | #, python-format | |||
|
7736 | msgid "%s hook is invalid (import of \"%s\" failed)" | |||
|
7737 | msgstr "" | |||
|
7738 | ||||
|
7739 | #, python-format | |||
|
7740 | msgid "%s hook is invalid (\"%s\" is not defined)" | |||
|
7741 | msgstr "" | |||
|
7742 | ||||
|
7743 | #, python-format | |||
|
7744 | msgid "%s hook is invalid (\"%s\" is not callable)" | |||
|
7745 | msgstr "" | |||
|
7746 | ||||
|
7747 | #, python-format | |||
|
7748 | msgid "error: %s hook failed: %s\n" | |||
|
7749 | msgstr "" | |||
|
7750 | ||||
|
7751 | #, python-format | |||
|
7752 | msgid "error: %s hook raised an exception: %s\n" | |||
|
7753 | msgstr "" | |||
|
7754 | ||||
|
7755 | #, python-format | |||
|
7756 | msgid "%s hook failed" | |||
|
7757 | msgstr "" | |||
|
7758 | ||||
|
7759 | #, python-format | |||
|
7760 | msgid "warning: %s hook failed\n" | |||
|
7761 | msgstr "" | |||
|
7762 | ||||
|
7763 | #, python-format | |||
|
7764 | msgid "running hook %s: %s\n" | |||
|
7765 | msgstr "" | |||
|
7766 | ||||
|
7767 | #, python-format | |||
|
7768 | msgid "%s hook %s" | |||
|
7769 | msgstr "" | |||
|
7770 | ||||
|
7771 | #, python-format | |||
|
7772 | msgid "warning: %s hook %s\n" | |||
|
7773 | msgstr "" | |||
|
7774 | ||||
|
7775 | msgid "connection ended unexpectedly" | |||
|
7776 | msgstr "forbindelsen blev uventet afsluttet" | |||
|
7777 | ||||
|
7778 | #, python-format | |||
|
7779 | msgid "unsupported URL component: \"%s\"" | |||
|
7780 | msgstr "ikke-understøttet URL-komponent: \"%s\"" | |||
|
7781 | ||||
|
7782 | #, python-format | |||
|
7783 | msgid "using %s\n" | |||
|
7784 | msgstr "bruger %s\n" | |||
|
7785 | ||||
|
7786 | #, python-format | |||
|
7787 | msgid "capabilities: %s\n" | |||
|
7788 | msgstr "kapaciteter: %s\n" | |||
|
7789 | ||||
|
7790 | msgid "operation not supported over http" | |||
|
7791 | msgstr "operationen understøttes ikke over http" | |||
|
7792 | ||||
|
7793 | #, python-format | |||
|
7794 | msgid "sending %s command\n" | |||
|
7795 | msgstr "sender %s kommando\n" | |||
|
7796 | ||||
|
7797 | #, python-format | |||
|
7798 | msgid "sending %s bytes\n" | |||
|
7799 | msgstr "sender %s bytes\n" | |||
|
7800 | ||||
|
7801 | msgid "authorization failed" | |||
|
7802 | msgstr "autorisation fejlede" | |||
|
7803 | ||||
|
7804 | #, python-format | |||
|
7805 | msgid "http error while sending %s command\n" | |||
|
7806 | msgstr "" | |||
|
7807 | ||||
|
7808 | msgid "http error, possibly caused by proxy setting" | |||
|
7809 | msgstr "" | |||
|
7810 | ||||
|
7811 | #, python-format | |||
|
7812 | msgid "real URL is %s\n" | |||
|
7813 | msgstr "den rigtige URL er %s\n" | |||
|
7814 | ||||
|
7815 | #, python-format | |||
|
7816 | msgid "Requested URL: '%s'\n" | |||
|
7817 | msgstr "" | |||
|
7818 | ||||
|
7819 | #, python-format | |||
|
7820 | msgid "'%s' does not appear to be an hg repository" | |||
|
7821 | msgstr "" | |||
|
7822 | ||||
|
7823 | #, python-format | |||
|
7824 | msgid "'%s' sent a broken Content-Type header (%s)" | |||
|
7825 | msgstr "" | |||
|
7826 | ||||
|
7827 | #, python-format | |||
|
7828 | msgid "'%s' uses newer protocol %s" | |||
|
7829 | msgstr "'%s' bruger nyere protokol %s" | |||
|
7830 | ||||
|
7831 | msgid "look up remote revision" | |||
|
7832 | msgstr "" | |||
|
7833 | ||||
|
7834 | msgid "unexpected response:" | |||
|
7835 | msgstr "" | |||
|
7836 | ||||
|
7837 | msgid "look up remote changes" | |||
|
7838 | msgstr "" | |||
|
7839 | ||||
|
7840 | msgid "push failed (unexpected response):" | |||
|
7841 | msgstr "" | |||
|
7842 | ||||
|
7843 | #, python-format | |||
|
7844 | msgid "push failed: %s" | |||
|
7845 | msgstr "skub fejlede: %s" | |||
|
7846 | ||||
|
7847 | msgid "Python support for SSL and HTTPS is not installed" | |||
|
7848 | msgstr "" | |||
|
7849 | ||||
|
7850 | msgid "cannot create new http repository" | |||
|
7851 | msgstr "kan ikke lave nyt http arkiv" | |||
|
7852 | ||||
|
7853 | #, python-format | |||
|
7854 | msgid "%s: ignoring invalid syntax '%s'\n" | |||
|
7855 | msgstr "%s: ignorerer ugyldig syntaks '%s'\n" | |||
|
7856 | ||||
|
7857 | #, python-format | |||
|
7858 | msgid "skipping unreadable ignore file '%s': %s\n" | |||
|
7859 | msgstr "" | |||
|
7860 | ||||
|
7861 | #, python-format | |||
|
7862 | msgid "repository %s not found" | |||
|
7863 | msgstr "arkivet %s blev ikke fundet" | |||
|
7864 | ||||
|
7865 | #, python-format | |||
|
7866 | msgid "repository %s already exists" | |||
|
7867 | msgstr "arkivet %s eksisterer allerede" | |||
|
7868 | ||||
|
7869 | #, python-format | |||
|
7870 | msgid "requirement '%s' not supported" | |||
|
7871 | msgstr "" | |||
|
7872 | ||||
|
7873 | #, python-format | |||
|
7874 | msgid "%r cannot be used in a tag name" | |||
|
7875 | msgstr "" | |||
|
7876 | ||||
|
7877 | msgid "working copy of .hgtags is changed (please commit .hgtags manually)" | |||
|
7878 | msgstr "" | |||
|
7879 | ||||
|
7880 | #, python-format | |||
|
7881 | msgid "%s, line %s: %s\n" | |||
|
7882 | msgstr "%s, linie %s: %s\n" | |||
|
7883 | ||||
|
7884 | msgid "cannot parse entry" | |||
|
7885 | msgstr "" | |||
|
7886 | ||||
|
7887 | #, python-format | |||
|
7888 | msgid "node '%s' is not well formed" | |||
|
7889 | msgstr "" | |||
|
7890 | ||||
|
7891 | #, python-format | |||
|
7892 | msgid "tag '%s' refers to unknown node" | |||
|
7893 | msgstr "" | |||
|
7894 | ||||
|
7895 | #, python-format | |||
|
7896 | msgid "unknown revision '%s'" | |||
|
7897 | msgstr "ukendt revision '%s'" | |||
|
7898 | ||||
|
7899 | #, python-format | |||
|
7900 | msgid "filtering %s through %s\n" | |||
|
7901 | msgstr "filtrerer %s gennem %s\n" | |||
|
7902 | ||||
|
7903 | msgid "journal already exists - run hg recover" | |||
|
7904 | msgstr "" | |||
|
7905 | ||||
|
7906 | msgid "rolling back interrupted transaction\n" | |||
|
7907 | msgstr "" | |||
|
7908 | ||||
|
7909 | msgid "no interrupted transaction available\n" | |||
|
7910 | msgstr "" | |||
|
7911 | ||||
|
7912 | msgid "rolling back last transaction\n" | |||
|
7913 | msgstr "" | |||
|
7914 | ||||
|
7915 | #, python-format | |||
|
7916 | msgid "Named branch could not be reset, current branch still is: %s\n" | |||
|
7917 | msgstr "" | |||
|
7918 | ||||
|
7919 | msgid "no rollback information available\n" | |||
|
7920 | msgstr "" | |||
|
7921 | ||||
|
7922 | #, python-format | |||
|
7923 | msgid "waiting for lock on %s held by %r\n" | |||
|
7924 | msgstr "" | |||
|
7925 | ||||
|
7926 | #, python-format | |||
|
7927 | msgid "repository %s" | |||
|
7928 | msgstr "arkiv %s" | |||
|
7929 | ||||
|
7930 | #, python-format | |||
|
7931 | msgid "working directory of %s" | |||
|
7932 | msgstr "arbejdsbibliotek for %s" | |||
|
7933 | ||||
|
7934 | #, python-format | |||
|
7935 | msgid " %s: searching for copy revision for %s\n" | |||
|
7936 | msgstr "" | |||
|
7937 | ||||
|
7938 | #, python-format | |||
|
7939 | msgid " %s: copy %s:%s\n" | |||
|
7940 | msgstr "" | |||
|
7941 | ||||
|
7942 | msgid "cannot partially commit a merge (do not specify files or patterns)" | |||
|
7943 | msgstr "" | |||
|
7944 | ||||
|
7945 | #, python-format | |||
|
7946 | msgid "%s not tracked!\n" | |||
|
7947 | msgstr "" | |||
|
7948 | ||||
|
7949 | msgid "unresolved merge conflicts (see hg resolve)" | |||
|
7950 | msgstr "" | |||
|
7951 | ||||
|
7952 | msgid "nothing changed\n" | |||
|
7953 | msgstr "" | |||
|
7954 | ||||
|
7955 | #, python-format | |||
|
7956 | msgid "trouble committing %s!\n" | |||
|
7957 | msgstr "" | |||
|
7958 | ||||
|
7959 | msgid "HG: Enter commit message. Lines beginning with 'HG:' are removed." | |||
|
7960 | msgstr "" | |||
|
7961 | ||||
|
7962 | msgid "empty commit message" | |||
|
7963 | msgstr "" | |||
|
7964 | ||||
|
7965 | #, python-format | |||
|
7966 | msgid "%s does not exist!\n" | |||
|
7967 | msgstr "" | |||
|
7968 | ||||
|
7969 | #, python-format | |||
|
7970 | msgid "" | |||
|
7971 | "%s: files over 10MB may cause memory and performance problems\n" | |||
|
7972 | "(use 'hg revert %s' to unadd the file)\n" | |||
|
7973 | msgstr "" | |||
|
7974 | ||||
|
7975 | #, python-format | |||
|
7976 | msgid "%s not added: only files and symlinks supported currently\n" | |||
|
7977 | msgstr "" | |||
|
7978 | ||||
|
7979 | #, python-format | |||
|
7980 | msgid "%s already tracked!\n" | |||
|
7981 | msgstr "" | |||
|
7982 | ||||
|
7983 | #, python-format | |||
|
7984 | msgid "%s not added!\n" | |||
|
7985 | msgstr "" | |||
|
7986 | ||||
|
7987 | #, python-format | |||
|
7988 | msgid "%s still exists!\n" | |||
|
7989 | msgstr "" | |||
|
7990 | ||||
|
7991 | #, python-format | |||
|
7992 | msgid "%s not removed!\n" | |||
|
7993 | msgstr "" | |||
|
7994 | ||||
|
7995 | #, python-format | |||
|
7996 | msgid "copy failed: %s is not a file or a symbolic link\n" | |||
|
7997 | msgstr "" | |||
|
7998 | ||||
|
7999 | msgid "searching for changes\n" | |||
|
8000 | msgstr "leder efter ændringer\n" | |||
|
8001 | ||||
|
8002 | #, python-format | |||
|
8003 | msgid "examining %s:%s\n" | |||
|
8004 | msgstr "undersøger %s:%s\n" | |||
|
8005 | ||||
|
8006 | msgid "branch already found\n" | |||
|
8007 | msgstr "gren er allerede fundet\n" | |||
|
8008 | ||||
|
8009 | #, python-format | |||
|
8010 | msgid "found incomplete branch %s:%s\n" | |||
|
8011 | msgstr "fandt ukomplet gren %s:%s\n" | |||
|
8012 | ||||
|
8013 | #, python-format | |||
|
8014 | msgid "found new changeset %s\n" | |||
|
8015 | msgstr "fandt ny ændring %s\n" | |||
|
8016 | ||||
|
8017 | #, python-format | |||
|
8018 | msgid "request %d: %s\n" | |||
|
8019 | msgstr "forespørgsel %d: %s\n" | |||
|
8020 | ||||
|
8021 | #, python-format | |||
|
8022 | msgid "received %s:%s\n" | |||
|
8023 | msgstr "modtog %s:%s\n" | |||
|
8024 | ||||
|
8025 | #, python-format | |||
|
8026 | msgid "narrowing %d:%d %s\n" | |||
|
8027 | msgstr "indskrænker %d:%d %s\n" | |||
|
8028 | ||||
|
8029 | #, python-format | |||
|
8030 | msgid "found new branch changeset %s\n" | |||
|
8031 | msgstr "fandt ny forgreningsændring %s\n" | |||
|
8032 | ||||
|
8033 | #, python-format | |||
|
8034 | msgid "narrowed branch search to %s:%s\n" | |||
|
8035 | msgstr "indskrænker forgreningssøgning til %s:%s\n" | |||
|
8036 | ||||
|
8037 | msgid "already have changeset " | |||
|
8038 | msgstr "har allerede ændringen " | |||
|
8039 | ||||
|
8040 | msgid "warning: repository is unrelated\n" | |||
|
8041 | msgstr "advarsel: arkivet er urelateret\n" | |||
|
8042 | ||||
|
8043 | msgid "repository is unrelated" | |||
|
8044 | msgstr "arkivet er urelateret" | |||
|
8045 | ||||
|
8046 | msgid "found new changesets starting at " | |||
|
8047 | msgstr "fandt nye ændringer startende ved " | |||
|
8048 | ||||
|
8049 | #, python-format | |||
|
8050 | msgid "%d total queries\n" | |||
|
8051 | msgstr "%d forespørgsler i alt\n" | |||
|
8052 | ||||
|
8053 | msgid "common changesets up to " | |||
|
8054 | msgstr "fælles ændringer op til " | |||
|
8055 | ||||
|
8056 | msgid "requesting all changes\n" | |||
|
8057 | msgstr "anmoder om alle ændringer\n" | |||
|
8058 | ||||
|
8059 | msgid "" | |||
|
8060 | "Partial pull cannot be done because other repository doesn't support " | |||
|
8061 | "changegroupsubset." | |||
|
8062 | msgstr "" | |||
|
8063 | ||||
|
8064 | msgid "abort: push creates new remote heads!\n" | |||
|
8065 | msgstr "" | |||
|
8066 | ||||
|
8067 | msgid "(did you forget to merge? use push -f to force)\n" | |||
|
8068 | msgstr "" | |||
|
8069 | ||||
|
8070 | msgid "note: unsynced remote changes!\n" | |||
|
8071 | msgstr "" | |||
|
8072 | ||||
|
8073 | #, python-format | |||
|
8074 | msgid "%d changesets found\n" | |||
|
8075 | msgstr "" | |||
|
8076 | ||||
|
8077 | msgid "list of changesets:\n" | |||
|
8078 | msgstr "" | |||
|
8079 | ||||
|
8080 | #, python-format | |||
|
8081 | msgid "empty or missing revlog for %s" | |||
|
8082 | msgstr "" | |||
|
8083 | ||||
|
8084 | #, python-format | |||
|
8085 | msgid "add changeset %s\n" | |||
|
8086 | msgstr "tilføj ændring %s\n" | |||
|
8087 | ||||
|
8088 | msgid "adding changesets\n" | |||
|
8089 | msgstr "tilføjer ændringer\n" | |||
|
8090 | ||||
|
8091 | msgid "received changelog group is empty" | |||
|
8092 | msgstr "" | |||
|
8093 | ||||
|
8094 | msgid "adding manifests\n" | |||
|
8095 | msgstr "tilføjer manifester\n" | |||
|
8096 | ||||
|
8097 | msgid "adding file changes\n" | |||
|
8098 | msgstr "tilføjer filændringer\n" | |||
|
8099 | ||||
|
8100 | #, python-format | |||
|
8101 | msgid "adding %s revisions\n" | |||
|
8102 | msgstr "tilføjer %s ændringer\n" | |||
|
8103 | ||||
|
8104 | msgid "received file revlog group is empty" | |||
|
8105 | msgstr "" | |||
|
8106 | ||||
|
8107 | #, python-format | |||
|
8108 | msgid " (%+d heads)" | |||
|
8109 | msgstr " (%+d hoveder)" | |||
|
8110 | ||||
|
8111 | #, python-format | |||
|
8112 | msgid "added %d changesets with %d changes to %d files%s\n" | |||
|
8113 | msgstr "tilføjede %d ændringer med %d ændringer i %d filer%s\n" | |||
|
8114 | ||||
|
8115 | msgid "updating the branch cache\n" | |||
|
8116 | msgstr "" | |||
|
8117 | ||||
|
8118 | msgid "Unexpected response from remote server:" | |||
|
8119 | msgstr "" | |||
|
8120 | ||||
|
8121 | msgid "operation forbidden by server" | |||
|
8122 | msgstr "" | |||
|
8123 | ||||
|
8124 | msgid "locking the remote repository failed" | |||
|
8125 | msgstr "" | |||
|
8126 | ||||
|
8127 | msgid "the server sent an unknown error code" | |||
|
8128 | msgstr "" | |||
|
8129 | ||||
|
8130 | msgid "streaming all changes\n" | |||
|
8131 | msgstr "" | |||
|
8132 | ||||
|
8133 | #, python-format | |||
|
8134 | msgid "%d files to transfer, %s of data\n" | |||
|
8135 | msgstr "" | |||
|
8136 | ||||
|
8137 | #, python-format | |||
|
8138 | msgid "adding %s (%s)\n" | |||
|
8139 | msgstr "tilføjer %s (%s)\n" | |||
|
8140 | ||||
|
8141 | #, python-format | |||
|
8142 | msgid "transferred %s in %.1f seconds (%s/sec)\n" | |||
|
8143 | msgstr "" | |||
|
8144 | ||||
|
8145 | msgid "no [smtp]host in hgrc - cannot send mail" | |||
|
8146 | msgstr "" | |||
|
8147 | ||||
|
8148 | #, python-format | |||
|
8149 | msgid "sending mail: smtp host %s, port %s\n" | |||
|
8150 | msgstr "" | |||
|
8151 | ||||
|
8152 | msgid "can't use TLS: Python SSL support not installed" | |||
|
8153 | msgstr "" | |||
|
8154 | ||||
|
8155 | msgid "(using tls)\n" | |||
|
8156 | msgstr "" | |||
|
8157 | ||||
|
8158 | #, python-format | |||
|
8159 | msgid "(authenticating to mail server as %s)\n" | |||
|
8160 | msgstr "" | |||
|
8161 | ||||
|
8162 | #, python-format | |||
|
8163 | msgid "sending mail: %s\n" | |||
|
8164 | msgstr "" | |||
|
8165 | ||||
|
8166 | msgid "smtp specified as email transport, but no smtp host configured" | |||
|
8167 | msgstr "" | |||
|
8168 | ||||
|
8169 | #, python-format | |||
|
8170 | msgid "%r specified as email transport, but not in PATH" | |||
|
8171 | msgstr "" | |||
|
8172 | ||||
|
8173 | #, python-format | |||
|
8174 | msgid "ignoring invalid sendcharset: %s\n" | |||
|
8175 | msgstr "" | |||
|
8176 | ||||
|
8177 | #, python-format | |||
|
8178 | msgid "invalid email address: %s" | |||
|
8179 | msgstr "" | |||
|
8180 | ||||
|
8181 | #, python-format | |||
|
8182 | msgid "invalid local address: %s" | |||
|
8183 | msgstr "" | |||
|
8184 | ||||
|
8185 | msgid "'\\n' and '\\r' disallowed in filenames" | |||
|
8186 | msgstr "" | |||
|
8187 | ||||
|
8188 | #, python-format | |||
|
8189 | msgid "failed to remove %s from manifest" | |||
|
8190 | msgstr "" | |||
|
8191 | ||||
|
8192 | #, python-format | |||
|
8193 | msgid "diff context lines count must be an integer, not %r" | |||
|
8194 | msgstr "" | |||
|
8195 | ||||
|
8196 | #, python-format | |||
|
8197 | msgid "" | |||
|
8198 | "untracked file in working directory differs from file in requested revision: " | |||
|
8199 | "'%s'" | |||
|
8200 | msgstr "" | |||
|
8201 | ||||
|
8202 | #, python-format | |||
|
8203 | msgid "case-folding collision between %s and %s" | |||
|
8204 | msgstr "" | |||
|
8205 | ||||
|
8206 | msgid "resolving manifests\n" | |||
|
8207 | msgstr "" | |||
|
8208 | ||||
|
8209 | #, python-format | |||
|
8210 | msgid " overwrite %s partial %s\n" | |||
|
8211 | msgstr "" | |||
|
8212 | ||||
|
8213 | #, python-format | |||
|
8214 | msgid " ancestor %s local %s remote %s\n" | |||
|
8215 | msgstr "" | |||
|
8216 | ||||
|
8217 | #, python-format | |||
|
8218 | msgid "" | |||
|
8219 | " conflicting flags for %s\n" | |||
|
8220 | "(n)one, e(x)ec or sym(l)ink?" | |||
|
8221 | msgstr "" | |||
|
8222 | ||||
|
8223 | #, python-format | |||
|
8224 | msgid "" | |||
|
8225 | " local changed %s which remote deleted\n" | |||
|
8226 | "use (c)hanged version or (d)elete?" | |||
|
8227 | msgstr "" | |||
|
8228 | ||||
|
8229 | msgid "[cd]" | |||
|
8230 | msgstr "" | |||
|
8231 | ||||
|
8232 | msgid "c" | |||
|
8233 | msgstr "" | |||
|
8234 | ||||
|
8235 | #, python-format | |||
|
8236 | msgid "" | |||
|
8237 | "remote changed %s which local deleted\n" | |||
|
8238 | "use (c)hanged version or leave (d)eleted?" | |||
|
8239 | msgstr "" | |||
|
8240 | ||||
|
8241 | #, python-format | |||
|
8242 | msgid "preserving %s for resolve of %s\n" | |||
|
8243 | msgstr "" | |||
|
8244 | ||||
|
8245 | #, python-format | |||
|
8246 | msgid "update failed to remove %s: %s!\n" | |||
|
8247 | msgstr "" | |||
|
8248 | ||||
|
8249 | #, python-format | |||
|
8250 | msgid "getting %s\n" | |||
|
8251 | msgstr "henter %s\n" | |||
|
8252 | ||||
|
8253 | #, python-format | |||
|
8254 | msgid "moving %s to %s\n" | |||
|
8255 | msgstr "" | |||
|
8256 | ||||
|
8257 | #, python-format | |||
|
8258 | msgid "getting %s to %s\n" | |||
|
8259 | msgstr "" | |||
|
8260 | ||||
|
8261 | #, python-format | |||
|
8262 | msgid "warning: detected divergent renames of %s to:\n" | |||
|
8263 | msgstr "" | |||
|
8264 | ||||
|
8265 | #, python-format | |||
|
8266 | msgid "branch %s not found" | |||
|
8267 | msgstr "" | |||
|
8268 | ||||
|
8269 | msgid "can't merge with ancestor" | |||
|
8270 | msgstr "" | |||
|
8271 | ||||
|
8272 | msgid "nothing to merge (use 'hg update' or check 'hg heads')" | |||
|
8273 | msgstr "" | |||
|
8274 | ||||
|
8275 | msgid "crosses branches (use 'hg merge' or 'hg update -C' to discard changes)" | |||
|
8276 | msgstr "" | |||
|
8277 | ||||
|
8278 | msgid "crosses branches (use 'hg merge' or 'hg update -C')" | |||
|
8279 | msgstr "" | |||
|
8280 | ||||
|
8281 | msgid "crosses named branches (use 'hg update -C' to discard changes)" | |||
|
8282 | msgstr "" | |||
|
8283 | ||||
|
8284 | #, python-format | |||
|
8285 | msgid "cannot create %s: destination already exists" | |||
|
8286 | msgstr "" | |||
|
8287 | ||||
|
8288 | #, python-format | |||
|
8289 | msgid "cannot create %s: unable to create destination directory" | |||
|
8290 | msgstr "" | |||
|
8291 | ||||
|
8292 | #, python-format | |||
|
8293 | msgid "found patch at byte %d\n" | |||
|
8294 | msgstr "" | |||
|
8295 | ||||
|
8296 | msgid "patch generated by hg export\n" | |||
|
8297 | msgstr "" | |||
|
8298 | ||||
|
8299 | #, python-format | |||
|
8300 | msgid "unable to find '%s' for patching\n" | |||
|
8301 | msgstr "" | |||
|
8302 | ||||
|
8303 | #, python-format | |||
|
8304 | msgid "patching file %s\n" | |||
|
8305 | msgstr "retter fil %s\n" | |||
|
8306 | ||||
|
8307 | #, python-format | |||
|
8308 | msgid "%d out of %d hunks FAILED -- saving rejects to file %s\n" | |||
|
8309 | msgstr "" | |||
|
8310 | ||||
|
8311 | #, python-format | |||
|
8312 | msgid "bad hunk #%d %s (%d %d %d %d)" | |||
|
8313 | msgstr "" | |||
|
8314 | ||||
|
8315 | #, python-format | |||
|
8316 | msgid "file %s already exists\n" | |||
|
8317 | msgstr "filen %s eksisterer allerede\n" | |||
|
8318 | ||||
|
8319 | #, python-format | |||
|
8320 | msgid "Hunk #%d succeeded at %d %s(offset %d %s).\n" | |||
|
8321 | msgstr "" | |||
|
8322 | ||||
|
8323 | #, python-format | |||
|
8324 | msgid "Hunk #%d FAILED at %d\n" | |||
|
8325 | msgstr "" | |||
|
8326 | ||||
|
8327 | #, python-format | |||
|
8328 | msgid "bad hunk #%d" | |||
|
8329 | msgstr "" | |||
|
8330 | ||||
|
8331 | #, python-format | |||
|
8332 | msgid "bad hunk #%d old text line %d" | |||
|
8333 | msgstr "" | |||
|
8334 | ||||
|
8335 | msgid "could not extract binary patch" | |||
|
8336 | msgstr "" | |||
|
8337 | ||||
|
8338 | #, python-format | |||
|
8339 | msgid "binary patch is %d bytes, not %d" | |||
|
8340 | msgstr "" | |||
|
8341 | ||||
|
8342 | #, python-format | |||
|
8343 | msgid "unable to strip away %d dirs from %s" | |||
|
8344 | msgstr "" | |||
|
8345 | ||||
|
8346 | msgid "undefined source and destination files" | |||
|
8347 | msgstr "" | |||
|
8348 | ||||
|
8349 | #, python-format | |||
|
8350 | msgid "malformed patch %s %s" | |||
|
8351 | msgstr "" | |||
|
8352 | ||||
|
8353 | #, python-format | |||
|
8354 | msgid "unsupported parser state: %s" | |||
|
8355 | msgstr "" | |||
|
8356 | ||||
|
8357 | #, python-format | |||
|
8358 | msgid "patch command failed: %s" | |||
|
8359 | msgstr "" | |||
|
8360 | ||||
|
8361 | #, python-format | |||
|
8362 | msgid "no valid hunks found; trying with %r instead\n" | |||
|
8363 | msgstr "" | |||
|
8364 | ||||
|
8365 | #, python-format | |||
|
8366 | msgid "saving bundle to %s\n" | |||
|
8367 | msgstr "" | |||
|
8368 | ||||
|
8369 | msgid "adding branch\n" | |||
|
8370 | msgstr "tilføjer gren\n" | |||
|
8371 | ||||
|
8372 | #, python-format | |||
|
8373 | msgid "cannot %s; remote repository does not support the %r capability" | |||
|
8374 | msgstr "" | |||
|
8375 | ||||
|
8376 | #, python-format | |||
|
8377 | msgid "unknown compression type %r" | |||
|
8378 | msgstr "" | |||
|
8379 | ||||
|
8380 | #, python-format | |||
|
8381 | msgid "index %s unknown flags %#04x for format v0" | |||
|
8382 | msgstr "" | |||
|
8383 | ||||
|
8384 | #, python-format | |||
|
8385 | msgid "index %s unknown flags %#04x for revlogng" | |||
|
8386 | msgstr "" | |||
|
8387 | ||||
|
8388 | #, python-format | |||
|
8389 | msgid "index %s unknown format %d" | |||
|
8390 | msgstr "" | |||
|
8391 | ||||
|
8392 | msgid "no node" | |||
|
8393 | msgstr "" | |||
|
8394 | ||||
|
8395 | msgid "ambiguous identifier" | |||
|
8396 | msgstr "" | |||
|
8397 | ||||
|
8398 | msgid "no match found" | |||
|
8399 | msgstr "" | |||
|
8400 | ||||
|
8401 | #, python-format | |||
|
8402 | msgid "incompatible revision flag %x" | |||
|
8403 | msgstr "" | |||
|
8404 | ||||
|
8405 | #, python-format | |||
|
8406 | msgid "%s not found in the transaction" | |||
|
8407 | msgstr "" | |||
|
8408 | ||||
|
8409 | msgid "unknown base" | |||
|
8410 | msgstr "" | |||
|
8411 | ||||
|
8412 | msgid "consistency error adding group" | |||
|
8413 | msgstr "" | |||
|
8414 | ||||
|
8415 | #, python-format | |||
|
8416 | msgid "%s looks like a binary file." | |||
|
8417 | msgstr "" | |||
|
8418 | ||||
|
8419 | msgid "can only specify two labels." | |||
|
8420 | msgstr "" | |||
|
8421 | ||||
|
8422 | msgid "warning: conflicts during merge.\n" | |||
|
8423 | msgstr "" | |||
|
8424 | ||||
|
8425 | #, python-format | |||
|
8426 | msgid "couldn't parse location %s" | |||
|
8427 | msgstr "" | |||
|
8428 | ||||
|
8429 | msgid "could not create remote repo" | |||
|
8430 | msgstr "" | |||
|
8431 | ||||
|
8432 | msgid "remote: " | |||
|
8433 | msgstr "fjern: " | |||
|
8434 | ||||
|
8435 | msgid "no suitable response from remote hg" | |||
|
8436 | msgstr "" | |||
|
8437 | ||||
|
8438 | #, python-format | |||
|
8439 | msgid "push refused: %s" | |||
|
8440 | msgstr "" | |||
|
8441 | ||||
|
8442 | msgid "unsynced changes" | |||
|
8443 | msgstr "" | |||
|
8444 | ||||
|
8445 | msgid "cannot lock static-http repository" | |||
|
8446 | msgstr "" | |||
|
8447 | ||||
|
8448 | msgid "cannot create new static-http repository" | |||
|
8449 | msgstr "" | |||
|
8450 | ||||
|
8451 | #, python-format | |||
|
8452 | msgid "invalid entry in fncache, line %s" | |||
|
8453 | msgstr "" | |||
|
8454 | ||||
|
8455 | msgid "scanning\n" | |||
|
8456 | msgstr "" | |||
|
8457 | ||||
|
8458 | #, python-format | |||
|
8459 | msgid "%d files, %d bytes to transfer\n" | |||
|
8460 | msgstr "%d filer, skal overføre %d bytes\n" | |||
|
8461 | ||||
|
8462 | #, python-format | |||
|
8463 | msgid "sending %s (%d bytes)\n" | |||
|
8464 | msgstr "" | |||
|
8465 | ||||
|
8466 | msgid "unmatched quotes" | |||
|
8467 | msgstr "" | |||
|
8468 | ||||
|
8469 | #, python-format | |||
|
8470 | msgid "style not found: %s" | |||
|
8471 | msgstr "" | |||
|
8472 | ||||
|
8473 | #, python-format | |||
|
8474 | msgid "%s:%s: parse error" | |||
|
8475 | msgstr "" | |||
|
8476 | ||||
|
8477 | #, python-format | |||
|
8478 | msgid "template file %s: %s" | |||
|
8479 | msgstr "" | |||
|
8480 | ||||
|
8481 | #, python-format | |||
|
8482 | msgid "Error expanding '%s%%%s'" | |||
|
8483 | msgstr "" | |||
|
8484 | ||||
|
8485 | msgid "transaction abort!\n" | |||
|
8486 | msgstr "" | |||
|
8487 | ||||
|
8488 | #, python-format | |||
|
8489 | msgid "failed to truncate %s\n" | |||
|
8490 | msgstr "" | |||
|
8491 | ||||
|
8492 | msgid "rollback completed\n" | |||
|
8493 | msgstr "" | |||
|
8494 | ||||
|
8495 | #, python-format | |||
|
8496 | msgid "Not trusting file %s from untrusted user %s, group %s\n" | |||
|
8497 | msgstr "" | |||
|
8498 | ||||
|
8499 | #, python-format | |||
|
8500 | msgid "" | |||
|
8501 | "Failed to parse %s\n" | |||
|
8502 | "%s" | |||
|
8503 | msgstr "" | |||
|
8504 | ||||
|
8505 | #, python-format | |||
|
8506 | msgid "Ignored: %s\n" | |||
|
8507 | msgstr "Ignoreret: %s\n" | |||
|
8508 | ||||
|
8509 | #, python-format | |||
|
8510 | msgid "unable to open %s: %s" | |||
|
8511 | msgstr "kunne ikke åbne %s: %s" | |||
|
8512 | ||||
|
8513 | #, python-format | |||
|
8514 | msgid "" | |||
|
8515 | "failed to parse %s\n" | |||
|
8516 | "%s" | |||
|
8517 | msgstr "" | |||
|
8518 | ||||
|
8519 | #, python-format | |||
|
8520 | msgid "" | |||
|
8521 | "Error in configuration section [%s] parameter '%s':\n" | |||
|
8522 | "%s" | |||
|
8523 | msgstr "" | |||
|
8524 | ||||
|
8525 | #, python-format | |||
|
8526 | msgid "Ignoring untrusted configuration option %s.%s = %s\n" | |||
|
8527 | msgstr "" | |||
|
8528 | ||||
|
8529 | #, python-format | |||
|
8530 | msgid "" | |||
|
8531 | "Error in configuration section [%s]:\n" | |||
|
8532 | "%s" | |||
|
8533 | msgstr "" | |||
|
8534 | ||||
|
8535 | msgid "enter a commit username:" | |||
|
8536 | msgstr "angiv et commit brugernavn:" | |||
|
8537 | ||||
|
8538 | #, python-format | |||
|
8539 | msgid "No username found, using '%s' instead\n" | |||
|
8540 | msgstr "Fandt intet brugernavn, bruger '%s' istedet\n" | |||
|
8541 | ||||
|
8542 | msgid "Please specify a username." | |||
|
8543 | msgstr "Angiv venligst et brugernavn." | |||
|
8544 | ||||
|
8545 | #, python-format | |||
|
8546 | msgid "username %s contains a newline\n" | |||
|
8547 | msgstr "brugernavn %s indeholder et linieskift\n" | |||
|
8548 | ||||
|
8549 | msgid "unrecognized response\n" | |||
|
8550 | msgstr "" | |||
|
8551 | ||||
|
8552 | msgid "response expected" | |||
|
8553 | msgstr "" | |||
|
8554 | ||||
|
8555 | msgid "password: " | |||
|
8556 | msgstr "kodeord: " | |||
|
8557 | ||||
|
8558 | msgid "edit failed" | |||
|
8559 | msgstr "redigering fejlede" | |||
|
8560 | ||||
|
8561 | msgid "http authorization required" | |||
|
8562 | msgstr "" | |||
|
8563 | ||||
|
8564 | msgid "http authorization required\n" | |||
|
8565 | msgstr "" | |||
|
8566 | ||||
|
8567 | #, python-format | |||
|
8568 | msgid "realm: %s\n" | |||
|
8569 | msgstr "" | |||
|
8570 | ||||
|
8571 | #, python-format | |||
|
8572 | msgid "user: %s\n" | |||
|
8573 | msgstr "bruger: %s\n" | |||
|
8574 | ||||
|
8575 | msgid "user:" | |||
|
8576 | msgstr "bruger:" | |||
|
8577 | ||||
|
8578 | #, python-format | |||
|
8579 | msgid "proxying through http://%s:%s\n" | |||
|
8580 | msgstr "" | |||
|
8581 | ||||
|
8582 | #, python-format | |||
|
8583 | msgid "http auth: user %s, password %s\n" | |||
|
8584 | msgstr "http godkendelse: bruger %s, kodeord %s\n" | |||
|
8585 | ||||
|
8586 | #, python-format | |||
|
8587 | msgid "%s, please check your locale settings" | |||
|
8588 | msgstr "%s, tjek venligst dine sprogindstillinger" | |||
|
8589 | ||||
|
8590 | #, python-format | |||
|
8591 | msgid "command '%s' failed: %s" | |||
|
8592 | msgstr "kommandoen '%s' fejlede: %s" | |||
|
8593 | ||||
|
8594 | #, python-format | |||
|
8595 | msgid "path contains illegal component: %s" | |||
|
8596 | msgstr "stien indeholder ugyldig komponent: %s" | |||
|
8597 | ||||
|
8598 | #, python-format | |||
|
8599 | msgid "path %r is inside repo %r" | |||
|
8600 | msgstr "stien %r er inde i repo %r" | |||
|
8601 | ||||
|
8602 | #, python-format | |||
|
8603 | msgid "path %r traverses symbolic link %r" | |||
|
8604 | msgstr "stien %r følger symbolsk link %r" | |||
|
8605 | ||||
|
8606 | msgid "Hardlinks not supported" | |||
|
8607 | msgstr "Hardlinks er ikke supporteret" | |||
|
8608 | ||||
|
8609 | msgid "user name not available - set USERNAME environment variable" | |||
|
8610 | msgstr "der er ikke noget brugernavn - sæt USERNAME miljøvariabel" | |||
|
8611 | ||||
|
8612 | #, python-format | |||
|
8613 | msgid "exited with status %d" | |||
|
8614 | msgstr "afsluttede med status %d" | |||
|
8615 | ||||
|
8616 | #, python-format | |||
|
8617 | msgid "killed by signal %d" | |||
|
8618 | msgstr "dræbt af signal %d" | |||
|
8619 | ||||
|
8620 | #, python-format | |||
|
8621 | msgid "stopped by signal %d" | |||
|
8622 | msgstr "stoppet af signal %d" | |||
|
8623 | ||||
|
8624 | msgid "invalid exit code" | |||
|
8625 | msgstr "ugyldig returkode" | |||
|
8626 | ||||
|
8627 | #, python-format | |||
|
8628 | msgid "could not symlink to %r: %s" | |||
|
8629 | msgstr "kunne ikke lave et symbolsk link til %r: %s" | |||
|
8630 | ||||
|
8631 | #, python-format | |||
|
8632 | msgid "invalid date: %r " | |||
|
8633 | msgstr "ugyldig dato: %r " | |||
|
8634 | ||||
|
8635 | #, python-format | |||
|
8636 | msgid "date exceeds 32 bits: %d" | |||
|
8637 | msgstr "dato overskrider 32 bit: %d" | |||
|
8638 | ||||
|
8639 | #, python-format | |||
|
8640 | msgid "impossible time zone offset: %d" | |||
|
8641 | msgstr "umuligt tidszone: %d" | |||
|
8642 | ||||
|
8643 | #, python-format | |||
|
8644 | msgid "invalid day spec: %s" | |||
|
8645 | msgstr "" | |||
|
8646 | ||||
|
8647 | #, python-format | |||
|
8648 | msgid "%.0f GB" | |||
|
8649 | msgstr "%.0f GB" | |||
|
8650 | ||||
|
8651 | #, python-format | |||
|
8652 | msgid "%.1f GB" | |||
|
8653 | msgstr "%.1f GB" | |||
|
8654 | ||||
|
8655 | #, python-format | |||
|
8656 | msgid "%.2f GB" | |||
|
8657 | msgstr "%.2f GB" | |||
|
8658 | ||||
|
8659 | #, python-format | |||
|
8660 | msgid "%.0f MB" | |||
|
8661 | msgstr "%.0f MB" | |||
|
8662 | ||||
|
8663 | #, python-format | |||
|
8664 | msgid "%.1f MB" | |||
|
8665 | msgstr "%.1f MB" | |||
|
8666 | ||||
|
8667 | #, python-format | |||
|
8668 | msgid "%.2f MB" | |||
|
8669 | msgstr "%.2f MB" | |||
|
8670 | ||||
|
8671 | #, python-format | |||
|
8672 | msgid "%.0f KB" | |||
|
8673 | msgstr "%.0f KB" | |||
|
8674 | ||||
|
8675 | #, python-format | |||
|
8676 | msgid "%.1f KB" | |||
|
8677 | msgstr "%.1f KB" | |||
|
8678 | ||||
|
8679 | #, python-format | |||
|
8680 | msgid "%.2f KB" | |||
|
8681 | msgstr "%.2f KB" | |||
|
8682 | ||||
|
8683 | #, python-format | |||
|
8684 | msgid "%.0f bytes" | |||
|
8685 | msgstr "%.0f byte" | |||
|
8686 | ||||
|
8687 | msgid "cannot verify bundle or remote repos" | |||
|
8688 | msgstr "" | |||
|
8689 | ||||
|
8690 | msgid "interrupted" | |||
|
8691 | msgstr "afbrudt" | |||
|
8692 | ||||
|
8693 | #, python-format | |||
|
8694 | msgid "empty or missing %s" | |||
|
8695 | msgstr "tom eller mangler %s" | |||
|
8696 | ||||
|
8697 | #, python-format | |||
|
8698 | msgid "data length off by %d bytes" | |||
|
8699 | msgstr "" | |||
|
8700 | ||||
|
8701 | #, python-format | |||
|
8702 | msgid "index contains %d extra bytes" | |||
|
8703 | msgstr "indekset indeholder %d ekstra bytes" | |||
|
8704 | ||||
|
8705 | #, python-format | |||
|
8706 | msgid "warning: `%s' uses revlog format 1" | |||
|
8707 | msgstr "advarsel: '%s' bruger revlog format 1" | |||
|
8708 | ||||
|
8709 | #, python-format | |||
|
8710 | msgid "warning: `%s' uses revlog format 0" | |||
|
8711 | msgstr "advarsel: '%s' bruger revlog format 0" | |||
|
8712 | ||||
|
8713 | #, python-format | |||
|
8714 | msgid "rev %d point to %s changeset %d" | |||
|
8715 | msgstr "" | |||
|
8716 | ||||
|
8717 | #, python-format | |||
|
8718 | msgid " (expected %s)" | |||
|
8719 | msgstr " (forventede %s)" | |||
|
8720 | ||||
|
8721 | #, python-format | |||
|
8722 | msgid "unknown parent 1 %s of %s" | |||
|
8723 | msgstr "ukendt forældre 1 %s til %s" | |||
|
8724 | ||||
|
8725 | #, python-format | |||
|
8726 | msgid "unknown parent 2 %s of %s" | |||
|
8727 | msgstr "ukendt forældre 2 %s til %s" | |||
|
8728 | ||||
|
8729 | #, python-format | |||
|
8730 | msgid "checking parents of %s" | |||
|
8731 | msgstr "tjekkre forældrene til %s" | |||
|
8732 | ||||
|
8733 | #, python-format | |||
|
8734 | msgid "duplicate revision %d (%d)" | |||
|
8735 | msgstr "duplikeret revision %d (%d)" | |||
|
8736 | ||||
|
8737 | #, python-format | |||
|
8738 | msgid "repository uses revlog format %d\n" | |||
|
8739 | msgstr "arkivet bruger revlog format %d\n" | |||
|
8740 | ||||
|
8741 | msgid "checking changesets\n" | |||
|
8742 | msgstr "tjekker ændringer\n" | |||
|
8743 | ||||
|
8744 | #, python-format | |||
|
8745 | msgid "unpacking changeset %s" | |||
|
8746 | msgstr "udpakker ændring %s" | |||
|
8747 | ||||
|
8748 | msgid "checking manifests\n" | |||
|
8749 | msgstr "" | |||
|
8750 | ||||
|
8751 | msgid "file without name in manifest" | |||
|
8752 | msgstr "" | |||
|
8753 | ||||
|
8754 | #, python-format | |||
|
8755 | msgid "reading manifest delta %s" | |||
|
8756 | msgstr "" | |||
|
8757 | ||||
|
8758 | msgid "crosschecking files in changesets and manifests\n" | |||
|
8759 | msgstr "" | |||
|
8760 | ||||
|
8761 | #, python-format | |||
|
8762 | msgid "changeset refers to unknown manifest %s" | |||
|
8763 | msgstr "" | |||
|
8764 | ||||
|
8765 | msgid "in changeset but not in manifest" | |||
|
8766 | msgstr "" | |||
|
8767 | ||||
|
8768 | msgid "in manifest but not in changeset" | |||
|
8769 | msgstr "" | |||
|
8770 | ||||
|
8771 | msgid "checking files\n" | |||
|
8772 | msgstr "tjekker filer\n" | |||
|
8773 | ||||
|
8774 | #, python-format | |||
|
8775 | msgid "cannot decode filename '%s'" | |||
|
8776 | msgstr "kan ikke dekode filnavn '%s'" | |||
|
8777 | ||||
|
8778 | msgid "missing revlog!" | |||
|
8779 | msgstr "manglende revlog!" | |||
|
8780 | ||||
|
8781 | #, python-format | |||
|
8782 | msgid "%s not in manifests" | |||
|
8783 | msgstr "" | |||
|
8784 | ||||
|
8785 | #, python-format | |||
|
8786 | msgid "unpacked size is %s, %s expected" | |||
|
8787 | msgstr "udpakket størrelse er %s, forventede %s" | |||
|
8788 | ||||
|
8789 | #, python-format | |||
|
8790 | msgid "unpacking %s" | |||
|
8791 | msgstr "udpakker %s" | |||
|
8792 | ||||
|
8793 | #, python-format | |||
|
8794 | msgid "empty or missing copy source revlog %s:%s" | |||
|
8795 | msgstr "" | |||
|
8796 | ||||
|
8797 | #, python-format | |||
|
8798 | msgid "warning: %s@%s: copy source revision is nullid %s:%s" | |||
|
8799 | msgstr "" | |||
|
8800 | ||||
|
8801 | #, python-format | |||
|
8802 | msgid "checking rename of %s" | |||
|
8803 | msgstr "tjekker omdøbning af %s" | |||
|
8804 | ||||
|
8805 | #, python-format | |||
|
8806 | msgid "%s in manifests not found" | |||
|
8807 | msgstr "" | |||
|
8808 | ||||
|
8809 | #, python-format | |||
|
8810 | msgid "warning: orphan revlog '%s'" | |||
|
8811 | msgstr "advarsel: forældreløs revlog '%s'" | |||
|
8812 | ||||
|
8813 | #, python-format | |||
|
8814 | msgid "%d files, %d changesets, %d total revisions\n" | |||
|
8815 | msgstr "%d filer, %d ændringer, ialt %d revisioner\n" | |||
|
8816 | ||||
|
8817 | #, python-format | |||
|
8818 | msgid "%d warnings encountered!\n" | |||
|
8819 | msgstr "mødte %d advarsler!\n" | |||
|
8820 | ||||
|
8821 | #, python-format | |||
|
8822 | msgid "%d integrity errors encountered!\n" | |||
|
8823 | msgstr "fandt %d integritetsfejl!\n" | |||
|
8824 | ||||
|
8825 | #, python-format | |||
|
8826 | msgid "(first damaged changeset appears to be %d)\n" | |||
|
8827 | msgstr "(første beskadigede ændring er tilsyneladende %d)\n" |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100755 |
|
NO CONTENT: new file 100755 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100755 |
|
NO CONTENT: new file 100755 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100755 |
|
NO CONTENT: new file 100755 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100755 |
|
NO CONTENT: new file 100755 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100755 |
|
NO CONTENT: new file 100755 | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 | ||
The requested commit or file is too big and content was truncated. Show full diff |
@@ -27,6 +27,16 b' Output/Mercurial-*.exe' | |||||
27 | .DS_Store |
|
27 | .DS_Store | |
28 | tags |
|
28 | tags | |
29 | cscope.* |
|
29 | cscope.* | |
|
30 | i18n/hg.pot | |||
|
31 | locale/*/LC_MESSAGES/hg.mo | |||
|
32 | ||||
|
33 | # files installed with a local --pure build | |||
|
34 | mercurial/base85.py | |||
|
35 | mercurial/bdiff.py | |||
|
36 | mercurial/diffhelpers.py | |||
|
37 | mercurial/mpatch.py | |||
|
38 | mercurial/osutil.py | |||
|
39 | mercurial/parsers.py | |||
30 |
|
40 | |||
31 | syntax: regexp |
|
41 | syntax: regexp | |
32 | ^\.pc/ |
|
42 | ^\.pc/ |
@@ -1,6 +1,7 b'' | |||||
1 | PREFIX=/usr/local |
|
1 | PREFIX=/usr/local | |
2 | export PREFIX |
|
2 | export PREFIX | |
3 | PYTHON=python |
|
3 | PYTHON=python | |
|
4 | PURE= | |||
4 |
|
5 | |||
5 | help: |
|
6 | help: | |
6 | @echo 'Commonly used make targets:' |
|
7 | @echo 'Commonly used make targets:' | |
@@ -13,6 +14,7 b' help:' | |||||
13 | @echo ' dist - run all tests and create a source tarball in dist/' |
|
14 | @echo ' dist - run all tests and create a source tarball in dist/' | |
14 | @echo ' clean - remove files created by other targets' |
|
15 | @echo ' clean - remove files created by other targets' | |
15 | @echo ' (except installed files or dist source tarball)' |
|
16 | @echo ' (except installed files or dist source tarball)' | |
|
17 | @echo ' update-pot - update i18n/hg.pot' | |||
16 | @echo |
|
18 | @echo | |
17 | @echo 'Example for a system-wide installation under /usr/local:' |
|
19 | @echo 'Example for a system-wide installation under /usr/local:' | |
18 | @echo ' make all && su -c "make install" && hg version' |
|
20 | @echo ' make all && su -c "make install" && hg version' | |
@@ -23,12 +25,11 b' help:' | |||||
23 | all: build doc |
|
25 | all: build doc | |
24 |
|
26 | |||
25 | local: |
|
27 | local: | |
26 | $(PYTHON) setup.py build_ext -i |
|
28 | $(PYTHON) setup.py $(PURE) build_py -c -d . build_ext -i build_mo | |
27 | $(PYTHON) setup.py build_py -c -d . |
|
|||
28 | $(PYTHON) hg version |
|
29 | $(PYTHON) hg version | |
29 |
|
30 | |||
30 | build: |
|
31 | build: | |
31 | $(PYTHON) setup.py build |
|
32 | $(PYTHON) setup.py $(PURE) build | |
32 |
|
33 | |||
33 | doc: |
|
34 | doc: | |
34 | $(MAKE) -C doc |
|
35 | $(MAKE) -C doc | |
@@ -37,12 +38,13 b' clean:' | |||||
37 | -$(PYTHON) setup.py clean --all # ignore errors of this command |
|
38 | -$(PYTHON) setup.py clean --all # ignore errors of this command | |
38 | find . -name '*.py[cdo]' -exec rm -f '{}' ';' |
|
39 | find . -name '*.py[cdo]' -exec rm -f '{}' ';' | |
39 | rm -f MANIFEST mercurial/__version__.py mercurial/*.so tests/*.err |
|
40 | rm -f MANIFEST mercurial/__version__.py mercurial/*.so tests/*.err | |
|
41 | rm -rf locale | |||
40 | $(MAKE) -C doc clean |
|
42 | $(MAKE) -C doc clean | |
41 |
|
43 | |||
42 | install: install-bin install-doc |
|
44 | install: install-bin install-doc | |
43 |
|
45 | |||
44 | install-bin: build |
|
46 | install-bin: build | |
45 | $(PYTHON) setup.py install --prefix="$(PREFIX)" --force |
|
47 | $(PYTHON) setup.py $(PURE) install --prefix="$(PREFIX)" --force | |
46 |
|
48 | |||
47 | install-doc: doc |
|
49 | install-doc: doc | |
48 | cd doc && $(MAKE) $(MFLAGS) install |
|
50 | cd doc && $(MAKE) $(MFLAGS) install | |
@@ -50,7 +52,7 b' install-doc: doc' | |||||
50 | install-home: install-home-bin install-home-doc |
|
52 | install-home: install-home-bin install-home-doc | |
51 |
|
53 | |||
52 | install-home-bin: build |
|
54 | install-home-bin: build | |
53 | $(PYTHON) setup.py install --home="$(HOME)" --force |
|
55 | $(PYTHON) setup.py $(PURE) install --home="$(HOME)" --force | |
54 |
|
56 | |||
55 | install-home-doc: doc |
|
57 | install-home-doc: doc | |
56 | cd doc && $(MAKE) $(MFLAGS) PREFIX="$(HOME)" install |
|
58 | cd doc && $(MAKE) $(MFLAGS) PREFIX="$(HOME)" install | |
@@ -74,6 +76,20 b' tests:' | |||||
74 | test-%: |
|
76 | test-%: | |
75 | cd tests && $(PYTHON) run-tests.py $(TESTFLAGS) $@ |
|
77 | cd tests && $(PYTHON) run-tests.py $(TESTFLAGS) $@ | |
76 |
|
78 | |||
|
79 | update-pot: | |||
|
80 | mkdir -p i18n | |||
|
81 | pygettext -d hg -p i18n --docstrings \ | |||
|
82 | mercurial/commands.py hgext/*.py hgext/*/__init__.py | |||
|
83 | # All strings marked for translation in Mercurial contain | |||
|
84 | # ASCII characters only. But some files contain string | |||
|
85 | # literals like this '\037\213'. xgettext thinks it has to | |||
|
86 | # parse these them even though they are not marked for | |||
|
87 | # translation. Extracting with an explicit encoding of | |||
|
88 | # ISO-8859-1 will make xgettext "parse" and ignore them. | |||
|
89 | find mercurial hgext doc -name '*.py' | xargs \ | |||
|
90 | xgettext --from-code ISO-8859-1 --join --sort-by-file \ | |||
|
91 | -d hg -p i18n -o hg.pot | |||
77 |
|
92 | |||
78 | .PHONY: help all local build doc clean install install-bin install-doc \ |
|
93 | .PHONY: help all local build doc clean install install-bin install-doc \ | |
79 | install-home install-home-bin install-home-doc dist dist-notests tests |
|
94 | install-home install-home-bin install-home-doc dist dist-notests tests \ | |
|
95 | update-pot |
@@ -265,6 +265,7 b' proc readcommit {id} {' | |||||
265 |
|
265 | |||
266 | proc parsecommit {id contents listed olds} { |
|
266 | proc parsecommit {id contents listed olds} { | |
267 | global commitinfo children nchildren parents nparents cdate ncleft |
|
267 | global commitinfo children nchildren parents nparents cdate ncleft | |
|
268 | global firstparents | |||
268 |
|
269 | |||
269 | set inhdr 1 |
|
270 | set inhdr 1 | |
270 | set comment {} |
|
271 | set comment {} | |
@@ -338,6 +339,33 b' proc parsecommit {id contents listed old' | |||||
338 | } |
|
339 | } | |
339 | set commitinfo($id) [list $headline $auname $audate \ |
|
340 | set commitinfo($id) [list $headline $auname $audate \ | |
340 | $comname $comdate $comment $rev $branch] |
|
341 | $comname $comdate $comment $rev $branch] | |
|
342 | ||||
|
343 | if {[info exists firstparents]} { | |||
|
344 | set i [lsearch $firstparents $id] | |||
|
345 | if {$i != -1} { | |||
|
346 | # remove the parent from firstparents, possible building | |||
|
347 | # an empty list | |||
|
348 | set firstparents [concat \ | |||
|
349 | [lrange $firstparents 0 [expr $i - 1]] \ | |||
|
350 | [lrange $firstparents [expr $i + 1] end]] | |||
|
351 | if {$firstparents eq {}} { | |||
|
352 | # we have found all parents of the first changeset | |||
|
353 | # which means that we can safely select the first line | |||
|
354 | after idle { | |||
|
355 | selectline 0 0 | |||
|
356 | } | |||
|
357 | } | |||
|
358 | } | |||
|
359 | } else { | |||
|
360 | # this is the first changeset, save the parents | |||
|
361 | set firstparents $olds | |||
|
362 | if {$firstparents eq {}} { | |||
|
363 | # a repository with a single changeset | |||
|
364 | after idle { | |||
|
365 | selectline 0 0 | |||
|
366 | } | |||
|
367 | } | |||
|
368 | } | |||
341 | } |
|
369 | } | |
342 |
|
370 | |||
343 | proc readrefs {} { |
|
371 | proc readrefs {} { | |
@@ -439,7 +467,8 b' proc makewindow {} {' | |||||
439 | global entries sha1entry sha1string sha1but |
|
467 | global entries sha1entry sha1string sha1but | |
440 | global maincursor textcursor curtextcursor |
|
468 | global maincursor textcursor curtextcursor | |
441 | global rowctxmenu gaudydiff mergemax |
|
469 | global rowctxmenu gaudydiff mergemax | |
442 | global hgvdiff |
|
470 | global hgvdiff bgcolor fgcolor diffremcolor diffaddcolor diffmerge1color | |
|
471 | global diffmerge2color hunksepcolor | |||
443 |
|
472 | |||
444 | menu .bar |
|
473 | menu .bar | |
445 | .bar add cascade -label "File" -menu .bar.file |
|
474 | .bar add cascade -label "File" -menu .bar.file | |
@@ -478,16 +507,16 b' proc makewindow {} {' | |||||
478 | .ctop add .ctop.top |
|
507 | .ctop add .ctop.top | |
479 | set canv .ctop.top.clist.canv |
|
508 | set canv .ctop.top.clist.canv | |
480 | canvas $canv -height $geometry(canvh) -width $geometry(canv1) \ |
|
509 | canvas $canv -height $geometry(canvh) -width $geometry(canv1) \ | |
481 |
-bg |
|
510 | -bg $bgcolor -bd 0 \ | |
482 | -yscrollincr $linespc -yscrollcommand "$cscroll set" -selectbackground grey |
|
511 | -yscrollincr $linespc -yscrollcommand "$cscroll set" -selectbackground grey | |
483 | .ctop.top.clist add $canv |
|
512 | .ctop.top.clist add $canv | |
484 | set canv2 .ctop.top.clist.canv2 |
|
513 | set canv2 .ctop.top.clist.canv2 | |
485 | canvas $canv2 -height $geometry(canvh) -width $geometry(canv2) \ |
|
514 | canvas $canv2 -height $geometry(canvh) -width $geometry(canv2) \ | |
486 |
-bg |
|
515 | -bg $bgcolor -bd 0 -yscrollincr $linespc -selectbackground grey | |
487 | .ctop.top.clist add $canv2 |
|
516 | .ctop.top.clist add $canv2 | |
488 | set canv3 .ctop.top.clist.canv3 |
|
517 | set canv3 .ctop.top.clist.canv3 | |
489 | canvas $canv3 -height $geometry(canvh) -width $geometry(canv3) \ |
|
518 | canvas $canv3 -height $geometry(canvh) -width $geometry(canv3) \ | |
490 |
-bg |
|
519 | -bg $bgcolor -bd 0 -yscrollincr $linespc -selectbackground grey | |
491 | .ctop.top.clist add $canv3 |
|
520 | .ctop.top.clist add $canv3 | |
492 | bind .ctop.top.clist <Configure> {resizeclistpanes %W %w} |
|
521 | bind .ctop.top.clist <Configure> {resizeclistpanes %W %w} | |
493 |
|
522 | |||
@@ -547,7 +576,7 b' proc makewindow {} {' | |||||
547 | .ctop add .ctop.cdet |
|
576 | .ctop add .ctop.cdet | |
548 | frame .ctop.cdet.left |
|
577 | frame .ctop.cdet.left | |
549 | set ctext .ctop.cdet.left.ctext |
|
578 | set ctext .ctop.cdet.left.ctext | |
550 |
text $ctext - |
|
579 | text $ctext -fg $fgcolor -bg $bgcolor -state disabled -font $textfont \ | |
551 | -width $geometry(ctextw) -height $geometry(ctexth) \ |
|
580 | -width $geometry(ctextw) -height $geometry(ctexth) \ | |
552 | -yscrollcommand ".ctop.cdet.left.sb set" \ |
|
581 | -yscrollcommand ".ctop.cdet.left.sb set" \ | |
553 | -xscrollcommand ".ctop.cdet.left.hb set" -wrap none |
|
582 | -xscrollcommand ".ctop.cdet.left.hb set" -wrap none | |
@@ -564,11 +593,16 b' proc makewindow {} {' | |||||
564 | $ctext tag conf d0 -back "#ff8080" |
|
593 | $ctext tag conf d0 -back "#ff8080" | |
565 | $ctext tag conf d1 -back green |
|
594 | $ctext tag conf d1 -back green | |
566 | } else { |
|
595 | } else { | |
567 |
$ctext tag conf hunksep -fore |
|
596 | $ctext tag conf hunksep -fore $hunksepcolor | |
568 |
$ctext tag conf d0 -fore |
|
597 | $ctext tag conf d0 -fore $diffremcolor | |
569 |
$ctext tag conf d1 -fore |
|
598 | $ctext tag conf d1 -fore $diffaddcolor | |
570 | $ctext tag conf m0 -fore red |
|
599 | ||
571 | $ctext tag conf m1 -fore blue |
|
600 | # The mX colours seem to be used in merge changesets, where m0 | |
|
601 | # is first parent, m1 is second parent and so on. Git can have | |||
|
602 | # several parents, Hg cannot, so I think the m2..mmax would be | |||
|
603 | # unused. | |||
|
604 | $ctext tag conf m0 -fore $diffmerge1color | |||
|
605 | $ctext tag conf m1 -fore $diffmerge2color | |||
572 | $ctext tag conf m2 -fore green |
|
606 | $ctext tag conf m2 -fore green | |
573 | $ctext tag conf m3 -fore purple |
|
607 | $ctext tag conf m3 -fore purple | |
574 | $ctext tag conf m4 -fore brown |
|
608 | $ctext tag conf m4 -fore brown | |
@@ -581,7 +615,8 b' proc makewindow {} {' | |||||
581 |
|
615 | |||
582 | frame .ctop.cdet.right |
|
616 | frame .ctop.cdet.right | |
583 | set cflist .ctop.cdet.right.cfiles |
|
617 | set cflist .ctop.cdet.right.cfiles | |
584 | listbox $cflist -bg white -selectmode extended -width $geometry(cflistw) \ |
|
618 | listbox $cflist -fg $fgcolor -bg $bgcolor \ | |
|
619 | -selectmode extended -width $geometry(cflistw) \ | |||
585 | -yscrollcommand ".ctop.cdet.right.sb set" |
|
620 | -yscrollcommand ".ctop.cdet.right.sb set" | |
586 | scrollbar .ctop.cdet.right.sb -command "$cflist yview" |
|
621 | scrollbar .ctop.cdet.right.sb -command "$cflist yview" | |
587 | pack .ctop.cdet.right.sb -side right -fill y |
|
622 | pack .ctop.cdet.right.sb -side right -fill y | |
@@ -679,7 +714,9 b' proc click {w} {' | |||||
679 | proc savestuff {w} { |
|
714 | proc savestuff {w} { | |
680 | global canv canv2 canv3 ctext cflist mainfont textfont |
|
715 | global canv canv2 canv3 ctext cflist mainfont textfont | |
681 | global stuffsaved findmergefiles gaudydiff maxgraphpct |
|
716 | global stuffsaved findmergefiles gaudydiff maxgraphpct | |
682 | global maxwidth authorcolors curidfont |
|
717 | global maxwidth authorcolors curidfont bgcolor fgcolor | |
|
718 | global diffremcolor diffaddcolor hunksepcolor | |||
|
719 | global diffmerge1color diffmerge2color | |||
683 |
|
720 | |||
684 | if {$stuffsaved} return |
|
721 | if {$stuffsaved} return | |
685 | if {![winfo viewable .]} return |
|
722 | if {![winfo viewable .]} return | |
@@ -721,6 +758,27 b' proc savestuff {w} {' | |||||
721 | puts $f "# the last entry will be reused." |
|
758 | puts $f "# the last entry will be reused." | |
722 | puts $f "#" |
|
759 | puts $f "#" | |
723 | puts $f "set authorcolors {$authorcolors}" |
|
760 | puts $f "set authorcolors {$authorcolors}" | |
|
761 | puts $f "#" | |||
|
762 | puts $f "# The background color in the text windows" | |||
|
763 | puts $f "set bgcolor $bgcolor" | |||
|
764 | puts $f "#" | |||
|
765 | puts $f "# The text color used in the diff and file list view" | |||
|
766 | puts $f "set fgcolor $fgcolor" | |||
|
767 | puts $f "#" | |||
|
768 | puts $f "# Color to display + lines in diffs" | |||
|
769 | puts $f "set diffaddcolor $diffaddcolor" | |||
|
770 | puts $f "#" | |||
|
771 | puts $f "# Color to display - lines in diffs" | |||
|
772 | puts $f "set diffremcolor $diffremcolor" | |||
|
773 | puts $f "#" | |||
|
774 | puts $f "# Merge diffs: Color to signal lines from first parent" | |||
|
775 | puts $f "set diffmerge1color $diffmerge1color" | |||
|
776 | puts $f "#" | |||
|
777 | puts $f "# Merge diffs: Color to signal lines from second parent" | |||
|
778 | puts $f "set diffmerge2color $diffmerge2color" | |||
|
779 | puts $f "#" | |||
|
780 | puts $f "# Hunkseparator (@@ -lineno,lines +lineno,lines @@) color" | |||
|
781 | puts $f "set hunksepcolor $hunksepcolor" | |||
724 | close $f |
|
782 | close $f | |
725 | file rename -force "~/.hgk-new" "~/.hgk" |
|
783 | file rename -force "~/.hgk-new" "~/.hgk" | |
726 | } |
|
784 | } | |
@@ -3891,6 +3949,16 b' set colors {green red blue magenta darkg' | |||||
3891 | set authorcolors { |
|
3949 | set authorcolors { | |
3892 | black blue deeppink mediumorchid blue burlywood4 goldenrod slateblue red2 navy dimgrey |
|
3950 | black blue deeppink mediumorchid blue burlywood4 goldenrod slateblue red2 navy dimgrey | |
3893 | } |
|
3951 | } | |
|
3952 | set bgcolor white | |||
|
3953 | ||||
|
3954 | # This color should probably be some system color (provided by tk), | |||
|
3955 | # but as the bgcolor has always been set to white, I choose to ignore | |||
|
3956 | set fgcolor black | |||
|
3957 | set diffaddcolor "#00a000" | |||
|
3958 | set diffremcolor red | |||
|
3959 | set diffmerge1color red | |||
|
3960 | set diffmerge2color blue | |||
|
3961 | set hunksepcolor blue | |||
3894 |
|
3962 | |||
3895 | catch {source ~/.hgk} |
|
3963 | catch {source ~/.hgk} | |
3896 |
|
3964 |
@@ -22,7 +22,6 b' from mercurial import demandimport; dema' | |||||
22 | #os.environ["HGENCODING"] = "UTF-8" |
|
22 | #os.environ["HGENCODING"] = "UTF-8" | |
23 |
|
23 | |||
24 | from mercurial.hgweb.hgwebdir_mod import hgwebdir |
|
24 | from mercurial.hgweb.hgwebdir_mod import hgwebdir | |
25 | from mercurial.hgweb.request import wsgiapplication |
|
|||
26 | from flup.server.fcgi import WSGIServer |
|
25 | from flup.server.fcgi import WSGIServer | |
27 |
|
26 | |||
28 | # The config file looks like this. You can have paths to individual |
|
27 | # The config file looks like this. You can have paths to individual | |
@@ -60,7 +59,4 b' from flup.server.fcgi import WSGIServer' | |||||
60 | # Alternatively you can pass a list of ('virtual/path', '/real/path') tuples |
|
59 | # Alternatively you can pass a list of ('virtual/path', '/real/path') tuples | |
61 | # or use a dictionary with entries like 'virtual/path': '/real/path' |
|
60 | # or use a dictionary with entries like 'virtual/path': '/real/path' | |
62 |
|
61 | |||
63 | def make_web_app(): |
|
62 | WSGIServer(hgwebdir('hgweb.config')).run() | |
64 | return hgwebdir("hgweb.config") |
|
|||
65 |
|
||||
66 | WSGIServer(wsgiapplication(make_web_app)).run() |
|
@@ -38,8 +38,9 b' p4merge.regappend=\\p4merge.exe' | |||||
38 | p4merge.gui=True |
|
38 | p4merge.gui=True | |
39 | p4merge.priority=-8 |
|
39 | p4merge.priority=-8 | |
40 |
|
40 | |||
41 |
tortoisemerge.args=/base: |
|
41 | tortoisemerge.args=/base:$base /mine:$local /theirs:$other /merged:$output | |
42 | tortoisemerge.regkey=Software\TortoiseSVN |
|
42 | tortoisemerge.regkey=Software\TortoiseSVN | |
|
43 | tortoisemerge.checkchanged=True | |||
43 | tortoisemerge.gui=True |
|
44 | tortoisemerge.gui=True | |
44 |
|
45 | |||
45 | ecmerge.args=$base $local $other --mode=merge3 --title0=base --title1=local --title2=other --to=$output |
|
46 | ecmerge.args=$base $local $other --mode=merge3 --title0=base --title1=local --title2=other --to=$output | |
@@ -49,3 +50,14 b' ecmerge.gui=True' | |||||
49 | filemerge.executable=/Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge |
|
50 | filemerge.executable=/Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge | |
50 | filemerge.args=-left $other -right $local -ancestor $base -merge $output |
|
51 | filemerge.args=-left $other -right $local -ancestor $base -merge $output | |
51 | filemerge.gui=True |
|
52 | filemerge.gui=True | |
|
53 | ||||
|
54 | beyondcompare3.args=$local $other $base $output /ro /lefttitle=local /centerfile=base /righttitle=other /automerge /reviewconflicts /solo | |||
|
55 | beyondcompare3.regkey=Software\Scooter Software\Beyond Compare 3 | |||
|
56 | beyondcompare3.regname=ExePath | |||
|
57 | beyondcompare3.gui=True | |||
|
58 | ||||
|
59 | winmerge.args=/e /u /dl local /dr other /wr $local $other $output | |||
|
60 | winmerge.regkey=Software\Thingamahoochie\WinMerge | |||
|
61 | winmerge.regname=Executable | |||
|
62 | winmerge.checkchanged=True | |||
|
63 | winmerge.gui=True |
@@ -2,7 +2,7 b'' | |||||
2 | # tcsh completion for Mercurial |
|
2 | # tcsh completion for Mercurial | |
3 | # |
|
3 | # | |
4 | # This file has been auto-generated by tcsh_completion_build.sh for |
|
4 | # This file has been auto-generated by tcsh_completion_build.sh for | |
5 |
# Mercurial Distributed SCM (version |
|
5 | # Mercurial Distributed SCM (version 1.1.2) | |
6 | # |
|
6 | # | |
7 | # Copyright (C) 2005 TK Soh. |
|
7 | # Copyright (C) 2005 TK Soh. | |
8 | # |
|
8 | # | |
@@ -19,24 +19,31 b' complete hg \\' | |||||
19 | -y --noninteractive \ |
|
19 | -y --noninteractive \ | |
20 | -q --quiet \ |
|
20 | -q --quiet \ | |
21 | -v --verbose \ |
|
21 | -v --verbose \ | |
|
22 | --config \ | |||
22 | --debug \ |
|
23 | --debug \ | |
23 | --debugger \ |
|
24 | --debugger \ | |
|
25 | --encoding \ | |||
|
26 | --encodingmode \ | |||
|
27 | --lsprof \ | |||
24 | --traceback \ |
|
28 | --traceback \ | |
25 | --time \ |
|
29 | --time \ | |
26 | --profile \ |
|
30 | --profile \ | |
27 | --version \ |
|
31 | --version \ | |
28 | -h --help)/' \ |
|
32 | -h --help)/' \ | |
29 |
'p/1/(add addremove annotate b |
|
33 | 'p/1/(add addremove annotate blame archive \ | |
30 | clone commit ci copy cp \ |
|
34 | backout bisect branch branches bundle \ | |
31 | debugancestor debugcheckstate debugconfig debugdata debugindex \ |
|
35 | cat clone commit ci copy \ | |
32 | debugindexdot debugrename debugstate debugwalk diff \ |
|
36 | cp debugancestor debugcheckstate debugcomplete debugdata \ | |
33 | export forget grep heads help \ |
|
37 | debugdate debugfsinfo debugindex debugindexdot debuginstall \ | |
34 | identify id import patch incoming \ |
|
38 | debugrawcommit rawcommit debugrebuildstate debugrename debugsetparents \ | |
35 | in init locate log history \ |
|
39 | debugstate debugwalk diff export grep \ | |
36 | manifest outgoing out parents paths \ |
|
40 | heads help identify id import \ | |
37 | pull push rawcommit recover remove \ |
|
41 | patch incoming in init locate \ | |
38 | rm rename mv revert root \ |
|
42 | log history manifest merge outgoing \ | |
39 | serve status tag tags tip \ |
|
43 | out parents paths pull push \ | |
40 | unbundle undo update up checkout \ |
|
44 | recover remove rm rename mv \ | |
41 | co verify version)/' |
|
45 | resolve revert rollback root serve \ | |
|
46 | showconfig debugconfig status st tag \ | |||
|
47 | tags tip unbundle update up \ | |||
|
48 | checkout co verify version)/' | |||
42 |
|
49 |
@@ -37,7 +37,7 b' tcsh_file=${1-tcsh_completion}' | |||||
37 |
|
37 | |||
38 | hg_commands=`hg --debug help | \ |
|
38 | hg_commands=`hg --debug help | \ | |
39 | sed -e '1,/^list of commands:/d' \ |
|
39 | sed -e '1,/^list of commands:/d' \ | |
40 |
-e '/^ |
|
40 | -e '/^enabled extensions:/,$d' \ | |
41 | -e '/^ [^ ]/!d; s/[,:]//g;' | \ |
|
41 | -e '/^ [^ ]/!d; s/[,:]//g;' | \ | |
42 | xargs -n5 | \ |
|
42 | xargs -n5 | \ | |
43 | sed -e '$!s/$/ \\\\/g; 2,$s/^ */ /g'` |
|
43 | sed -e '$!s/$/ \\\\/g; 2,$s/^ */ /g'` |
@@ -5,6 +5,13 b'' | |||||
5 |
|
5 | |||
6 | [ui] |
|
6 | [ui] | |
7 | editor = notepad |
|
7 | editor = notepad | |
|
8 | ; show changed files and be a bit more verbose if True | |||
|
9 | ; verbose = True | |||
|
10 | ||||
|
11 | ; username data to appear in commits | |||
|
12 | ; it usually takes the form: Joe User <joe.user@host.com> | |||
|
13 | ; username = Joe User <j.user@example.com> | |||
|
14 | ||||
8 |
|
15 | |||
9 | ; By default, we try to encode and decode all files that do not |
|
16 | ; By default, we try to encode and decode all files that do not | |
10 | ; contain ASCII NUL characters. What this means is that we try to set |
|
17 | ; contain ASCII NUL characters. What this means is that we try to set | |
@@ -37,5 +44,10 b' hgext.win32text =' | |||||
37 |
|
44 | |||
38 | ; Alternatively, you can explicitly specify each file extension that |
|
45 | ; Alternatively, you can explicitly specify each file extension that | |
39 | ; you want decoded (any you omit will be left untouched), like this: |
|
46 | ; you want decoded (any you omit will be left untouched), like this: | |
|
47 | ; **.txt = dumbdecode: | |||
|
48 | [hgk] | |||
|
49 | ; Replace the following with your path to hgk, uncomment it and | |||
|
50 | ; install ActiveTcl (or another win32 port) | |||
|
51 | ; path="C:\Program Files\Mercurial\Contrib\hgk.tcl" | |||
40 |
|
52 | |||
41 | ; **.txt = dumbdecode: |
|
53 |
@@ -1,8 +1,7 b'' | |||||
1 | ; Script generated by the Inno Setup Script Wizard. |
|
1 | ; Script generated by the Inno Setup Script Wizard. | |
2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! |
|
2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! | |
3 |
|
||||
4 | [Setup] |
|
3 | [Setup] | |
5 |
AppCopyright=Copyright 2005-200 |
|
4 | AppCopyright=Copyright 2005-2009 Matt Mackall and others | |
6 | AppName=Mercurial |
|
5 | AppName=Mercurial | |
7 | AppVerName=Mercurial snapshot |
|
6 | AppVerName=Mercurial snapshot | |
8 | InfoAfterFile=contrib/win32/postinstall.txt |
|
7 | InfoAfterFile=contrib/win32/postinstall.txt | |
@@ -18,7 +17,7 b' OutputBaseFilename=Mercurial-snapshot' | |||||
18 | DefaultDirName={pf}\Mercurial |
|
17 | DefaultDirName={pf}\Mercurial | |
19 | SourceDir=..\.. |
|
18 | SourceDir=..\.. | |
20 | VersionInfoDescription=Mercurial distributed SCM |
|
19 | VersionInfoDescription=Mercurial distributed SCM | |
21 |
VersionInfoCopyright=Copyright 2005-200 |
|
20 | VersionInfoCopyright=Copyright 2005-2009 Matt Mackall and others | |
22 | VersionInfoCompany=Matt Mackall and others |
|
21 | VersionInfoCompany=Matt Mackall and others | |
23 | InternalCompressLevel=max |
|
22 | InternalCompressLevel=max | |
24 | SolidCompression=true |
|
23 | SolidCompression=true | |
@@ -31,8 +30,10 b' PrivilegesRequired=none' | |||||
31 | Source: contrib\mercurial.el; DestDir: {app}/Contrib |
|
30 | Source: contrib\mercurial.el; DestDir: {app}/Contrib | |
32 | Source: contrib\vim\*.*; DestDir: {app}/Contrib/Vim |
|
31 | Source: contrib\vim\*.*; DestDir: {app}/Contrib/Vim | |
33 | Source: contrib\zsh_completion; DestDir: {app}/Contrib |
|
32 | Source: contrib\zsh_completion; DestDir: {app}/Contrib | |
|
33 | Source: contrib\hgk; DestDir: {app}/Contrib; DestName: hgk.tcl | |||
34 | Source: contrib\win32\ReadMe.html; DestDir: {app}; Flags: isreadme |
|
34 | Source: contrib\win32\ReadMe.html; DestDir: {app}; Flags: isreadme | |
35 | Source: contrib\win32\mercurial.ini; DestDir: {app}; DestName: Mercurial.ini; Flags: confirmoverwrite |
|
35 | Source: contrib\mergetools.hgrc; DestDir: {tmp}; | |
|
36 | Source: contrib\win32\mercurial.ini; DestDir: {app}; DestName: Mercurial.ini; Check: CheckFile; AfterInstall: ConcatenateFiles; | |||
36 | Source: contrib\win32\postinstall.txt; DestDir: {app}; DestName: ReleaseNotes.txt |
|
37 | Source: contrib\win32\postinstall.txt; DestDir: {app}; DestName: ReleaseNotes.txt | |
37 | Source: dist\hg.exe; DestDir: {app}; AfterInstall: Touch('{app}\hg.exe.local') |
|
38 | Source: dist\hg.exe; DestDir: {app}; AfterInstall: Touch('{app}\hg.exe.local') | |
38 | Source: dist\library.zip; DestDir: {app} |
|
39 | Source: dist\library.zip; DestDir: {app} | |
@@ -64,8 +65,32 b' Filename: "{app}\\add_path.exe"; Paramete' | |||||
64 |
|
65 | |||
65 | [UninstallDelete] |
|
66 | [UninstallDelete] | |
66 | Type: files; Name: "{app}\hg.exe.local" |
|
67 | Type: files; Name: "{app}\hg.exe.local" | |
|
68 | [Code] | |||
|
69 | var | |||
|
70 | WriteFile: Boolean; | |||
|
71 | CheckDone: Boolean; | |||
67 |
|
72 | |||
68 | [Code] |
|
73 | function CheckFile(): Boolean; | |
|
74 | begin | |||
|
75 | if not CheckDone then begin | |||
|
76 | WriteFile := True; | |||
|
77 | if FileExists(ExpandConstant(CurrentFileName)) then begin | |||
|
78 | WriteFile := MsgBox('' + ExpandConstant(CurrentFileName) + '' #13#13 'The file already exists.' #13#13 'Would you like Setup to overwrite it?', mbConfirmation, MB_YESNO) = idYes; | |||
|
79 | end; | |||
|
80 | CheckDone := True; | |||
|
81 | end; | |||
|
82 | Result := WriteFile; | |||
|
83 | end; | |||
|
84 | ||||
|
85 | procedure ConcatenateFiles(); | |||
|
86 | var | |||
|
87 | MergeConfigs: TArrayOfString; | |||
|
88 | begin | |||
|
89 | if LoadStringsFromFile(ExpandConstant('{tmp}\mergetools.hgrc'),MergeConfigs) then begin | |||
|
90 | SaveStringsToFile(ExpandConstant(CurrentFileName),MergeConfigs,True); | |||
|
91 | end; | |||
|
92 | end; | |||
|
93 | ||||
69 | procedure Touch(fn: String); |
|
94 | procedure Touch(fn: String); | |
70 | begin |
|
95 | begin | |
71 | SaveStringToFile(ExpandConstant(fn), '', False); |
|
96 | SaveStringToFile(ExpandConstant(fn), '', False); |
@@ -4,14 +4,13 b'' | |||||
4 | # it into your zsh function path (/usr/share/zsh/site-functions for |
|
4 | # it into your zsh function path (/usr/share/zsh/site-functions for | |
5 | # instance) |
|
5 | # instance) | |
6 | # |
|
6 | # | |
7 | # Copyright (C) 2005 Steve Borho |
|
7 | # Copyright (C) 2005-6 Steve Borho | |
8 | # Copyright (C) 2006-8 Brendan Cully <brendan@kublai.com> |
|
8 | # Copyright (C) 2006-8 Brendan Cully <brendan@kublai.com> | |
9 | # |
|
9 | # | |
10 | # This is free software; you can redistribute it and/or modify it under |
|
10 | # This is free software; you can redistribute it and/or modify it under | |
11 | # the terms of the GNU General Public License as published by the Free |
|
11 | # the terms of the GNU General Public License as published by the Free | |
12 | # Software Foundation; either version 2 of the License, or (at your |
|
12 | # Software Foundation; either version 2 of the License, or (at your | |
13 | # option) any later version. |
|
13 | # option) any later version. | |
14 | # |
|
|||
15 |
|
14 | |||
16 | emulate -LR zsh |
|
15 | emulate -LR zsh | |
17 | setopt extendedglob |
|
16 | setopt extendedglob | |
@@ -118,27 +117,17 b' typeset -A _hg_cmd_globals' | |||||
118 | typeset -ga _hg_cmd_list |
|
117 | typeset -ga _hg_cmd_list | |
119 | typeset -gA _hg_alias_list |
|
118 | typeset -gA _hg_alias_list | |
120 | local hline cmd cmdalias |
|
119 | local hline cmd cmdalias | |
121 | _call_program help hg --verbose help | while read -A hline |
|
120 | ||
|
121 | _call_program hg hg debugcomplete -v 2>/dev/null | while read -A hline | |||
122 | do |
|
122 | do | |
123 |
cmd= |
|
123 | cmd=$hline[1] | |
124 | case $cmd in |
|
124 | _hg_cmd_list+=($cmd) | |
125 | *:) |
|
125 | ||
126 | cmd=${cmd%:} |
|
126 | for cmdalias in $hline[2,-1] | |
127 | _hg_cmd_list+=($cmd) |
|
127 | do | |
128 | ;; |
|
128 | _hg_cmd_list+=($cmdalias) | |
129 | *,) |
|
129 | _hg_alias_list+=($cmdalias $cmd) | |
130 | cmd=${cmd%,} |
|
130 | done | |
131 | _hg_cmd_list+=($cmd) |
|
|||
132 | integer i=2 |
|
|||
133 | while (( i <= $#hline )) |
|
|||
134 | do |
|
|||
135 | cmdalias=${hline[$i]%(:|,)} |
|
|||
136 | _hg_cmd_list+=($cmdalias) |
|
|||
137 | _hg_alias_list+=($cmdalias $cmd) |
|
|||
138 | (( i++ )) |
|
|||
139 | done |
|
|||
140 | ;; |
|
|||
141 | esac |
|
|||
142 | done |
|
131 | done | |
143 | } |
|
132 | } | |
144 |
|
133 |
@@ -3,7 +3,7 b' MAN=$(SOURCES:%.txt=%)' | |||||
3 | HTML=$(SOURCES:%.txt=%.html) |
|
3 | HTML=$(SOURCES:%.txt=%.html) | |
4 | PREFIX=/usr/local |
|
4 | PREFIX=/usr/local | |
5 | MANDIR=$(PREFIX)/share/man |
|
5 | MANDIR=$(PREFIX)/share/man | |
6 | INSTALL=install -c |
|
6 | INSTALL=install -c -m 644 | |
7 | PYTHON=python |
|
7 | PYTHON=python | |
8 | ASCIIDOC=asciidoc |
|
8 | ASCIIDOC=asciidoc | |
9 |
|
9 |
@@ -8,7 +8,14 b'' | |||||
8 | # of the GNU General Public License, incorporated herein by reference. |
|
8 | # of the GNU General Public License, incorporated herein by reference. | |
9 |
|
9 | |||
10 | # enable importing on demand to reduce startup time |
|
10 | # enable importing on demand to reduce startup time | |
11 | from mercurial import demandimport; demandimport.enable() |
|
11 | try: | |
|
12 | from mercurial import demandimport; demandimport.enable() | |||
|
13 | except ImportError: | |||
|
14 | import sys | |||
|
15 | sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" % | |||
|
16 | ' '.join(sys.path)) | |||
|
17 | sys.stderr.write("(check your install and PYTHONPATH)\n") | |||
|
18 | sys.exit(-1) | |||
12 |
|
19 | |||
13 | import sys |
|
20 | import sys | |
14 | import mercurial.util |
|
21 | import mercurial.util |
@@ -9,9 +9,8 b' To use, create entries in your hgrc of t' | |||||
9 | mycmd = cmd --args |
|
9 | mycmd = cmd --args | |
10 | ''' |
|
10 | ''' | |
11 |
|
11 | |||
12 | from mercurial.cmdutil import findcmd, UnknownCommand, AmbiguousCommand |
|
|||
13 | from mercurial import commands |
|
|||
14 | from mercurial.i18n import _ |
|
12 | from mercurial.i18n import _ | |
|
13 | from mercurial import commands, cmdutil, error | |||
15 |
|
14 | |||
16 | cmdtable = {} |
|
15 | cmdtable = {} | |
17 |
|
16 | |||
@@ -43,16 +42,16 b' class lazycommand(object):' | |||||
43 | return |
|
42 | return | |
44 |
|
43 | |||
45 | try: |
|
44 | try: | |
46 | self._cmd = findcmd(self._target, commands.table, False)[1] |
|
45 | self._cmd = cmdutil.findcmd(self._target, commands.table, False)[1] | |
47 | if self._cmd == self: |
|
46 | if self._cmd == self: | |
48 | raise RecursiveCommand() |
|
47 | raise RecursiveCommand() | |
49 | if self._target in commands.norepo.split(' '): |
|
48 | if self._target in commands.norepo.split(' '): | |
50 | commands.norepo += ' %s' % self._name |
|
49 | commands.norepo += ' %s' % self._name | |
51 | return |
|
50 | return | |
52 | except UnknownCommand: |
|
51 | except error.UnknownCommand: | |
53 | msg = _('*** [alias] %s: command %s is unknown') % \ |
|
52 | msg = _('*** [alias] %s: command %s is unknown') % \ | |
54 | (self._name, self._target) |
|
53 | (self._name, self._target) | |
55 | except AmbiguousCommand: |
|
54 | except error.AmbiguousCommand: | |
56 | msg = _('*** [alias] %s: command %s is ambiguous') % \ |
|
55 | msg = _('*** [alias] %s: command %s is ambiguous') % \ | |
57 | (self._name, self._target) |
|
56 | (self._name, self._target) | |
58 | except RecursiveCommand: |
|
57 | except RecursiveCommand: |
@@ -14,19 +14,26 b' bookmark is forwarded to the new changes' | |||||
14 |
|
14 | |||
15 | It is possible to use bookmark names in every revision lookup (e.g. hg |
|
15 | It is possible to use bookmark names in every revision lookup (e.g. hg | |
16 | merge, hg update). |
|
16 | merge, hg update). | |
|
17 | ||||
|
18 | The bookmark extension offers the possiblity to have a more git-like experience | |||
|
19 | by adding the following configuration option to your .hgrc: | |||
|
20 | ||||
|
21 | [bookmarks] | |||
|
22 | track.current = True | |||
|
23 | ||||
|
24 | This will cause bookmarks to track the bookmark that you are currently on, and | |||
|
25 | just updates it. This is similar to git's approach of branching. | |||
17 | ''' |
|
26 | ''' | |
18 |
|
27 | |||
19 | from mercurial.commands import templateopts, hex, short |
|
|||
20 | from mercurial.i18n import _ |
|
28 | from mercurial.i18n import _ | |
21 |
from mercurial import |
|
29 | from mercurial.node import nullid, nullrev, hex, short | |
22 | from mercurial.node import nullid, nullrev |
|
30 | from mercurial import util, commands, localrepo, repair, extensions | |
23 | from mercurial.repo import RepoError |
|
31 | import os | |
24 | import mercurial, mercurial.localrepo, mercurial.repair, os |
|
|||
25 |
|
32 | |||
26 | def parse(repo): |
|
33 | def parse(repo): | |
27 | '''Parse .hg/bookmarks file and return a dictionary |
|
34 | '''Parse .hg/bookmarks file and return a dictionary | |
28 |
|
35 | |||
29 | Bookmarks are stored as {HASH}\s{NAME}\n (localtags format) values |
|
36 | Bookmarks are stored as {HASH}\\s{NAME}\\n (localtags format) values | |
30 | in the .hg/bookmarks file. They are read by the parse() method and |
|
37 | in the .hg/bookmarks file. They are read by the parse() method and | |
31 | returned as a dictionary with name => hash values. |
|
38 | returned as a dictionary with name => hash values. | |
32 |
|
39 | |||
@@ -54,11 +61,55 b' def write(repo, refs):' | |||||
54 | ''' |
|
61 | ''' | |
55 | if os.path.exists(repo.join('bookmarks')): |
|
62 | if os.path.exists(repo.join('bookmarks')): | |
56 | util.copyfile(repo.join('bookmarks'), repo.join('undo.bookmarks')) |
|
63 | util.copyfile(repo.join('bookmarks'), repo.join('undo.bookmarks')) | |
|
64 | if current(repo) not in refs: | |||
|
65 | setcurrent(repo, None) | |||
57 | file = repo.opener('bookmarks', 'w+') |
|
66 | file = repo.opener('bookmarks', 'w+') | |
58 | for refspec, node in refs.items(): |
|
67 | for refspec, node in refs.iteritems(): | |
59 | file.write("%s %s\n" % (hex(node), refspec)) |
|
68 | file.write("%s %s\n" % (hex(node), refspec)) | |
60 | file.close() |
|
69 | file.close() | |
61 |
|
70 | |||
|
71 | def current(repo): | |||
|
72 | '''Get the current bookmark | |||
|
73 | ||||
|
74 | If we use gittishsh branches we have a current bookmark that | |||
|
75 | we are on. This function returns the name of the bookmark. It | |||
|
76 | is stored in .hg/bookmarks.current | |||
|
77 | ''' | |||
|
78 | if repo._bookmarkcurrent: | |||
|
79 | return repo._bookmarkcurrent | |||
|
80 | mark = None | |||
|
81 | if os.path.exists(repo.join('bookmarks.current')): | |||
|
82 | file = repo.opener('bookmarks.current') | |||
|
83 | # No readline() in posixfile_nt, reading everything is cheap | |||
|
84 | mark = (file.readlines() or [''])[0] | |||
|
85 | if mark == '': | |||
|
86 | mark = None | |||
|
87 | file.close() | |||
|
88 | repo._bookmarkcurrent = mark | |||
|
89 | return mark | |||
|
90 | ||||
|
91 | def setcurrent(repo, mark): | |||
|
92 | '''Set the name of the bookmark that we are currently on | |||
|
93 | ||||
|
94 | Set the name of the bookmark that we are on (hg update <bookmark>). | |||
|
95 | The name is recoreded in .hg/bookmarks.current | |||
|
96 | ''' | |||
|
97 | if current(repo) == mark: | |||
|
98 | return | |||
|
99 | ||||
|
100 | refs = parse(repo) | |||
|
101 | ||||
|
102 | # do not update if we do update to a rev equal to the current bookmark | |||
|
103 | if (mark not in refs and | |||
|
104 | current(repo) and refs[current(repo)] == repo.changectx('.').node()): | |||
|
105 | return | |||
|
106 | if mark not in refs: | |||
|
107 | mark = '' | |||
|
108 | file = repo.opener('bookmarks.current', 'w+') | |||
|
109 | file.write(mark) | |||
|
110 | file.close() | |||
|
111 | repo._bookmarkcurrent = mark | |||
|
112 | ||||
62 | def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False, rename=None): |
|
113 | def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False, rename=None): | |
63 | '''mercurial bookmarks |
|
114 | '''mercurial bookmarks | |
64 |
|
115 | |||
@@ -85,6 +136,8 b' def bookmark(ui, repo, mark=None, rev=No' | |||||
85 | raise util.Abort(_("new bookmark name required")) |
|
136 | raise util.Abort(_("new bookmark name required")) | |
86 | marks[mark] = marks[rename] |
|
137 | marks[mark] = marks[rename] | |
87 | del marks[rename] |
|
138 | del marks[rename] | |
|
139 | if current(repo) == rename: | |||
|
140 | setcurrent(repo, mark) | |||
88 | write(repo, marks) |
|
141 | write(repo, marks) | |
89 | return |
|
142 | return | |
90 |
|
143 | |||
@@ -121,7 +174,11 b' def bookmark(ui, repo, mark=None, rev=No' | |||||
121 | ui.status("no bookmarks set\n") |
|
174 | ui.status("no bookmarks set\n") | |
122 | else: |
|
175 | else: | |
123 | for bmark, n in marks.iteritems(): |
|
176 | for bmark, n in marks.iteritems(): | |
124 | prefix = (n == cur) and '*' or ' ' |
|
177 | if ui.configbool('bookmarks', 'track.current'): | |
|
178 | prefix = (bmark == current(repo) and n == cur) and '*' or ' ' | |||
|
179 | else: | |||
|
180 | prefix = (n == cur) and '*' or ' ' | |||
|
181 | ||||
125 | ui.write(" %s %-25s %d:%s\n" % ( |
|
182 | ui.write(" %s %-25s %d:%s\n" % ( | |
126 | prefix, bmark, repo.changelog.rev(n), hexfn(n))) |
|
183 | prefix, bmark, repo.changelog.rev(n), hexfn(n))) | |
127 | return |
|
184 | return | |
@@ -140,14 +197,14 b' def _revstostrip(changelog, node):' | |||||
140 | saveheads.append(p) |
|
197 | saveheads.append(p) | |
141 | return [r for r in tostrip if r not in saveheads] |
|
198 | return [r for r in tostrip if r not in saveheads] | |
142 |
|
199 | |||
143 | def strip(ui, repo, node, backup="all"): |
|
200 | def strip(oldstrip, ui, repo, node, backup="all"): | |
144 | """Strip bookmarks if revisions are stripped using |
|
201 | """Strip bookmarks if revisions are stripped using | |
145 | the mercurial.strip method. This usually happens during |
|
202 | the mercurial.strip method. This usually happens during | |
146 | qpush and qpop""" |
|
203 | qpush and qpop""" | |
147 | revisions = _revstostrip(repo.changelog, node) |
|
204 | revisions = _revstostrip(repo.changelog, node) | |
148 | marks = parse(repo) |
|
205 | marks = parse(repo) | |
149 | update = [] |
|
206 | update = [] | |
150 | for mark, n in marks.items(): |
|
207 | for mark, n in marks.iteritems(): | |
151 | if repo.changelog.rev(n) in revisions: |
|
208 | if repo.changelog.rev(n) in revisions: | |
152 | update.append(mark) |
|
209 | update.append(mark) | |
153 | oldstrip(ui, repo, node, backup) |
|
210 | oldstrip(ui, repo, node, backup) | |
@@ -156,16 +213,14 b' def strip(ui, repo, node, backup="all"):' | |||||
156 | marks[m] = repo.changectx('.').node() |
|
213 | marks[m] = repo.changectx('.').node() | |
157 | write(repo, marks) |
|
214 | write(repo, marks) | |
158 |
|
215 | |||
159 | oldstrip = mercurial.repair.strip |
|
|||
160 | mercurial.repair.strip = strip |
|
|||
161 |
|
||||
162 | def reposetup(ui, repo): |
|
216 | def reposetup(ui, repo): | |
163 |
if not isinstance(repo, |
|
217 | if not isinstance(repo, localrepo.localrepository): | |
164 | return |
|
218 | return | |
165 |
|
219 | |||
166 | # init a bookmark cache as otherwise we would get a infinite reading |
|
220 | # init a bookmark cache as otherwise we would get a infinite reading | |
167 | # in lookup() |
|
221 | # in lookup() | |
168 | repo._bookmarks = None |
|
222 | repo._bookmarks = None | |
|
223 | repo._bookmarkcurrent = None | |||
169 |
|
224 | |||
170 | class bookmark_repo(repo.__class__): |
|
225 | class bookmark_repo(repo.__class__): | |
171 | def rollback(self): |
|
226 | def rollback(self): | |
@@ -192,9 +247,14 b' def reposetup(ui, repo):' | |||||
192 | marks = parse(repo) |
|
247 | marks = parse(repo) | |
193 | update = False |
|
248 | update = False | |
194 | for mark, n in marks.items(): |
|
249 | for mark, n in marks.items(): | |
195 | if n in parents: |
|
250 | if ui.configbool('bookmarks', 'track.current'): | |
196 | marks[mark] = node |
|
251 | if mark == current(repo) and n in parents: | |
197 |
|
|
252 | marks[mark] = node | |
|
253 | update = True | |||
|
254 | else: | |||
|
255 | if n in parents: | |||
|
256 | marks[mark] = node | |||
|
257 | update = True | |||
198 | if update: |
|
258 | if update: | |
199 | write(repo, marks) |
|
259 | write(repo, marks) | |
200 | return node |
|
260 | return node | |
@@ -218,8 +278,35 b' def reposetup(ui, repo):' | |||||
218 | write(repo, marks) |
|
278 | write(repo, marks) | |
219 | return result |
|
279 | return result | |
220 |
|
280 | |||
|
281 | def tags(self): | |||
|
282 | """Merge bookmarks with normal tags""" | |||
|
283 | if self.tagscache: | |||
|
284 | return self.tagscache | |||
|
285 | ||||
|
286 | tagscache = super(bookmark_repo, self).tags() | |||
|
287 | tagscache.update(parse(repo)) | |||
|
288 | return tagscache | |||
|
289 | ||||
221 | repo.__class__ = bookmark_repo |
|
290 | repo.__class__ = bookmark_repo | |
222 |
|
291 | |||
|
292 | def uisetup(ui): | |||
|
293 | extensions.wrapfunction(repair, "strip", strip) | |||
|
294 | if ui.configbool('bookmarks', 'track.current'): | |||
|
295 | extensions.wrapcommand(commands.table, 'update', updatecurbookmark) | |||
|
296 | ||||
|
297 | def updatecurbookmark(orig, ui, repo, *args, **opts): | |||
|
298 | '''Set the current bookmark | |||
|
299 | ||||
|
300 | If the user updates to a bookmark we update the .hg/bookmarks.current | |||
|
301 | file. | |||
|
302 | ''' | |||
|
303 | res = orig(ui, repo, *args, **opts) | |||
|
304 | rev = opts['rev'] | |||
|
305 | if not rev and len(args) > 0: | |||
|
306 | rev = args[0] | |||
|
307 | setcurrent(repo, rev) | |||
|
308 | return res | |||
|
309 | ||||
223 | cmdtable = { |
|
310 | cmdtable = { | |
224 | "bookmarks": |
|
311 | "bookmarks": | |
225 | (bookmark, |
|
312 | (bookmark, | |
@@ -227,5 +314,5 b' cmdtable = {' | |||||
227 | ('r', 'rev', '', _('revision')), |
|
314 | ('r', 'rev', '', _('revision')), | |
228 | ('d', 'delete', False, _('delete a given bookmark')), |
|
315 | ('d', 'delete', False, _('delete a given bookmark')), | |
229 | ('m', 'rename', '', _('rename a given bookmark'))], |
|
316 | ('m', 'rename', '', _('rename a given bookmark'))], | |
230 | _('hg bookmarks [-d] [-m NAME] [-r NAME] [NAME]')), |
|
317 | _('hg bookmarks [-f] [-d] [-m NAME] [-r NAME] [NAME]')), | |
231 | } |
|
318 | } |
@@ -4,53 +4,111 b'' | |||||
4 | # |
|
4 | # | |
5 | # This software may be used and distributed according to the terms |
|
5 | # This software may be used and distributed according to the terms | |
6 | # of the GNU General Public License, incorporated herein by reference. |
|
6 | # of the GNU General Public License, incorporated herein by reference. | |
7 | # |
|
7 | ||
8 | # hook extension to update comments of bugzilla bugs when changesets |
|
8 | '''Bugzilla integration | |
9 | # that refer to bugs by id are seen. this hook does not change bug |
|
9 | ||
10 | # status, only comments. |
|
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 bug | |
12 | # to configure, add items to '[bugzilla]' section of hgrc. |
|
12 | status. | |
13 | # |
|
13 | ||
14 | # to use, configure bugzilla extension and enable like this: |
|
14 | The hook updates the Bugzilla database directly. Only Bugzilla installations | |
15 | # |
|
15 | using MySQL are supported. | |
16 | # [extensions] |
|
16 | ||
17 | # hgext.bugzilla = |
|
17 | The hook relies on a Bugzilla script to send bug change notification emails. | |
18 | # |
|
18 | That script changes between Bugzilla versions; the 'processmail' script used | |
19 | # [hooks] |
|
19 | prior to 2.18 is replaced in 2.18 and subsequent versions by | |
20 | # # run bugzilla hook on every change pulled or pushed in here |
|
20 | 'config/sendbugmail.pl'. Note that these will be run by Mercurial as the user | |
21 | # incoming.bugzilla = python:hgext.bugzilla.hook |
|
21 | pushing the change; you will need to ensure the Bugzilla install file | |
22 | # |
|
22 | permissions are set appropriately. | |
23 | # config items: |
|
23 | ||
24 | # |
|
24 | Configuring the extension: | |
25 | # section name is 'bugzilla'. |
|
25 | ||
26 |
|
|
26 | [bugzilla] | |
27 | # |
|
27 | host Hostname of the MySQL server holding the Bugzilla database. | |
28 | # REQUIRED: |
|
28 | db Name of the Bugzilla database in MySQL. Default 'bugs'. | |
29 | # host = bugzilla # mysql server where bugzilla database lives |
|
29 | user Username to use to access MySQL server. Default 'bugs'. | |
30 | # password = ** # user's password |
|
30 | password Password to use to access MySQL server. | |
31 | # version = 2.16 # version of bugzilla installed |
|
31 | timeout Database connection timeout (seconds). Default 5. | |
32 | # |
|
32 | version Bugzilla version. Specify '3.0' for Bugzilla versions 3.0 and | |
33 | # OPTIONAL: |
|
33 | later, '2.18' for Bugzilla versions from 2.18 and '2.16' for | |
34 | # bzuser = ... # fallback bugzilla user name to record comments with |
|
34 | versions prior to 2.18. | |
35 | # db = bugs # database to connect to |
|
35 | bzuser Fallback Bugzilla user name to record comments with, if | |
36 | # notify = ... # command to run to get bugzilla to send mail |
|
36 | changeset committer cannot be found as a Bugzilla user. | |
37 | # regexp = ... # regexp to match bug ids (must contain one "()" group) |
|
37 | bzdir Bugzilla install directory. Used by default notify. | |
38 | # strip = 0 # number of slashes to strip for url paths |
|
38 | Default '/var/www/html/bugzilla'. | |
39 | # style = ... # style file to use when formatting comments |
|
39 | notify The command to run to get Bugzilla to send bug change | |
40 | # template = ... # template to use when formatting comments |
|
40 | notification emails. Substitutes from a map with 3 keys, | |
41 | # timeout = 5 # database connection timeout (seconds) |
|
41 | 'bzdir', 'id' (bug id) and 'user' (committer bugzilla email). | |
42 | # user = bugs # user to connect to database as |
|
42 | Default depends on version; from 2.18 it is | |
43 | # [web] |
|
43 | "cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %(user)s". | |
44 | # baseurl = http://hgserver/... # root of hg web site for browsing commits |
|
44 | regexp Regular expression to match bug IDs in changeset commit message. | |
45 | # |
|
45 | Must contain one "()" group. The default expression matches | |
46 | # if hg committer names are not same as bugzilla user names, use |
|
46 | 'Bug 1234', 'Bug no. 1234', 'Bug number 1234', | |
47 | # "usermap" feature to map from committer email to bugzilla user name. |
|
47 | 'Bugs 1234,5678', 'Bug 1234 and 5678' and variations thereof. | |
48 | # usermap can be in hgrc or separate config file. |
|
48 | Matching is case insensitive. | |
49 | # |
|
49 | style The style file to use when formatting comments. | |
50 | # [bugzilla] |
|
50 | template Template to use when formatting comments. Overrides | |
51 | # usermap = filename # cfg file with "committer"="bugzilla user" info |
|
51 | style if specified. In addition to the usual Mercurial | |
52 | # [usermap] |
|
52 | keywords, the extension specifies: | |
53 | # committer_email = bugzilla_user_name |
|
53 | {bug} The Bugzilla bug ID. | |
|
54 | {root} The full pathname of the Mercurial repository. | |||
|
55 | {webroot} Stripped pathname of the Mercurial repository. | |||
|
56 | {hgweb} Base URL for browsing Mercurial repositories. | |||
|
57 | Default 'changeset {node|short} in repo {root} refers ' | |||
|
58 | 'to bug {bug}.\\ndetails:\\n\\t{desc|tabindent}' | |||
|
59 | strip The number of slashes to strip from the front of {root} | |||
|
60 | to produce {webroot}. Default 0. | |||
|
61 | usermap Path of file containing Mercurial committer ID to Bugzilla user | |||
|
62 | ID mappings. If specified, the file should contain one mapping | |||
|
63 | per line, "committer"="Bugzilla user". See also the | |||
|
64 | [usermap] section. | |||
|
65 | ||||
|
66 | [usermap] | |||
|
67 | Any entries in this section specify mappings of Mercurial committer ID | |||
|
68 | to Bugzilla user ID. See also [bugzilla].usermap. | |||
|
69 | "committer"="Bugzilla user" | |||
|
70 | ||||
|
71 | [web] | |||
|
72 | baseurl Base URL for browsing Mercurial repositories. Reference from | |||
|
73 | templates as {hgweb}. | |||
|
74 | ||||
|
75 | Activating the extension: | |||
|
76 | ||||
|
77 | [extensions] | |||
|
78 | hgext.bugzilla = | |||
|
79 | ||||
|
80 | [hooks] | |||
|
81 | # run bugzilla hook on every change pulled or pushed in here | |||
|
82 | incoming.bugzilla = python:hgext.bugzilla.hook | |||
|
83 | ||||
|
84 | Example configuration: | |||
|
85 | ||||
|
86 | This example configuration is for a collection of Mercurial repositories | |||
|
87 | in /var/local/hg/repos/ used with a local Bugzilla 3.2 installation in | |||
|
88 | /opt/bugzilla-3.2. | |||
|
89 | ||||
|
90 | [bugzilla] | |||
|
91 | host=localhost | |||
|
92 | password=XYZZY | |||
|
93 | version=3.0 | |||
|
94 | bzuser=unknown@domain.com | |||
|
95 | bzdir=/opt/bugzilla-3.2 | |||
|
96 | template=Changeset {node|short} in {root|basename}.\\n{hgweb}/{webroot}/rev/{node|short}\\n\\n{desc}\\n | |||
|
97 | strip=5 | |||
|
98 | ||||
|
99 | [web] | |||
|
100 | baseurl=http://dev.domain.com/hg | |||
|
101 | ||||
|
102 | [usermap] | |||
|
103 | user@emaildomain.com=user.name@bugzilladomain.com | |||
|
104 | ||||
|
105 | Commits add a comment to the Bugzilla bug record of the form: | |||
|
106 | ||||
|
107 | Changeset 3b16791d6642 in repository-name. | |||
|
108 | http://dev.domain.com/hg/repository-name/rev/3b16791d6642 | |||
|
109 | ||||
|
110 | Changeset commit comment. Bug 1234. | |||
|
111 | ''' | |||
54 |
|
112 | |||
55 | from mercurial.i18n import _ |
|
113 | from mercurial.i18n import _ | |
56 | from mercurial.node import short |
|
114 | from mercurial.node import short | |
@@ -82,6 +140,7 b' class bugzilla_2_16(object):' | |||||
82 | self.cursor = self.conn.cursor() |
|
140 | self.cursor = self.conn.cursor() | |
83 | self.longdesc_id = self.get_longdesc_id() |
|
141 | self.longdesc_id = self.get_longdesc_id() | |
84 | self.user_ids = {} |
|
142 | self.user_ids = {} | |
|
143 | self.default_notify = "cd %(bzdir)s && ./processmail %(id)s %(user)s" | |||
85 |
|
144 | |||
86 | def run(self, *args, **kwargs): |
|
145 | def run(self, *args, **kwargs): | |
87 | '''run a query.''' |
|
146 | '''run a query.''' | |
@@ -118,15 +177,23 b' class bugzilla_2_16(object):' | |||||
118 | unknown.pop(id, None) |
|
177 | unknown.pop(id, None) | |
119 | return util.sort(unknown.keys()) |
|
178 | return util.sort(unknown.keys()) | |
120 |
|
179 | |||
121 | def notify(self, ids): |
|
180 | def notify(self, ids, committer): | |
122 | '''tell bugzilla to send mail.''' |
|
181 | '''tell bugzilla to send mail.''' | |
123 |
|
182 | |||
124 | self.ui.status(_('telling bugzilla to send mail:\n')) |
|
183 | self.ui.status(_('telling bugzilla to send mail:\n')) | |
|
184 | (user, userid) = self.get_bugzilla_user(committer) | |||
125 | for id in ids: |
|
185 | for id in ids: | |
126 | self.ui.status(_(' bug %s\n') % id) |
|
186 | self.ui.status(_(' bug %s\n') % id) | |
127 | cmd = self.ui.config('bugzilla', 'notify', |
|
187 | cmdfmt = self.ui.config('bugzilla', 'notify', self.default_notify) | |
128 | 'cd /var/www/html/bugzilla && ' |
|
188 | bzdir = self.ui.config('bugzilla', 'bzdir', '/var/www/html/bugzilla') | |
129 | './processmail %s nobody@nowhere.com') % id |
|
189 | try: | |
|
190 | # Backwards-compatible with old notify string, which | |||
|
191 | # took one string. This will throw with a new format | |||
|
192 | # string. | |||
|
193 | cmd = cmdfmt % id | |||
|
194 | except TypeError: | |||
|
195 | cmd = cmdfmt % {'bzdir': bzdir, 'id': id, 'user': user} | |||
|
196 | self.ui.note(_('running notify command %s\n') % cmd) | |||
130 | fp = util.popen('(%s) 2>&1' % cmd) |
|
197 | fp = util.popen('(%s) 2>&1' % cmd) | |
131 | out = fp.read() |
|
198 | out = fp.read() | |
132 | ret = fp.close() |
|
199 | ret = fp.close() | |
@@ -161,9 +228,10 b' class bugzilla_2_16(object):' | |||||
161 | return bzuser |
|
228 | return bzuser | |
162 | return user |
|
229 | return user | |
163 |
|
230 | |||
164 |
def |
|
231 | def get_bugzilla_user(self, committer): | |
165 | '''add comment to bug. try adding comment as committer of |
|
232 | '''see if committer is a registered bugzilla user. Return | |
166 | changeset, otherwise as default bugzilla user.''' |
|
233 | bugzilla username and userid if so. If not, return default | |
|
234 | bugzilla username and userid.''' | |||
167 | user = self.map_committer(committer) |
|
235 | user = self.map_committer(committer) | |
168 | try: |
|
236 | try: | |
169 | userid = self.get_user_id(user) |
|
237 | userid = self.get_user_id(user) | |
@@ -174,9 +242,16 b' class bugzilla_2_16(object):' | |||||
174 | raise util.Abort(_('cannot find bugzilla user id for %s') % |
|
242 | raise util.Abort(_('cannot find bugzilla user id for %s') % | |
175 | user) |
|
243 | user) | |
176 | userid = self.get_user_id(defaultuser) |
|
244 | userid = self.get_user_id(defaultuser) | |
|
245 | user = defaultuser | |||
177 | except KeyError: |
|
246 | except KeyError: | |
178 | raise util.Abort(_('cannot find bugzilla user id for %s or %s') % |
|
247 | raise util.Abort(_('cannot find bugzilla user id for %s or %s') % | |
179 | (user, defaultuser)) |
|
248 | (user, defaultuser)) | |
|
249 | return (user, userid) | |||
|
250 | ||||
|
251 | def add_comment(self, bugid, text, committer): | |||
|
252 | '''add comment to bug. try adding comment as committer of | |||
|
253 | changeset, otherwise as default bugzilla user.''' | |||
|
254 | (user, userid) = self.get_bugzilla_user(committer) | |||
180 | now = time.strftime('%Y-%m-%d %H:%M:%S') |
|
255 | now = time.strftime('%Y-%m-%d %H:%M:%S') | |
181 | self.run('''insert into longdescs |
|
256 | self.run('''insert into longdescs | |
182 | (bug_id, who, bug_when, thetext) |
|
257 | (bug_id, who, bug_when, thetext) | |
@@ -185,12 +260,20 b' class bugzilla_2_16(object):' | |||||
185 | self.run('''insert into bugs_activity (bug_id, who, bug_when, fieldid) |
|
260 | self.run('''insert into bugs_activity (bug_id, who, bug_when, fieldid) | |
186 | values (%s, %s, %s, %s)''', |
|
261 | values (%s, %s, %s, %s)''', | |
187 | (bugid, userid, now, self.longdesc_id)) |
|
262 | (bugid, userid, now, self.longdesc_id)) | |
|
263 | self.conn.commit() | |||
188 |
|
264 | |||
189 |
class bugzilla_ |
|
265 | class bugzilla_2_18(bugzilla_2_16): | |
|
266 | '''support for bugzilla 2.18 series.''' | |||
|
267 | ||||
|
268 | def __init__(self, ui): | |||
|
269 | bugzilla_2_16.__init__(self, ui) | |||
|
270 | self.default_notify = "cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %(user)s" | |||
|
271 | ||||
|
272 | class bugzilla_3_0(bugzilla_2_18): | |||
190 | '''support for bugzilla 3.0 series.''' |
|
273 | '''support for bugzilla 3.0 series.''' | |
191 |
|
274 | |||
192 | def __init__(self, ui): |
|
275 | def __init__(self, ui): | |
193 |
bugzilla_2_1 |
|
276 | bugzilla_2_18.__init__(self, ui) | |
194 |
|
277 | |||
195 | def get_longdesc_id(self): |
|
278 | def get_longdesc_id(self): | |
196 | '''get identity of longdesc field''' |
|
279 | '''get identity of longdesc field''' | |
@@ -205,6 +288,7 b' class bugzilla(object):' | |||||
205 | # different schemas. |
|
288 | # different schemas. | |
206 | _versions = { |
|
289 | _versions = { | |
207 | '2.16': bugzilla_2_16, |
|
290 | '2.16': bugzilla_2_16, | |
|
291 | '2.18': bugzilla_2_18, | |||
208 | '3.0': bugzilla_3_0 |
|
292 | '3.0': bugzilla_3_0 | |
209 | } |
|
293 | } | |
210 |
|
294 | |||
@@ -283,7 +367,7 b' class bugzilla(object):' | |||||
283 | mapfile = self.ui.config('bugzilla', 'style') |
|
367 | mapfile = self.ui.config('bugzilla', 'style') | |
284 | tmpl = self.ui.config('bugzilla', 'template') |
|
368 | tmpl = self.ui.config('bugzilla', 'template') | |
285 | t = cmdutil.changeset_templater(self.ui, self.repo, |
|
369 | t = cmdutil.changeset_templater(self.ui, self.repo, | |
286 | False, mapfile, False) |
|
370 | False, None, mapfile, False) | |
287 | if not mapfile and not tmpl: |
|
371 | if not mapfile and not tmpl: | |
288 | tmpl = _('changeset {node|short} in repo {root} refers ' |
|
372 | tmpl = _('changeset {node|short} in repo {root} refers ' | |
289 | 'to bug {bug}.\ndetails:\n\t{desc|tabindent}') |
|
373 | 'to bug {bug}.\ndetails:\n\t{desc|tabindent}') | |
@@ -320,7 +404,7 b' def hook(ui, repo, hooktype, node=None, ' | |||||
320 | if ids: |
|
404 | if ids: | |
321 | for id in ids: |
|
405 | for id in ids: | |
322 | bz.update(id, ctx) |
|
406 | bz.update(id, ctx) | |
323 | bz.notify(ids) |
|
407 | bz.notify(ids, util.email(ctx.user())) | |
324 | except MySQLdb.MySQLError, err: |
|
408 | except MySQLdb.MySQLError, err: | |
325 | raise util.Abort(_('database error: %s') % err[1]) |
|
409 | raise util.Abort(_('database error: %s') % err[1]) | |
326 |
|
410 |
@@ -12,31 +12,10 b' from mercurial import patch, cmdutil, ut' | |||||
12 | import os, sys |
|
12 | import os, sys | |
13 | import time, datetime |
|
13 | import time, datetime | |
14 |
|
14 | |||
15 | def get_tty_width(): |
|
|||
16 | if 'COLUMNS' in os.environ: |
|
|||
17 | try: |
|
|||
18 | return int(os.environ['COLUMNS']) |
|
|||
19 | except ValueError: |
|
|||
20 | pass |
|
|||
21 | try: |
|
|||
22 | import termios, array, fcntl |
|
|||
23 | for dev in (sys.stdout, sys.stdin): |
|
|||
24 | try: |
|
|||
25 | fd = dev.fileno() |
|
|||
26 | if not os.isatty(fd): |
|
|||
27 | continue |
|
|||
28 | arri = fcntl.ioctl(fd, termios.TIOCGWINSZ, '\0' * 8) |
|
|||
29 | return array.array('h', arri)[1] |
|
|||
30 | except ValueError: |
|
|||
31 | pass |
|
|||
32 | except ImportError: |
|
|||
33 | pass |
|
|||
34 | return 80 |
|
|||
35 |
|
||||
36 | def maketemplater(ui, repo, tmpl): |
|
15 | def maketemplater(ui, repo, tmpl): | |
37 | tmpl = templater.parsestring(tmpl, quoted=False) |
|
16 | tmpl = templater.parsestring(tmpl, quoted=False) | |
38 | try: |
|
17 | try: | |
39 | t = cmdutil.changeset_templater(ui, repo, False, None, False) |
|
18 | t = cmdutil.changeset_templater(ui, repo, False, None, None, False) | |
40 | except SyntaxError, inst: |
|
19 | except SyntaxError, inst: | |
41 | raise util.Abort(inst.args[0]) |
|
20 | raise util.Abort(inst.args[0]) | |
42 | t.use_template(tmpl) |
|
21 | t.use_template(tmpl) | |
@@ -100,7 +79,7 b' def countrate(ui, repo, amap, *pats, **o' | |||||
100 | newpct = int(100.0 * count / max(len(repo), 1)) |
|
79 | newpct = int(100.0 * count / max(len(repo), 1)) | |
101 | if pct < newpct: |
|
80 | if pct < newpct: | |
102 | pct = newpct |
|
81 | pct = newpct | |
103 |
ui.write(_("\r |
|
82 | ui.write(_("\rgenerating stats: %d%%") % pct) | |
104 | sys.stdout.flush() |
|
83 | sys.stdout.flush() | |
105 |
|
84 | |||
106 | if opts.get('progress'): |
|
85 | if opts.get('progress'): | |
@@ -111,7 +90,7 b' def countrate(ui, repo, amap, *pats, **o' | |||||
111 |
|
90 | |||
112 |
|
91 | |||
113 | def churn(ui, repo, *pats, **opts): |
|
92 | def churn(ui, repo, *pats, **opts): | |
114 |
''' |
|
93 | '''graph count of revisions grouped by template | |
115 |
|
94 | |||
116 | Will graph count of changed lines or revisions grouped by template or |
|
95 | Will graph count of changed lines or revisions grouped by template or | |
117 | alternatively by date, if dateformat is used. In this case it will override |
|
96 | alternatively by date, if dateformat is used. In this case it will override | |
@@ -157,7 +136,7 b' def churn(ui, repo, *pats, **opts):' | |||||
157 | maxcount = float(max([v for k, v in rate])) |
|
136 | maxcount = float(max([v for k, v in rate])) | |
158 | maxname = max([len(k) for k, v in rate]) |
|
137 | maxname = max([len(k) for k, v in rate]) | |
159 |
|
138 | |||
160 |
ttywidth = |
|
139 | ttywidth = util.termwidth() | |
161 | ui.debug(_("assuming %i character terminal\n") % ttywidth) |
|
140 | ui.debug(_("assuming %i character terminal\n") % ttywidth) | |
162 | width = ttywidth - maxname - 2 - 6 - 2 - 2 |
|
141 | width = ttywidth - maxname - 2 - 6 - 2 - 2 | |
163 |
|
142 |
@@ -204,6 +204,7 b' def colordiff(orig, ui, repo, *pats, **o' | |||||
204 | _diff_prefixes = [('diff', 'diffline'), |
|
204 | _diff_prefixes = [('diff', 'diffline'), | |
205 | ('copy', 'extended'), |
|
205 | ('copy', 'extended'), | |
206 | ('rename', 'extended'), |
|
206 | ('rename', 'extended'), | |
|
207 | ('old', 'extended'), | |||
207 | ('new', 'extended'), |
|
208 | ('new', 'extended'), | |
208 | ('deleted', 'extended'), |
|
209 | ('deleted', 'extended'), | |
209 | ('---', 'file_a'), |
|
210 | ('---', 'file_a'), |
@@ -7,13 +7,14 b'' | |||||
7 | '''converting foreign VCS repositories to Mercurial''' |
|
7 | '''converting foreign VCS repositories to Mercurial''' | |
8 |
|
8 | |||
9 | import convcmd |
|
9 | import convcmd | |
|
10 | import cvsps | |||
10 | from mercurial import commands |
|
11 | from mercurial import commands | |
11 | from mercurial.i18n import _ |
|
12 | from mercurial.i18n import _ | |
12 |
|
13 | |||
13 | # Commands definition was moved elsewhere to ease demandload job. |
|
14 | # Commands definition was moved elsewhere to ease demandload job. | |
14 |
|
15 | |||
15 | def convert(ui, src, dest=None, revmapfile=None, **opts): |
|
16 | def convert(ui, src, dest=None, revmapfile=None, **opts): | |
16 |
""" |
|
17 | """convert a foreign SCM repository to a Mercurial one. | |
17 |
|
18 | |||
18 | Accepted source formats [identifiers]: |
|
19 | Accepted source formats [identifiers]: | |
19 | - Mercurial [hg] |
|
20 | - Mercurial [hg] | |
@@ -183,7 +184,18 b' def convert(ui, src, dest=None, revmapfi' | |||||
183 | def debugsvnlog(ui, **opts): |
|
184 | def debugsvnlog(ui, **opts): | |
184 | return convcmd.debugsvnlog(ui, **opts) |
|
185 | return convcmd.debugsvnlog(ui, **opts) | |
185 |
|
186 | |||
186 | commands.norepo += " convert debugsvnlog" |
|
187 | def debugcvsps(ui, *args, **opts): | |
|
188 | '''create changeset information from CVS | |||
|
189 | ||||
|
190 | This command is intended as a debugging tool for the CVS to Mercurial | |||
|
191 | converter, and can be used as a direct replacement for cvsps. | |||
|
192 | ||||
|
193 | Hg debugcvsps reads the CVS rlog for current directory (or any named | |||
|
194 | directory) in the CVS repository, and converts the log to a series of | |||
|
195 | changesets based on matching commit log entries and dates.''' | |||
|
196 | return cvsps.debugcvsps(ui, *args, **opts) | |||
|
197 | ||||
|
198 | commands.norepo += " convert debugsvnlog debugcvsps" | |||
187 |
|
199 | |||
188 | cmdtable = { |
|
200 | cmdtable = { | |
189 | "convert": |
|
201 | "convert": | |
@@ -200,4 +212,22 b' cmdtable = {' | |||||
200 | (debugsvnlog, |
|
212 | (debugsvnlog, | |
201 | [], |
|
213 | [], | |
202 | 'hg debugsvnlog'), |
|
214 | 'hg debugsvnlog'), | |
|
215 | "debugcvsps": | |||
|
216 | (debugcvsps, | |||
|
217 | [ | |||
|
218 | # Main options shared with cvsps-2.1 | |||
|
219 | ('b', 'branches', [], _('only return changes on specified branches')), | |||
|
220 | ('p', 'prefix', '', _('prefix to remove from file names')), | |||
|
221 | ('r', 'revisions', [], _('only return changes after or between specified tags')), | |||
|
222 | ('u', 'update-cache', None, _("update cvs log cache")), | |||
|
223 | ('x', 'new-cache', None, _("create new cvs log cache")), | |||
|
224 | ('z', 'fuzz', 60, _('set commit time fuzz in seconds')), | |||
|
225 | ('', 'root', '', _('specify cvsroot')), | |||
|
226 | # Options specific to builtin cvsps | |||
|
227 | ('', 'parents', '', _('show parent changesets')), | |||
|
228 | ('', 'ancestors', '', _('show current changeset in ancestor branches')), | |||
|
229 | # Options that are ignored for compatibility with cvsps-2.1 | |||
|
230 | ('A', 'cvs-direct', None, _('ignored for compatibility')), | |||
|
231 | ], | |||
|
232 | _('hg debugcvsps [OPTION]... [PATH]...')), | |||
203 | } |
|
233 | } |
@@ -228,7 +228,9 b' class commandline(object):' | |||||
228 | except TypeError: |
|
228 | except TypeError: | |
229 | pass |
|
229 | pass | |
230 | cmdline = [util.shellquote(arg) for arg in cmdline] |
|
230 | cmdline = [util.shellquote(arg) for arg in cmdline] | |
231 | cmdline += ['2>', util.nulldev, '<', util.nulldev] |
|
231 | if not self.ui.debugflag: | |
|
232 | cmdline += ['2>', util.nulldev] | |||
|
233 | cmdline += ['<', util.nulldev] | |||
232 | cmdline = ' '.join(cmdline) |
|
234 | cmdline = ' '.join(cmdline) | |
233 | return cmdline |
|
235 | return cmdline | |
234 |
|
236 | |||
@@ -323,7 +325,7 b' class mapfile(dict):' | |||||
323 | self._read() |
|
325 | self._read() | |
324 |
|
326 | |||
325 | def _read(self): |
|
327 | def _read(self): | |
326 |
if self.path |
|
328 | if not self.path: | |
327 | return |
|
329 | return | |
328 | try: |
|
330 | try: | |
329 | fp = open(self.path, 'r') |
|
331 | fp = open(self.path, 'r') |
@@ -206,7 +206,7 b' class converter(object):' | |||||
206 | _('Overriding mapping for author %s, was %s, will be %s\n') |
|
206 | _('Overriding mapping for author %s, was %s, will be %s\n') | |
207 | % (srcauthor, self.authors[srcauthor], dstauthor)) |
|
207 | % (srcauthor, self.authors[srcauthor], dstauthor)) | |
208 | else: |
|
208 | else: | |
209 |
self.ui.debug(_(' |
|
209 | self.ui.debug(_('mapping author %s to %s\n') | |
210 | % (srcauthor, dstauthor)) |
|
210 | % (srcauthor, dstauthor)) | |
211 | self.authors[srcauthor] = dstauthor |
|
211 | self.authors[srcauthor] = dstauthor | |
212 | except IndexError: |
|
212 | except IndexError: |
@@ -144,11 +144,11 b' class convert_cvs(converter_source):' | |||||
144 | if branch == "HEAD": |
|
144 | if branch == "HEAD": | |
145 | branch = "" |
|
145 | branch = "" | |
146 | if branch: |
|
146 | if branch: | |
147 |
latest = |
|
147 | latest = 0 | |
148 | # the last changeset that contains a base |
|
148 | # the last changeset that contains a base | |
149 | # file is our parent |
|
149 | # file is our parent | |
150 | for r in oldrevs: |
|
150 | for r in oldrevs: | |
151 |
latest = max(filerevids.get(r, |
|
151 | latest = max(filerevids.get(r, 0), latest) | |
152 | if latest: |
|
152 | if latest: | |
153 | p = [latest] |
|
153 | p = [latest] | |
154 |
|
154 |
@@ -191,7 +191,13 b' def createlog(ui, directory=None, root="' | |||||
191 | ui.note(_("running %s\n") % (' '.join(cmd))) |
|
191 | ui.note(_("running %s\n") % (' '.join(cmd))) | |
192 | ui.debug(_("prefix=%r directory=%r root=%r\n") % (prefix, directory, root)) |
|
192 | ui.debug(_("prefix=%r directory=%r root=%r\n") % (prefix, directory, root)) | |
193 |
|
193 | |||
194 |
|
|
194 | pfp = util.popen(' '.join(cmd)) | |
|
195 | peek = pfp.readline() | |||
|
196 | while True: | |||
|
197 | line = peek | |||
|
198 | if line == '': | |||
|
199 | break | |||
|
200 | peek = pfp.readline() | |||
195 | if line.endswith('\n'): |
|
201 | if line.endswith('\n'): | |
196 | line = line[:-1] |
|
202 | line = line[:-1] | |
197 | #ui.debug('state=%d line=%r\n' % (state, line)) |
|
203 | #ui.debug('state=%d line=%r\n' % (state, line)) | |
@@ -263,7 +269,7 b' def createlog(ui, directory=None, root="' | |||||
263 | if re_31.match(line): |
|
269 | if re_31.match(line): | |
264 | state = 5 |
|
270 | state = 5 | |
265 | else: |
|
271 | else: | |
266 |
assert not re_32.match(line), _(' |
|
272 | assert not re_32.match(line), _('must have at least some revisions') | |
267 |
|
273 | |||
268 | elif state == 5: |
|
274 | elif state == 5: | |
269 | # expecting revision number and possibly (ignored) lock indication |
|
275 | # expecting revision number and possibly (ignored) lock indication | |
@@ -312,7 +318,7 b' def createlog(ui, directory=None, root="' | |||||
312 | e.branches = [tuple([int(y) for y in x.strip().split('.')]) |
|
318 | e.branches = [tuple([int(y) for y in x.strip().split('.')]) | |
313 | for x in m.group(1).split(';')] |
|
319 | for x in m.group(1).split(';')] | |
314 | state = 8 |
|
320 | state = 8 | |
315 | elif re_31.match(line): |
|
321 | elif re_31.match(line) and re_50.match(peek): | |
316 | state = 5 |
|
322 | state = 5 | |
317 | store = True |
|
323 | store = True | |
318 | elif re_32.match(line): |
|
324 | elif re_32.match(line): | |
@@ -584,3 +590,95 b' def createchangeset(ui, log, fuzz=60, me' | |||||
584 | ui.status(_('%d changeset entries\n') % len(changesets)) |
|
590 | ui.status(_('%d changeset entries\n') % len(changesets)) | |
585 |
|
591 | |||
586 | return changesets |
|
592 | return changesets | |
|
593 | ||||
|
594 | ||||
|
595 | def debugcvsps(ui, *args, **opts): | |||
|
596 | '''Read CVS rlog for current directory or named path in repository, and | |||
|
597 | convert the log to changesets based on matching commit log entries and dates.''' | |||
|
598 | ||||
|
599 | if opts["new_cache"]: | |||
|
600 | cache = "write" | |||
|
601 | elif opts["update_cache"]: | |||
|
602 | cache = "update" | |||
|
603 | else: | |||
|
604 | cache = None | |||
|
605 | ||||
|
606 | revisions = opts["revisions"] | |||
|
607 | ||||
|
608 | try: | |||
|
609 | if args: | |||
|
610 | log = [] | |||
|
611 | for d in args: | |||
|
612 | log += createlog(ui, d, root=opts["root"], cache=cache) | |||
|
613 | else: | |||
|
614 | log = createlog(ui, root=opts["root"], cache=cache) | |||
|
615 | except logerror, e: | |||
|
616 | ui.write("%r\n"%e) | |||
|
617 | return | |||
|
618 | ||||
|
619 | changesets = createchangeset(ui, log, opts["fuzz"]) | |||
|
620 | del log | |||
|
621 | ||||
|
622 | # Print changesets (optionally filtered) | |||
|
623 | ||||
|
624 | off = len(revisions) | |||
|
625 | branches = {} # latest version number in each branch | |||
|
626 | ancestors = {} # parent branch | |||
|
627 | for cs in changesets: | |||
|
628 | ||||
|
629 | if opts["ancestors"]: | |||
|
630 | if cs.branch not in branches and cs.parents and cs.parents[0].id: | |||
|
631 | ancestors[cs.branch] = changesets[cs.parents[0].id-1].branch, cs.parents[0].id | |||
|
632 | branches[cs.branch] = cs.id | |||
|
633 | ||||
|
634 | # limit by branches | |||
|
635 | if opts["branches"] and (cs.branch or 'HEAD') not in opts["branches"]: | |||
|
636 | continue | |||
|
637 | ||||
|
638 | if not off: | |||
|
639 | # Note: trailing spaces on several lines here are needed to have | |||
|
640 | # bug-for-bug compatibility with cvsps. | |||
|
641 | ui.write('---------------------\n') | |||
|
642 | ui.write('PatchSet %d \n' % cs.id) | |||
|
643 | ui.write('Date: %s\n' % util.datestr(cs.date, '%Y/%m/%d %H:%M:%S %1%2')) | |||
|
644 | ui.write('Author: %s\n' % cs.author) | |||
|
645 | ui.write('Branch: %s\n' % (cs.branch or 'HEAD')) | |||
|
646 | ui.write('Tag%s: %s \n' % (['', 's'][len(cs.tags)>1], | |||
|
647 | ','.join(cs.tags) or '(none)')) | |||
|
648 | if opts["parents"] and cs.parents: | |||
|
649 | if len(cs.parents)>1: | |||
|
650 | ui.write('Parents: %s\n' % (','.join([str(p.id) for p in cs.parents]))) | |||
|
651 | else: | |||
|
652 | ui.write('Parent: %d\n' % cs.parents[0].id) | |||
|
653 | ||||
|
654 | if opts["ancestors"]: | |||
|
655 | b = cs.branch | |||
|
656 | r = [] | |||
|
657 | while b: | |||
|
658 | b, c = ancestors[b] | |||
|
659 | r.append('%s:%d:%d' % (b or "HEAD", c, branches[b])) | |||
|
660 | if r: | |||
|
661 | ui.write('Ancestors: %s\n' % (','.join(r))) | |||
|
662 | ||||
|
663 | ui.write('Log:\n') | |||
|
664 | ui.write('%s\n\n' % cs.comment) | |||
|
665 | ui.write('Members: \n') | |||
|
666 | for f in cs.entries: | |||
|
667 | fn = f.file | |||
|
668 | if fn.startswith(opts["prefix"]): | |||
|
669 | fn = fn[len(opts["prefix"]):] | |||
|
670 | ui.write('\t%s:%s->%s%s \n' % (fn, '.'.join([str(x) for x in f.parent]) or 'INITIAL', | |||
|
671 | '.'.join([str(x) for x in f.revision]), ['', '(DEAD)'][f.dead])) | |||
|
672 | ui.write('\n') | |||
|
673 | ||||
|
674 | # have we seen the start tag? | |||
|
675 | if revisions and off: | |||
|
676 | if revisions[0] == str(cs.id) or \ | |||
|
677 | revisions[0] in cs.tags: | |||
|
678 | off = False | |||
|
679 | ||||
|
680 | # see if we reached the end tag | |||
|
681 | if len(revisions)>1 and not off: | |||
|
682 | if revisions[1] == str(cs.id) or \ | |||
|
683 | revisions[1] in cs.tags: | |||
|
684 | break |
@@ -32,7 +32,7 b' class darcs_source(converter_source, com' | |||||
32 | if ElementTree is None: |
|
32 | if ElementTree is None: | |
33 | raise util.Abort(_("Python ElementTree module is not available")) |
|
33 | raise util.Abort(_("Python ElementTree module is not available")) | |
34 |
|
34 | |||
35 |
if not os.path.exists(os.path.join(path, '_darcs', 'inventor |
|
35 | if not os.path.exists(os.path.join(path, '_darcs', 'inventories')): | |
36 | raise NoRepo("%s does not look like a darcs repo" % path) |
|
36 | raise NoRepo("%s does not look like a darcs repo" % path) | |
37 |
|
37 | |||
38 | self.path = os.path.realpath(path) |
|
38 | self.path = os.path.realpath(path) |
@@ -3,7 +3,8 b'' | |||||
3 | from common import NoRepo, commandline, commit, converter_source |
|
3 | from common import NoRepo, commandline, commit, converter_source | |
4 | from mercurial.i18n import _ |
|
4 | from mercurial.i18n import _ | |
5 | from mercurial import util |
|
5 | from mercurial import util | |
6 | import os, shutil, tempfile, stat |
|
6 | import os, shutil, tempfile, stat, locale | |
|
7 | from email.Parser import Parser | |||
7 |
|
8 | |||
8 | class gnuarch_source(converter_source, commandline): |
|
9 | class gnuarch_source(converter_source, commandline): | |
9 |
|
10 | |||
@@ -13,6 +14,7 b' class gnuarch_source(converter_source, c' | |||||
13 | self.summary = '' |
|
14 | self.summary = '' | |
14 | self.date = None |
|
15 | self.date = None | |
15 | self.author = '' |
|
16 | self.author = '' | |
|
17 | self.continuationof = None | |||
16 | self.add_files = [] |
|
18 | self.add_files = [] | |
17 | self.mod_files = [] |
|
19 | self.mod_files = [] | |
18 | self.del_files = [] |
|
20 | self.del_files = [] | |
@@ -46,38 +48,74 b' class gnuarch_source(converter_source, c' | |||||
46 | self.parents = {} |
|
48 | self.parents = {} | |
47 | self.tags = {} |
|
49 | self.tags = {} | |
48 | self.modecache = {} |
|
50 | self.modecache = {} | |
|
51 | self.catlogparser = Parser() | |||
|
52 | self.locale = locale.getpreferredencoding() | |||
|
53 | self.archives = [] | |||
49 |
|
54 | |||
50 | def before(self): |
|
55 | def before(self): | |
|
56 | # Get registered archives | |||
|
57 | self.archives = [i.rstrip('\n') | |||
|
58 | for i in self.runlines0('archives', '-n')] | |||
|
59 | ||||
51 | if self.execmd == 'tla': |
|
60 | if self.execmd == 'tla': | |
52 | output = self.run0('tree-version', self.path) |
|
61 | output = self.run0('tree-version', self.path) | |
53 | else: |
|
62 | else: | |
54 | output = self.run0('tree-version', '-d', self.path) |
|
63 | output = self.run0('tree-version', '-d', self.path) | |
55 | self.treeversion = output.strip() |
|
64 | self.treeversion = output.strip() | |
56 |
|
65 | |||
57 | self.ui.status(_('analyzing tree version %s...\n') % self.treeversion) |
|
|||
58 |
|
||||
59 | # Get name of temporary directory |
|
66 | # Get name of temporary directory | |
60 | version = self.treeversion.split('/') |
|
67 | version = self.treeversion.split('/') | |
61 | self.tmppath = os.path.join(tempfile.gettempdir(), |
|
68 | self.tmppath = os.path.join(tempfile.gettempdir(), | |
62 | 'hg-%s' % version[1]) |
|
69 | 'hg-%s' % version[1]) | |
63 |
|
70 | |||
64 | # Generate parents dictionary |
|
71 | # Generate parents dictionary | |
65 | child = [] |
|
72 | self.parents[None] = [] | |
66 |
|
|
73 | treeversion = self.treeversion | |
67 | self.checkexit(status, 'archive registered?') |
|
74 | child = None | |
68 | for l in output: |
|
75 | while treeversion: | |
69 | rev = l.strip() |
|
76 | self.ui.status(_('analyzing tree version %s...\n') % treeversion) | |
70 | self.changes[rev] = self.gnuarch_rev(rev) |
|
77 | ||
|
78 | archive = treeversion.split('/')[0] | |||
|
79 | if archive not in self.archives: | |||
|
80 | self.ui.status(_('tree analysis stopped because it points to an unregistered archive %s...\n') % archive) | |||
|
81 | break | |||
|
82 | ||||
|
83 | # Get the complete list of revisions for that tree version | |||
|
84 | output, status = self.runlines('revisions', '-r', '-f', treeversion) | |||
|
85 | self.checkexit(status, 'failed retrieveing revisions for %s' % treeversion) | |||
|
86 | ||||
|
87 | # No new iteration unless a revision has a continuation-of header | |||
|
88 | treeversion = None | |||
|
89 | ||||
|
90 | for l in output: | |||
|
91 | rev = l.strip() | |||
|
92 | self.changes[rev] = self.gnuarch_rev(rev) | |||
|
93 | self.parents[rev] = [] | |||
71 |
|
94 | |||
72 | # Read author, date and summary |
|
95 | # Read author, date and summary | |
73 |
catlog = self.run |
|
96 | catlog, status = self.run('cat-log', '-d', self.path, rev) | |
74 | self._parsecatlog(catlog, rev) |
|
97 | if status: | |
|
98 | catlog = self.run0('cat-archive-log', rev) | |||
|
99 | self._parsecatlog(catlog, rev) | |||
|
100 | ||||
|
101 | # Populate the parents map | |||
|
102 | self.parents[child].append(rev) | |||
75 |
|
103 | |||
76 | self.parents[rev] = child |
|
104 | # Keep track of the current revision as the child of the next | |
77 | child = [rev] |
|
105 | # revision scanned | |
78 | if rev == self.rev: |
|
106 | child = rev | |
79 | break |
|
107 | ||
80 | self.parents[None] = child |
|
108 | # Check if we have to follow the usual incremental history | |
|
109 | # or if we have to 'jump' to a different treeversion given | |||
|
110 | # by the continuation-of header. | |||
|
111 | if self.changes[rev].continuationof: | |||
|
112 | treeversion = '--'.join(self.changes[rev].continuationof.split('--')[:-1]) | |||
|
113 | break | |||
|
114 | ||||
|
115 | # If we reached a base-0 revision w/o any continuation-of | |||
|
116 | # header, it means the tree history ends here. | |||
|
117 | if rev[-6:] == 'base-0': | |||
|
118 | break | |||
81 |
|
119 | |||
82 | def after(self): |
|
120 | def after(self): | |
83 | self.ui.debug(_('cleaning up %s\n') % self.tmppath) |
|
121 | self.ui.debug(_('cleaning up %s\n') % self.tmppath) | |
@@ -135,7 +173,7 b' class gnuarch_source(converter_source, c' | |||||
135 | def getcommit(self, rev): |
|
173 | def getcommit(self, rev): | |
136 | changes = self.changes[rev] |
|
174 | changes = self.changes[rev] | |
137 | return commit(author = changes.author, date = changes.date, |
|
175 | return commit(author = changes.author, date = changes.date, | |
138 | desc = changes.summary, parents = self.parents[rev]) |
|
176 | desc = changes.summary, parents = self.parents[rev], rev=rev) | |
139 |
|
177 | |||
140 | def gettags(self): |
|
178 | def gettags(self): | |
141 | return self.tags |
|
179 | return self.tags | |
@@ -150,26 +188,19 b' class gnuarch_source(converter_source, c' | |||||
150 | return os.system(cmdline) |
|
188 | return os.system(cmdline) | |
151 |
|
189 | |||
152 | def _update(self, rev): |
|
190 | def _update(self, rev): | |
153 | if rev == 'base-0': |
|
191 | self.ui.debug(_('applying revision %s...\n') % rev) | |
154 | # Initialise 'base-0' revision |
|
192 | changeset, status = self.runlines('replay', '-d', self.tmppath, | |
|
193 | rev) | |||
|
194 | if status: | |||
|
195 | # Something went wrong while merging (baz or tla | |||
|
196 | # issue?), get latest revision and try from there | |||
|
197 | shutil.rmtree(self.tmppath, ignore_errors=True) | |||
155 | self._obtainrevision(rev) |
|
198 | self._obtainrevision(rev) | |
156 | else: |
|
199 | else: | |
157 | self.ui.debug(_('applying revision %s...\n') % rev) |
|
200 | old_rev = self.parents[rev][0] | |
158 | revision = '%s--%s' % (self.treeversion, rev) |
|
201 | self.ui.debug(_('computing changeset between %s and %s...\n') | |
159 | changeset, status = self.runlines('replay', '-d', self.tmppath, |
|
202 | % (old_rev, rev)) | |
160 | revision) |
|
203 | self._parsechangeset(changeset, rev) | |
161 | if status: |
|
|||
162 | # Something went wrong while merging (baz or tla |
|
|||
163 | # issue?), get latest revision and try from there |
|
|||
164 | shutil.rmtree(self.tmppath, ignore_errors=True) |
|
|||
165 | self._obtainrevision(rev) |
|
|||
166 | else: |
|
|||
167 | old_rev = self.parents[rev][0] |
|
|||
168 | self.ui.debug(_('computing changeset between %s and %s...\n') |
|
|||
169 | % (old_rev, rev)) |
|
|||
170 | rev_a = '%s--%s' % (self.treeversion, old_rev) |
|
|||
171 | rev_b = '%s--%s' % (self.treeversion, rev) |
|
|||
172 | self._parsechangeset(changeset, rev) |
|
|||
173 |
|
204 | |||
174 | def _getfile(self, name, rev): |
|
205 | def _getfile(self, name, rev): | |
175 | mode = os.lstat(os.path.join(self.tmppath, name)).st_mode |
|
206 | mode = os.lstat(os.path.join(self.tmppath, name)).st_mode | |
@@ -217,8 +248,7 b' class gnuarch_source(converter_source, c' | |||||
217 |
|
248 | |||
218 | def _obtainrevision(self, rev): |
|
249 | def _obtainrevision(self, rev): | |
219 | self.ui.debug(_('obtaining revision %s...\n') % rev) |
|
250 | self.ui.debug(_('obtaining revision %s...\n') % rev) | |
220 | revision = '%s--%s' % (self.treeversion, rev) |
|
251 | output = self._execute('get', rev, self.tmppath) | |
221 | output = self._execute('get', revision, self.tmppath) |
|
|||
222 | self.checkexit(output) |
|
252 | self.checkexit(output) | |
223 | self.ui.debug(_('analysing revision %s...\n') % rev) |
|
253 | self.ui.debug(_('analysing revision %s...\n') % rev) | |
224 | files = self._readcontents(self.tmppath) |
|
254 | files = self._readcontents(self.tmppath) | |
@@ -230,20 +260,27 b' class gnuarch_source(converter_source, c' | |||||
230 | return path |
|
260 | return path | |
231 |
|
261 | |||
232 | def _parsecatlog(self, data, rev): |
|
262 | def _parsecatlog(self, data, rev): | |
233 |
|
|
263 | try: | |
234 | for l in data: |
|
264 | catlog = self.catlogparser.parsestr(data) | |
235 | l = l.strip() |
|
265 | ||
236 |
|
|
266 | # Commit date | |
237 | summary.append(l) |
|
267 | self.changes[rev].date = util.datestr( | |
238 | elif l.startswith('Summary:'): |
|
268 | util.strdate(catlog['Standard-date'], | |
239 | summary.append(l[len('Summary: '):]) |
|
269 | '%Y-%m-%d %H:%M:%S')) | |
240 | elif l.startswith('Standard-date:'): |
|
270 | ||
241 | date = l[len('Standard-date: '):] |
|
271 | # Commit author | |
242 | strdate = util.strdate(date, '%Y-%m-%d %H:%M:%S') |
|
272 | self.changes[rev].author = self.recode(catlog['Creator']) | |
243 | self.changes[rev].date = util.datestr(strdate) |
|
273 | ||
244 | elif l.startswith('Creator:'): |
|
274 | # Commit description | |
245 |
|
|
275 | self.changes[rev].summary = '\n\n'.join((catlog['Summary'], | |
246 | self.changes[rev].summary = '\n'.join(summary) |
|
276 | catlog.get_payload())) | |
|
277 | self.changes[rev].summary = self.recode(self.changes[rev].summary) | |||
|
278 | ||||
|
279 | # Commit revision origin when dealing with a branch or tag | |||
|
280 | if catlog.has_key('Continuation-of'): | |||
|
281 | self.changes[rev].continuationof = self.recode(catlog['Continuation-of']) | |||
|
282 | except Exception, err: | |||
|
283 | raise util.Abort(_('could not parse cat-log of %s') % rev) | |||
247 |
|
284 | |||
248 | def _parsechangeset(self, data, rev): |
|
285 | def _parsechangeset(self, data, rev): | |
249 | for l in data: |
|
286 | for l in data: |
@@ -15,9 +15,8 b'' | |||||
15 |
|
15 | |||
16 | import os, time |
|
16 | import os, time | |
17 | from mercurial.i18n import _ |
|
17 | from mercurial.i18n import _ | |
18 | from mercurial.repo import RepoError |
|
|||
19 | from mercurial.node import bin, hex, nullid |
|
18 | from mercurial.node import bin, hex, nullid | |
20 |
from mercurial import hg, |
|
19 | from mercurial import hg, util, context, error | |
21 |
|
20 | |||
22 | from common import NoRepo, commit, converter_source, converter_sink |
|
21 | from common import NoRepo, commit, converter_source, converter_sink | |
23 |
|
22 | |||
@@ -33,7 +32,7 b' class mercurial_sink(converter_sink):' | |||||
33 | self.repo = hg.repository(self.ui, path) |
|
32 | self.repo = hg.repository(self.ui, path) | |
34 | if not self.repo.local(): |
|
33 | if not self.repo.local(): | |
35 | raise NoRepo(_('%s is not a local Mercurial repo') % path) |
|
34 | raise NoRepo(_('%s is not a local Mercurial repo') % path) | |
36 | except RepoError, err: |
|
35 | except error.RepoError, err: | |
37 | ui.print_exc() |
|
36 | ui.print_exc() | |
38 | raise NoRepo(err.args[0]) |
|
37 | raise NoRepo(err.args[0]) | |
39 | else: |
|
38 | else: | |
@@ -43,7 +42,7 b' class mercurial_sink(converter_sink):' | |||||
43 | if not self.repo.local(): |
|
42 | if not self.repo.local(): | |
44 | raise NoRepo(_('%s is not a local Mercurial repo') % path) |
|
43 | raise NoRepo(_('%s is not a local Mercurial repo') % path) | |
45 | self.created.append(path) |
|
44 | self.created.append(path) | |
46 | except RepoError, err: |
|
45 | except error.RepoError, err: | |
47 | ui.print_exc() |
|
46 | ui.print_exc() | |
48 | raise NoRepo("could not create hg repo %s as sink" % path) |
|
47 | raise NoRepo("could not create hg repo %s as sink" % path) | |
49 | self.lock = None |
|
48 | self.lock = None | |
@@ -159,7 +158,7 b' class mercurial_sink(converter_sink):' | |||||
159 | try: |
|
158 | try: | |
160 | parentctx = self.repo[self.tagsbranch] |
|
159 | parentctx = self.repo[self.tagsbranch] | |
161 | tagparent = parentctx.node() |
|
160 | tagparent = parentctx.node() | |
162 | except RepoError, inst: |
|
161 | except error.RepoError, inst: | |
163 | parentctx = None |
|
162 | parentctx = None | |
164 | tagparent = nullid |
|
163 | tagparent = nullid | |
165 |
|
164 | |||
@@ -200,8 +199,8 b' class mercurial_source(converter_source)' | |||||
200 | # try to provoke an exception if this isn't really a hg |
|
199 | # try to provoke an exception if this isn't really a hg | |
201 | # repo, but some other bogus compatible-looking url |
|
200 | # repo, but some other bogus compatible-looking url | |
202 | if not self.repo.local(): |
|
201 | if not self.repo.local(): | |
203 | raise RepoError() |
|
202 | raise error.RepoError() | |
204 | except RepoError: |
|
203 | except error.RepoError: | |
205 | ui.print_exc() |
|
204 | ui.print_exc() | |
206 | raise NoRepo("%s is not a local Mercurial repo" % path) |
|
205 | raise NoRepo("%s is not a local Mercurial repo" % path) | |
207 | self.lastrev = None |
|
206 | self.lastrev = None | |
@@ -213,7 +212,7 b' class mercurial_source(converter_source)' | |||||
213 | if startnode is not None: |
|
212 | if startnode is not None: | |
214 | try: |
|
213 | try: | |
215 | startnode = self.repo.lookup(startnode) |
|
214 | startnode = self.repo.lookup(startnode) | |
216 |
except r |
|
215 | except error.RepoError: | |
217 | raise util.Abort(_('%s is not a valid start revision') |
|
216 | raise util.Abort(_('%s is not a valid start revision') | |
218 | % startnode) |
|
217 | % startnode) | |
219 | startrev = self.repo.changelog.rev(startnode) |
|
218 | startrev = self.repo.changelog.rev(startnode) | |
@@ -244,7 +243,7 b' class mercurial_source(converter_source)' | |||||
244 | def getfile(self, name, rev): |
|
243 | def getfile(self, name, rev): | |
245 | try: |
|
244 | try: | |
246 | return self.changectx(rev)[name].data() |
|
245 | return self.changectx(rev)[name].data() | |
247 |
except |
|
246 | except error.LookupError, err: | |
248 | raise IOError(err) |
|
247 | raise IOError(err) | |
249 |
|
248 | |||
250 | def getmode(self, name, rev): |
|
249 | def getmode(self, name, rev): | |
@@ -283,7 +282,7 b' class mercurial_source(converter_source)' | |||||
283 | copies[name] = copysource |
|
282 | copies[name] = copysource | |
284 | except TypeError: |
|
283 | except TypeError: | |
285 | pass |
|
284 | pass | |
286 |
except |
|
285 | except error.LookupError, e: | |
287 | if not self.ignoreerrors: |
|
286 | if not self.ignoreerrors: | |
288 | raise |
|
287 | raise | |
289 | self.ignored[name] = 1 |
|
288 | self.ignored[name] = 1 |
@@ -601,7 +601,7 b' class svn_source(converter_source):' | |||||
601 | part = "/".join(parts[:i]) |
|
601 | part = "/".join(parts[:i]) | |
602 | info = part, copyfrom.get(part, None) |
|
602 | info = part, copyfrom.get(part, None) | |
603 | if info[1] is not None: |
|
603 | if info[1] is not None: | |
604 |
self.ui.debug(_(" |
|
604 | self.ui.debug(_("found parent directory %s\n") % info[1]) | |
605 | rc = info |
|
605 | rc = info | |
606 | return rc |
|
606 | return rc | |
607 |
|
607 | |||
@@ -616,7 +616,7 b' class svn_source(converter_source):' | |||||
616 | self.ui.debug(entrypath[len(frompath):] + '\n') |
|
616 | self.ui.debug(entrypath[len(frompath):] + '\n') | |
617 | entrypath = froment.copyfrom_path + entrypath[len(frompath):] |
|
617 | entrypath = froment.copyfrom_path + entrypath[len(frompath):] | |
618 | fromrev = froment.copyfrom_rev |
|
618 | fromrev = froment.copyfrom_rev | |
619 |
self.ui.debug(_(" |
|
619 | self.ui.debug(_("info: %s %s %s %s\n") % (frompath, froment, ent, entrypath)) | |
620 |
|
620 | |||
621 | # We can avoid the reparent calls if the module has not changed |
|
621 | # We can avoid the reparent calls if the module has not changed | |
622 | # but it probably does not worth the pain. |
|
622 | # but it probably does not worth the pain. | |
@@ -757,7 +757,7 b' class svn_source(converter_source):' | |||||
757 | self.ui.note(_('found parent of branch %s at %d: %s\n') % |
|
757 | self.ui.note(_('found parent of branch %s at %d: %s\n') % | |
758 | (self.module, prevnum, prevmodule)) |
|
758 | (self.module, prevnum, prevmodule)) | |
759 | else: |
|
759 | else: | |
760 |
self.ui.debug(_(" |
|
760 | self.ui.debug(_("no copyfrom path, don't know what to do.\n")) | |
761 |
|
761 | |||
762 | paths = [] |
|
762 | paths = [] | |
763 | # filter out unrelated paths |
|
763 | # filter out unrelated paths |
@@ -80,9 +80,7 b' def snapshot_wdir(ui, repo, files, tmpro' | |||||
80 | '''snapshot files from working directory. |
|
80 | '''snapshot files from working directory. | |
81 | if not using snapshot, -I/-X does not work and recursive diff |
|
81 | if not using snapshot, -I/-X does not work and recursive diff | |
82 | in tools like kdiff3 and meld displays too many files.''' |
|
82 | in tools like kdiff3 and meld displays too many files.''' | |
83 | repo_root = repo.root |
|
83 | dirname = os.path.basename(repo.root) | |
84 |
|
||||
85 | dirname = os.path.basename(repo_root) |
|
|||
86 | if dirname == "": |
|
84 | if dirname == "": | |
87 | dirname = "root" |
|
85 | dirname = "root" | |
88 | base = os.path.join(tmproot, dirname) |
|
86 | base = os.path.join(tmproot, dirname) | |
@@ -105,8 +103,7 b' def snapshot_wdir(ui, repo, files, tmpro' | |||||
105 | fp.write(chunk) |
|
103 | fp.write(chunk) | |
106 | fp.close() |
|
104 | fp.close() | |
107 |
|
105 | |||
108 |
fns_and_mtime.append((dest, os.path. |
|
106 | fns_and_mtime.append((dest, repo.wjoin(fn), os.path.getmtime(dest))) | |
109 | os.path.getmtime(dest))) |
|
|||
110 |
|
107 | |||
111 |
|
108 | |||
112 | return dirname, fns_and_mtime |
|
109 | return dirname, fns_and_mtime | |
@@ -120,7 +117,19 b' def dodiff(ui, repo, diffcmd, diffopts, ' | |||||
120 | another one and more than 1 file is changed |
|
117 | another one and more than 1 file is changed | |
121 | - just invoke the diff for a single file in the working dir |
|
118 | - just invoke the diff for a single file in the working dir | |
122 | ''' |
|
119 | ''' | |
123 | node1, node2 = cmdutil.revpair(repo, opts['rev']) |
|
120 | ||
|
121 | revs = opts.get('rev') | |||
|
122 | change = opts.get('change') | |||
|
123 | ||||
|
124 | if revs and change: | |||
|
125 | msg = _('cannot specify --rev and --change at the same time') | |||
|
126 | raise util.Abort(msg) | |||
|
127 | elif change: | |||
|
128 | node2 = repo.lookup(change) | |||
|
129 | node1 = repo[node2].parents()[0].node() | |||
|
130 | else: | |||
|
131 | node1, node2 = cmdutil.revpair(repo, revs) | |||
|
132 | ||||
124 | matcher = cmdutil.match(repo, pats, opts) |
|
133 | matcher = cmdutil.match(repo, pats, opts) | |
125 | modified, added, removed = repo.status(node1, node2, matcher)[:3] |
|
134 | modified, added, removed = repo.status(node1, node2, matcher)[:3] | |
126 | if not (modified or added or removed): |
|
135 | if not (modified or added or removed): | |
@@ -169,7 +178,7 b' def dodiff(ui, repo, diffcmd, diffopts, ' | |||||
169 |
|
178 | |||
170 | for copy_fn, working_fn, mtime in fns_and_mtime: |
|
179 | for copy_fn, working_fn, mtime in fns_and_mtime: | |
171 | if os.path.getmtime(copy_fn) != mtime: |
|
180 | if os.path.getmtime(copy_fn) != mtime: | |
172 |
ui.debug(_(' |
|
181 | ui.debug(_('file changed while diffing. ' | |
173 | 'Overwriting: %s (src: %s)\n') % (working_fn, copy_fn)) |
|
182 | 'Overwriting: %s (src: %s)\n') % (working_fn, copy_fn)) | |
174 | util.copyfile(copy_fn, working_fn) |
|
183 | util.copyfile(copy_fn, working_fn) | |
175 |
|
184 | |||
@@ -208,6 +217,7 b' cmdtable = {' | |||||
208 | [('p', 'program', '', _('comparison program to run')), |
|
217 | [('p', 'program', '', _('comparison program to run')), | |
209 | ('o', 'option', [], _('pass option to comparison program')), |
|
218 | ('o', 'option', [], _('pass option to comparison program')), | |
210 | ('r', 'rev', [], _('revision')), |
|
219 | ('r', 'rev', [], _('revision')), | |
|
220 | ('c', 'change', '', _('change made by revision')), | |||
211 | ] + commands.walkopts, |
|
221 | ] + commands.walkopts, | |
212 | _('hg extdiff [OPT]... [FILE]...')), |
|
222 | _('hg extdiff [OPT]... [FILE]...')), | |
213 | } |
|
223 | } |
@@ -11,7 +11,7 b' from mercurial.node import nullid, short' | |||||
11 | from mercurial import commands, cmdutil, hg, util, url |
|
11 | from mercurial import commands, cmdutil, hg, util, url | |
12 |
|
12 | |||
13 | def fetch(ui, repo, source='default', **opts): |
|
13 | def fetch(ui, repo, source='default', **opts): | |
14 |
''' |
|
14 | '''pull changes from a remote repository, merge new changes if needed. | |
15 |
|
15 | |||
16 | This finds all changes from the repository at the specified path |
|
16 | This finds all changes from the repository at the specified path | |
17 | or URL and adds them to the local repository. |
|
17 | or URL and adds them to the local repository. |
@@ -17,9 +17,8 b' from mercurial.cmdutil import revrange, ' | |||||
17 | from mercurial.commands import templateopts, logopts, remoteopts |
|
17 | from mercurial.commands import templateopts, logopts, remoteopts | |
18 | from mercurial.i18n import _ |
|
18 | from mercurial.i18n import _ | |
19 | from mercurial.node import nullrev |
|
19 | from mercurial.node import nullrev | |
20 | from mercurial.util import Abort, canonpath |
|
|||
21 | from mercurial import bundlerepo, changegroup, cmdutil, commands, extensions |
|
20 | from mercurial import bundlerepo, changegroup, cmdutil, commands, extensions | |
22 | from mercurial import hg, ui, url |
|
21 | from mercurial import hg, ui, url, util | |
23 |
|
22 | |||
24 | def revisions(repo, start, stop): |
|
23 | def revisions(repo, start, stop): | |
25 | """cset DAG generator yielding (rev, node, [parents]) tuples |
|
24 | """cset DAG generator yielding (rev, node, [parents]) tuples | |
@@ -245,18 +244,6 b' def ascii(ui, grapher):' | |||||
245 | prev_node_index = node_index |
|
244 | prev_node_index = node_index | |
246 | prev_n_columns_diff = n_columns_diff |
|
245 | prev_n_columns_diff = n_columns_diff | |
247 |
|
246 | |||
248 | def get_limit(limit_opt): |
|
|||
249 | if limit_opt: |
|
|||
250 | try: |
|
|||
251 | limit = int(limit_opt) |
|
|||
252 | except ValueError: |
|
|||
253 | raise Abort(_("limit must be a positive integer")) |
|
|||
254 | if limit <= 0: |
|
|||
255 | raise Abort(_("limit must be positive")) |
|
|||
256 | else: |
|
|||
257 | limit = sys.maxint |
|
|||
258 | return limit |
|
|||
259 |
|
||||
260 | def get_revs(repo, rev_opt): |
|
247 | def get_revs(repo, rev_opt): | |
261 | if rev_opt: |
|
248 | if rev_opt: | |
262 | revs = revrange(repo, rev_opt) |
|
249 | revs = revrange(repo, rev_opt) | |
@@ -269,8 +256,7 b' def check_unsupported_flags(opts):' | |||||
269 | "only_merges", "user", "only_branch", "prune", "newest_first", |
|
256 | "only_merges", "user", "only_branch", "prune", "newest_first", | |
270 | "no_merges", "include", "exclude"]: |
|
257 | "no_merges", "include", "exclude"]: | |
271 | if op in opts and opts[op]: |
|
258 | if op in opts and opts[op]: | |
272 | raise Abort(_("--graph option is incompatible with --%s") % op) |
|
259 | raise util.Abort(_("--graph option is incompatible with --%s") % op) | |
273 |
|
||||
274 |
|
260 | |||
275 | def graphlog(ui, repo, path=None, **opts): |
|
261 | def graphlog(ui, repo, path=None, **opts): | |
276 | """show revision history alongside an ASCII revision graph |
|
262 | """show revision history alongside an ASCII revision graph | |
@@ -283,39 +269,56 b' def graphlog(ui, repo, path=None, **opts' | |||||
283 | """ |
|
269 | """ | |
284 |
|
270 | |||
285 | check_unsupported_flags(opts) |
|
271 | check_unsupported_flags(opts) | |
286 |
limit = g |
|
272 | limit = cmdutil.loglimit(opts) | |
287 | start, stop = get_revs(repo, opts["rev"]) |
|
273 | start, stop = get_revs(repo, opts["rev"]) | |
288 | stop = max(stop, start - limit + 1) |
|
274 | stop = max(stop, start - limit + 1) | |
289 | if start == nullrev: |
|
275 | if start == nullrev: | |
290 | return |
|
276 | return | |
291 |
|
277 | |||
292 | if path: |
|
278 | if path: | |
293 | path = canonpath(repo.root, os.getcwd(), path) |
|
279 | path = util.canonpath(repo.root, os.getcwd(), path) | |
294 | if path: # could be reset in canonpath |
|
280 | if path: # could be reset in canonpath | |
295 | revdag = filerevs(repo, path, start, stop) |
|
281 | revdag = filerevs(repo, path, start, stop) | |
296 | else: |
|
282 | else: | |
297 | revdag = revisions(repo, start, stop) |
|
283 | revdag = revisions(repo, start, stop) | |
298 |
|
284 | |||
299 | repo_parents = repo.dirstate.parents() |
|
285 | graphdag = graphabledag(ui, repo, revdag, opts) | |
|
286 | ascii(ui, grapher(graphdag)) | |||
|
287 | ||||
|
288 | def graphrevs(repo, nodes, opts): | |||
|
289 | nodes.reverse() | |||
|
290 | include = util.set(nodes) | |||
|
291 | limit = cmdutil.loglimit(opts) | |||
|
292 | count = 0 | |||
|
293 | for node in nodes: | |||
|
294 | if count >= limit: | |||
|
295 | break | |||
|
296 | ctx = repo[node] | |||
|
297 | parents = [p.rev() for p in ctx.parents() if p.node() in include] | |||
|
298 | parents.sort() | |||
|
299 | yield (ctx, parents) | |||
|
300 | count += 1 | |||
|
301 | ||||
|
302 | def graphabledag(ui, repo, revdag, opts): | |||
|
303 | showparents = [ctx.node() for ctx in repo[None].parents()] | |||
300 | displayer = show_changeset(ui, repo, opts, buffered=True) |
|
304 | displayer = show_changeset(ui, repo, opts, buffered=True) | |
301 | def graphabledag(): |
|
305 | for (ctx, parents) in revdag: | |
302 | for (ctx, parents) in revdag: |
|
306 | displayer.show(ctx) | |
303 | # log_strings is the list of all log strings to draw alongside |
|
307 | lines = displayer.hunk.pop(ctx.rev()).split('\n')[:-1] | |
304 | # the graph. |
|
308 | char = ctx.node() in showparents and '@' or 'o' | |
305 | displayer.show(ctx) |
|
309 | yield (ctx.rev(), parents, char, lines) | |
306 | lines = displayer.hunk.pop(ctx.rev()).split("\n")[:-1] |
|
310 | ||
307 | char = ctx.node() in repo_parents and '@' or 'o' |
|
311 | def goutgoing(ui, repo, dest=None, **opts): | |
308 | yield (ctx.rev(), parents, char, lines) |
|
312 | """show the outgoing changesets alongside an ASCII revision graph | |
309 |
|
|
313 | ||
310 | ascii(ui, grapher(graphabledag())) |
|
314 | Print the outgoing changesets alongside a revision graph drawn with | |
311 |
|
315 | ASCII characters. | ||
312 | def outgoing_revs(ui, repo, dest, opts): |
|
|||
313 | """cset DAG generator yielding (node, [parents]) tuples |
|
|||
314 |
|
316 | |||
315 | This generator function walks through the revisions not found |
|
317 | Nodes printed as an @ character are parents of the working | |
316 | in the destination |
|
318 | directory. | |
317 | """ |
|
319 | """ | |
318 | limit = cmdutil.loglimit(opts) |
|
320 | ||
|
321 | check_unsupported_flags(opts) | |||
319 | dest, revs, checkout = hg.parseurl( |
|
322 | dest, revs, checkout = hg.parseurl( | |
320 | ui.expandpath(dest or 'default-push', dest or 'default'), |
|
323 | ui.expandpath(dest or 'default-push', dest or 'default'), | |
321 | opts.get('rev')) |
|
324 | opts.get('rev')) | |
@@ -328,65 +331,11 b' def outgoing_revs(ui, repo, dest, opts):' | |||||
328 | if not o: |
|
331 | if not o: | |
329 | ui.status(_("no changes found\n")) |
|
332 | ui.status(_("no changes found\n")) | |
330 | return |
|
333 | return | |
|
334 | ||||
331 | o = repo.changelog.nodesbetween(o, revs)[0] |
|
335 | o = repo.changelog.nodesbetween(o, revs)[0] | |
332 | o.reverse() |
|
336 | revdag = graphrevs(repo, o, opts) | |
333 | revdict = {} |
|
337 | graphdag = graphabledag(ui, repo, revdag, opts) | |
334 | for n in o: |
|
338 | ascii(ui, grapher(graphdag)) | |
335 | revdict[repo.changectx(n).rev()]=True |
|
|||
336 | count = 0 |
|
|||
337 | for n in o: |
|
|||
338 | if count >= limit: |
|
|||
339 | break |
|
|||
340 | ctx = repo.changectx(n) |
|
|||
341 | parents = [p.rev() for p in ctx.parents() if p.rev() in revdict] |
|
|||
342 | parents.sort() |
|
|||
343 | yield (ctx, parents) |
|
|||
344 | count += 1 |
|
|||
345 |
|
||||
346 | def goutgoing(ui, repo, dest=None, **opts): |
|
|||
347 | """show the outgoing changesets alongside an ASCII revision graph |
|
|||
348 |
|
||||
349 | Print the outgoing changesets alongside a revision graph drawn with |
|
|||
350 | ASCII characters. |
|
|||
351 |
|
||||
352 | Nodes printed as an @ character are parents of the working |
|
|||
353 | directory. |
|
|||
354 | """ |
|
|||
355 | check_unsupported_flags(opts) |
|
|||
356 | revdag = outgoing_revs(ui, repo, dest, opts) |
|
|||
357 | repo_parents = repo.dirstate.parents() |
|
|||
358 | displayer = show_changeset(ui, repo, opts, buffered=True) |
|
|||
359 | def graphabledag(): |
|
|||
360 | for (ctx, parents) in revdag: |
|
|||
361 | # log_strings is the list of all log strings to draw alongside |
|
|||
362 | # the graph. |
|
|||
363 | displayer.show(ctx) |
|
|||
364 | lines = displayer.hunk.pop(ctx.rev()).split("\n")[:-1] |
|
|||
365 | char = ctx.node() in repo_parents and '@' or 'o' |
|
|||
366 | yield (ctx.rev(), parents, char, lines) |
|
|||
367 |
|
||||
368 | ascii(ui, grapher(graphabledag())) |
|
|||
369 |
|
||||
370 | def incoming_revs(other, chlist, opts): |
|
|||
371 | """cset DAG generator yielding (node, [parents]) tuples |
|
|||
372 |
|
||||
373 | This generator function walks through the revisions of the destination |
|
|||
374 | not found in repo |
|
|||
375 | """ |
|
|||
376 | limit = cmdutil.loglimit(opts) |
|
|||
377 | chlist.reverse() |
|
|||
378 | revdict = {} |
|
|||
379 | for n in chlist: |
|
|||
380 | revdict[other.changectx(n).rev()]=True |
|
|||
381 | count = 0 |
|
|||
382 | for n in chlist: |
|
|||
383 | if count >= limit: |
|
|||
384 | break |
|
|||
385 | ctx = other.changectx(n) |
|
|||
386 | parents = [p.rev() for p in ctx.parents() if p.rev() in revdict] |
|
|||
387 | parents.sort() |
|
|||
388 | yield (ctx, parents) |
|
|||
389 | count += 1 |
|
|||
390 |
|
339 | |||
391 | def gincoming(ui, repo, source="default", **opts): |
|
340 | def gincoming(ui, repo, source="default", **opts): | |
392 | """show the incoming changesets alongside an ASCII revision graph |
|
341 | """show the incoming changesets alongside an ASCII revision graph | |
@@ -417,6 +366,7 b' def gincoming(ui, repo, source="default"' | |||||
417 |
|
366 | |||
418 | cleanup = None |
|
367 | cleanup = None | |
419 | try: |
|
368 | try: | |
|
369 | ||||
420 | fname = opts["bundle"] |
|
370 | fname = opts["bundle"] | |
421 | if fname or not other.local(): |
|
371 | if fname or not other.local(): | |
422 | # create a bundle (uncompressed if other repo is not local) |
|
372 | # create a bundle (uncompressed if other repo is not local) | |
@@ -434,19 +384,12 b' def gincoming(ui, repo, source="default"' | |||||
434 | other = bundlerepo.bundlerepository(ui, repo.root, fname) |
|
384 | other = bundlerepo.bundlerepository(ui, repo.root, fname) | |
435 |
|
385 | |||
436 | chlist = other.changelog.nodesbetween(incoming, revs)[0] |
|
386 | chlist = other.changelog.nodesbetween(incoming, revs)[0] | |
437 |
revdag = |
|
387 | revdag = graphrevs(other, chlist, opts) | |
438 | other_parents = [] |
|
388 | other_parents = [] | |
439 | displayer = show_changeset(ui, other, opts, buffered=True) |
|
389 | displayer = show_changeset(ui, other, opts, buffered=True) | |
440 | def graphabledag(): |
|
390 | graphdag = graphabledag(ui, repo, revdag, opts) | |
441 | for (ctx, parents) in revdag: |
|
391 | ascii(ui, grapher(graphdag)) | |
442 | # log_strings is the list of all log strings to draw alongside |
|
|||
443 | # the graph. |
|
|||
444 | displayer.show(ctx) |
|
|||
445 | lines = displayer.hunk.pop(ctx.rev()).split("\n")[:-1] |
|
|||
446 | char = ctx.node() in other_parents and '@' or 'o' |
|
|||
447 | yield (ctx.rev(), parents, char, lines) |
|
|||
448 |
|
392 | |||
449 | ascii(ui, grapher(graphabledag())) |
|
|||
450 | finally: |
|
393 | finally: | |
451 | if hasattr(other, 'close'): |
|
394 | if hasattr(other, 'close'): | |
452 | other.close() |
|
395 | other.close() | |
@@ -466,7 +409,7 b' def _wrapcmd(ui, cmd, table, wrapfn):' | |||||
466 | return wrapfn(*args, **kwargs) |
|
409 | return wrapfn(*args, **kwargs) | |
467 | return orig(*args, **kwargs) |
|
410 | return orig(*args, **kwargs) | |
468 | entry = extensions.wrapcommand(table, cmd, graph) |
|
411 | entry = extensions.wrapcommand(table, cmd, graph) | |
469 |
entry[1].append((' |
|
412 | entry[1].append(('G', 'graph', None, _("show the revision DAG"))) | |
470 |
|
413 | |||
471 | cmdtable = { |
|
414 | cmdtable = { | |
472 | "glog": |
|
415 | "glog": |
@@ -188,7 +188,8 b' class hgcia(object):' | |||||
188 | if not template: |
|
188 | if not template: | |
189 | template = self.diffstat and self.dstemplate or self.deftemplate |
|
189 | template = self.diffstat and self.dstemplate or self.deftemplate | |
190 | template = templater.parsestring(template, quoted=False) |
|
190 | template = templater.parsestring(template, quoted=False) | |
191 |
t = cmdutil.changeset_templater(self.ui, self.repo, False, |
|
191 | t = cmdutil.changeset_templater(self.ui, self.repo, False, None, | |
|
192 | style, False) | |||
192 | t.use_template(template) |
|
193 | t.use_template(template) | |
193 | self.templater = t |
|
194 | self.templater = t | |
194 |
|
195 |
@@ -130,7 +130,7 b' def catcommit(ui, repo, n, prefix, ctx=N' | |||||
130 | ui.write('\0') |
|
130 | ui.write('\0') | |
131 |
|
131 | |||
132 | def base(ui, repo, node1, node2): |
|
132 | def base(ui, repo, node1, node2): | |
133 |
""" |
|
133 | """output common ancestor information""" | |
134 | node1 = repo.lookup(node1) |
|
134 | node1 = repo.lookup(node1) | |
135 | node2 = repo.lookup(node2) |
|
135 | node2 = repo.lookup(node2) | |
136 | n = repo.changelog.ancestor(node1, node2) |
|
136 | n = repo.changelog.ancestor(node1, node2) | |
@@ -282,7 +282,7 b' def revtree(ui, args, repo, full="tree",' | |||||
282 | count += 1 |
|
282 | count += 1 | |
283 |
|
283 | |||
284 | def revparse(ui, repo, *revs, **opts): |
|
284 | def revparse(ui, repo, *revs, **opts): | |
285 |
""" |
|
285 | """parse given revisions""" | |
286 | def revstr(rev): |
|
286 | def revstr(rev): | |
287 | if rev == 'HEAD': |
|
287 | if rev == 'HEAD': | |
288 | rev = 'tip' |
|
288 | rev = 'tip' |
@@ -137,7 +137,7 b' class kwtemplater(object):' | |||||
137 |
|
137 | |||
138 | templatefilters.filters['utcdate'] = utcdate |
|
138 | templatefilters.filters['utcdate'] = utcdate | |
139 | self.ct = cmdutil.changeset_templater(self.ui, self.repo, |
|
139 | self.ct = cmdutil.changeset_templater(self.ui, self.repo, | |
140 | False, '', False) |
|
140 | False, None, '', False) | |
141 |
|
141 | |||
142 | def substitute(self, data, path, ctx, subfunc): |
|
142 | def substitute(self, data, path, ctx, subfunc): | |
143 | '''Replaces keywords in data with expanded template.''' |
|
143 | '''Replaces keywords in data with expanded template.''' | |
@@ -425,14 +425,10 b' def reposetup(ui, repo):' | |||||
425 | keyword substitutions. |
|
425 | keyword substitutions. | |
426 | Monkeypatches patch and webcommands.''' |
|
426 | Monkeypatches patch and webcommands.''' | |
427 |
|
427 | |||
428 | try: |
|
428 | if (not hasattr(repo, 'dirstate') or not kwtools['inc'] | |
429 | if (not repo.local() or not kwtools['inc'] |
|
429 | or kwtools['hgcmd'] in nokwcommands.split() | |
430 | or kwtools['hgcmd'] in nokwcommands.split() |
|
430 | or '.hg' in util.splitpath(repo.root)): | |
431 | or '.hg' in util.splitpath(repo.root) |
|
431 | return | |
432 | or repo._url.startswith('bundle:')): |
|
|||
433 | return |
|
|||
434 | except AttributeError: |
|
|||
435 | pass |
|
|||
436 |
|
432 | |||
437 | kwtools['templater'] = kwt = kwtemplater(ui, repo) |
|
433 | kwtools['templater'] = kwt = kwtemplater(ui, repo) | |
438 |
|
434 |
@@ -30,10 +30,9 b' refresh contents of top applied patch ' | |||||
30 | ''' |
|
30 | ''' | |
31 |
|
31 | |||
32 | from mercurial.i18n import _ |
|
32 | from mercurial.i18n import _ | |
33 | from mercurial.node import bin, hex, short |
|
33 | from mercurial.node import bin, hex, short, nullid, nullrev | |
34 | from mercurial.repo import RepoError |
|
34 | from mercurial import commands, cmdutil, hg, patch, util | |
35 | from mercurial import commands, cmdutil, hg, patch, revlog, util |
|
35 | from mercurial import repair, extensions, url, error | |
36 | from mercurial import repair, extensions, url |
|
|||
37 | import os, sys, re, errno |
|
36 | import os, sys, re, errno | |
38 |
|
37 | |||
39 | commands.norepo += " qclone" |
|
38 | commands.norepo += " qclone" | |
@@ -428,16 +427,16 b' class queue:' | |||||
428 | def qparents(self, repo, rev=None): |
|
427 | def qparents(self, repo, rev=None): | |
429 | if rev is None: |
|
428 | if rev is None: | |
430 | (p1, p2) = repo.dirstate.parents() |
|
429 | (p1, p2) = repo.dirstate.parents() | |
431 |
if p2 == |
|
430 | if p2 == nullid: | |
432 | return p1 |
|
431 | return p1 | |
433 | if len(self.applied) == 0: |
|
432 | if len(self.applied) == 0: | |
434 | return None |
|
433 | return None | |
435 |
return |
|
434 | return bin(self.applied[-1].rev) | |
436 | pp = repo.changelog.parents(rev) |
|
435 | pp = repo.changelog.parents(rev) | |
437 |
if pp[1] != |
|
436 | if pp[1] != nullid: | |
438 | arevs = [ x.rev for x in self.applied ] |
|
437 | arevs = [ x.rev for x in self.applied ] | |
439 |
p0 = |
|
438 | p0 = hex(pp[0]) | |
440 |
p1 = |
|
439 | p1 = hex(pp[1]) | |
441 | if p0 in arevs: |
|
440 | if p0 in arevs: | |
442 | return pp[0] |
|
441 | return pp[0] | |
443 | if p1 in arevs: |
|
442 | if p1 in arevs: | |
@@ -455,7 +454,7 b' class queue:' | |||||
455 | pname = ".hg.patches.merge.marker" |
|
454 | pname = ".hg.patches.merge.marker" | |
456 | n = repo.commit(None, '[mq]: merge marker', user=None, force=1) |
|
455 | n = repo.commit(None, '[mq]: merge marker', user=None, force=1) | |
457 | self.removeundo(repo) |
|
456 | self.removeundo(repo) | |
458 |
self.applied.append(statusentry( |
|
457 | self.applied.append(statusentry(hex(n), pname)) | |
459 | self.applied_dirty = 1 |
|
458 | self.applied_dirty = 1 | |
460 |
|
459 | |||
461 | head = self.qparents(repo) |
|
460 | head = self.qparents(repo) | |
@@ -473,10 +472,10 b' class queue:' | |||||
473 | if not info: |
|
472 | if not info: | |
474 | self.ui.warn(_("patch %s is not applied\n") % patch) |
|
473 | self.ui.warn(_("patch %s is not applied\n") % patch) | |
475 | return (1, None) |
|
474 | return (1, None) | |
476 |
rev = |
|
475 | rev = bin(info[1]) | |
477 | (err, head) = self.mergeone(repo, mergeq, head, patch, rev) |
|
476 | (err, head) = self.mergeone(repo, mergeq, head, patch, rev) | |
478 | if head: |
|
477 | if head: | |
479 |
self.applied.append(statusentry( |
|
478 | self.applied.append(statusentry(hex(head), patch)) | |
480 | self.applied_dirty = 1 |
|
479 | self.applied_dirty = 1 | |
481 | if err: |
|
480 | if err: | |
482 | return (err, head) |
|
481 | return (err, head) | |
@@ -552,9 +551,13 b' class queue:' | |||||
552 | message.append(_("\nimported patch %s") % patchname) |
|
551 | message.append(_("\nimported patch %s") % patchname) | |
553 | message = '\n'.join(message) |
|
552 | message = '\n'.join(message) | |
554 |
|
553 | |||
555 | (patcherr, files, fuzz) = self.patch(repo, pf) |
|
554 | if ph.haspatch: | |
556 | all_files.update(files) |
|
555 | (patcherr, files, fuzz) = self.patch(repo, pf) | |
557 | patcherr = not patcherr |
|
556 | all_files.update(files) | |
|
557 | patcherr = not patcherr | |||
|
558 | else: | |||
|
559 | self.ui.warn(_("patch %s is empty\n") % patchname) | |||
|
560 | patcherr, files, fuzz = 0, [], 0 | |||
558 |
|
561 | |||
559 | if merge and files: |
|
562 | if merge and files: | |
560 | # Mark as removed/merged and update dirstate parent info |
|
563 | # Mark as removed/merged and update dirstate parent info | |
@@ -581,15 +584,11 b' class queue:' | |||||
581 | raise util.Abort(_("repo commit failed")) |
|
584 | raise util.Abort(_("repo commit failed")) | |
582 |
|
585 | |||
583 | if update_status: |
|
586 | if update_status: | |
584 |
self.applied.append(statusentry( |
|
587 | self.applied.append(statusentry(hex(n), patchname)) | |
585 |
|
588 | |||
586 | if patcherr: |
|
589 | if patcherr: | |
587 | if not ph.haspatch: |
|
590 | self.ui.warn(_("patch failed, rejects left in working dir\n")) | |
588 | self.ui.warn(_("patch %s is empty\n") % patchname) |
|
591 | err = 1 | |
589 | err = 0 |
|
|||
590 | else: |
|
|||
591 | self.ui.warn(_("patch failed, rejects left in working dir\n")) |
|
|||
592 | err = 1 |
|
|||
593 | break |
|
592 | break | |
594 |
|
593 | |||
595 | if fuzz and strict: |
|
594 | if fuzz and strict: | |
@@ -613,7 +612,7 b' class queue:' | |||||
613 | for rev in util.sort(revs): |
|
612 | for rev in util.sort(revs): | |
614 | if rev < firstrev: |
|
613 | if rev < firstrev: | |
615 | raise util.Abort(_('revision %d is not managed') % rev) |
|
614 | raise util.Abort(_('revision %d is not managed') % rev) | |
616 |
base = |
|
615 | base = bin(self.applied[appliedbase].rev) | |
617 | node = repo.changelog.node(rev) |
|
616 | node = repo.changelog.node(rev) | |
618 | if node != base: |
|
617 | if node != base: | |
619 | raise util.Abort(_('cannot delete revision %d above ' |
|
618 | raise util.Abort(_('cannot delete revision %d above ' | |
@@ -658,7 +657,7 b' class queue:' | |||||
658 | if appliedbase >= len(self.applied): |
|
657 | if appliedbase >= len(self.applied): | |
659 | raise util.Abort(_("revision %d is not managed") % rev) |
|
658 | raise util.Abort(_("revision %d is not managed") % rev) | |
660 |
|
659 | |||
661 |
base = |
|
660 | base = bin(self.applied[appliedbase].rev) | |
662 | node = repo.changelog.node(rev) |
|
661 | node = repo.changelog.node(rev) | |
663 | if node != base: |
|
662 | if node != base: | |
664 | raise util.Abort(_("cannot delete revision %d above " |
|
663 | raise util.Abort(_("cannot delete revision %d above " | |
@@ -681,7 +680,7 b' class queue:' | |||||
681 |
|
680 | |||
682 | def check_toppatch(self, repo): |
|
681 | def check_toppatch(self, repo): | |
683 | if len(self.applied) > 0: |
|
682 | if len(self.applied) > 0: | |
684 |
top = |
|
683 | top = bin(self.applied[-1].rev) | |
685 | pp = repo.dirstate.parents() |
|
684 | pp = repo.dirstate.parents() | |
686 | if top not in pp: |
|
685 | if top not in pp: | |
687 | raise util.Abort(_("working directory revision is not qtip")) |
|
686 | raise util.Abort(_("working directory revision is not qtip")) | |
@@ -751,7 +750,7 b' class queue:' | |||||
751 | raise util.Abort(_("repo commit failed")) |
|
750 | raise util.Abort(_("repo commit failed")) | |
752 | try: |
|
751 | try: | |
753 | self.full_series[insert:insert] = [patchfn] |
|
752 | self.full_series[insert:insert] = [patchfn] | |
754 |
self.applied.append(statusentry( |
|
753 | self.applied.append(statusentry(hex(n), patchfn)) | |
755 | self.parse_series() |
|
754 | self.parse_series() | |
756 | self.series_dirty = 1 |
|
755 | self.series_dirty = 1 | |
757 | self.applied_dirty = 1 |
|
756 | self.applied_dirty = 1 | |
@@ -963,10 +962,10 b' class queue:' | |||||
963 | raise |
|
962 | raise | |
964 | top = self.applied[-1].name |
|
963 | top = self.applied[-1].name | |
965 | if ret[0]: |
|
964 | if ret[0]: | |
966 | self.ui.write( |
|
965 | self.ui.write(_("errors during apply, please fix and " | |
967 |
" |
|
966 | "refresh %s\n") % top) | |
968 | else: |
|
967 | else: | |
969 |
self.ui.write(" |
|
968 | self.ui.write(_("now at: %s\n") % top) | |
970 | return ret[0] |
|
969 | return ret[0] | |
971 | finally: |
|
970 | finally: | |
972 | del wlock |
|
971 | del wlock | |
@@ -993,38 +992,49 b' class queue:' | |||||
993 | self.ui.warn(_("no patches applied\n")) |
|
992 | self.ui.warn(_("no patches applied\n")) | |
994 | return not all |
|
993 | return not all | |
995 |
|
994 | |||
|
995 | if all: | |||
|
996 | start = 0 | |||
|
997 | elif patch: | |||
|
998 | start = info[0] + 1 | |||
|
999 | else: | |||
|
1000 | start = len(self.applied) - 1 | |||
|
1001 | ||||
|
1002 | if start >= len(self.applied): | |||
|
1003 | self.ui.warn(_("qpop: %s is already at the top\n") % patch) | |||
|
1004 | return | |||
|
1005 | ||||
996 | if not update: |
|
1006 | if not update: | |
997 | parents = repo.dirstate.parents() |
|
1007 | parents = repo.dirstate.parents() | |
998 |
rr = [ |
|
1008 | rr = [ bin(x.rev) for x in self.applied ] | |
999 | for p in parents: |
|
1009 | for p in parents: | |
1000 | if p in rr: |
|
1010 | if p in rr: | |
1001 | self.ui.warn(_("qpop: forcing dirstate update\n")) |
|
1011 | self.ui.warn(_("qpop: forcing dirstate update\n")) | |
1002 | update = True |
|
1012 | update = True | |
|
1013 | else: | |||
|
1014 | parents = [p.hex() for p in repo[None].parents()] | |||
|
1015 | needupdate = False | |||
|
1016 | for entry in self.applied[start:]: | |||
|
1017 | if entry.rev in parents: | |||
|
1018 | needupdate = True | |||
|
1019 | break | |||
|
1020 | update = needupdate | |||
1003 |
|
1021 | |||
1004 | if not force and update: |
|
1022 | if not force and update: | |
1005 | self.check_localchanges(repo) |
|
1023 | self.check_localchanges(repo) | |
1006 |
|
1024 | |||
1007 |
self.applied_dirty = 1 |
|
1025 | self.applied_dirty = 1 | |
1008 | end = len(self.applied) |
|
1026 | end = len(self.applied) | |
1009 | if not patch: |
|
1027 | rev = bin(self.applied[start].rev) | |
1010 | if all: |
|
|||
1011 | popi = 0 |
|
|||
1012 | else: |
|
|||
1013 | popi = len(self.applied) - 1 |
|
|||
1014 | else: |
|
|||
1015 | popi = info[0] + 1 |
|
|||
1016 | if popi >= end: |
|
|||
1017 | self.ui.warn(_("qpop: %s is already at the top\n") % patch) |
|
|||
1018 | return |
|
|||
1019 | info = [ popi ] + [self.applied[popi].rev, self.applied[popi].name] |
|
|||
1020 |
|
||||
1021 | start = info[0] |
|
|||
1022 | rev = revlog.bin(info[1]) |
|
|||
1023 |
|
||||
1024 | if update: |
|
1028 | if update: | |
1025 | top = self.check_toppatch(repo) |
|
1029 | top = self.check_toppatch(repo) | |
1026 |
|
1030 | |||
1027 | if repo.changelog.heads(rev) != [revlog.bin(self.applied[-1].rev)]: |
|
1031 | try: | |
|
1032 | heads = repo.changelog.heads(rev) | |||
|
1033 | except error.LookupError: | |||
|
1034 | node = short(rev) | |||
|
1035 | raise util.Abort(_('trying to pop unknown node %s') % node) | |||
|
1036 | ||||
|
1037 | if heads != [bin(self.applied[-1].rev)]: | |||
1028 | raise util.Abort(_("popping would remove a revision not " |
|
1038 | raise util.Abort(_("popping would remove a revision not " | |
1029 | "managed by this patch queue")) |
|
1039 | "managed by this patch queue")) | |
1030 |
|
1040 | |||
@@ -1052,20 +1062,20 b' class queue:' | |||||
1052 | try: os.removedirs(os.path.dirname(repo.wjoin(f))) |
|
1062 | try: os.removedirs(os.path.dirname(repo.wjoin(f))) | |
1053 | except: pass |
|
1063 | except: pass | |
1054 | repo.dirstate.forget(f) |
|
1064 | repo.dirstate.forget(f) | |
1055 |
repo.dirstate.setparents(qp, |
|
1065 | repo.dirstate.setparents(qp, nullid) | |
1056 | del self.applied[start:end] |
|
1066 | del self.applied[start:end] | |
1057 | self.strip(repo, rev, update=False, backup='strip') |
|
1067 | self.strip(repo, rev, update=False, backup='strip') | |
1058 | if len(self.applied): |
|
1068 | if len(self.applied): | |
1059 |
self.ui.write(_(" |
|
1069 | self.ui.write(_("now at: %s\n") % self.applied[-1].name) | |
1060 | else: |
|
1070 | else: | |
1061 |
self.ui.write(_(" |
|
1071 | self.ui.write(_("patch queue now empty\n")) | |
1062 | finally: |
|
1072 | finally: | |
1063 | del wlock |
|
1073 | del wlock | |
1064 |
|
1074 | |||
1065 | def diff(self, repo, pats, opts): |
|
1075 | def diff(self, repo, pats, opts): | |
1066 | top = self.check_toppatch(repo) |
|
1076 | top = self.check_toppatch(repo) | |
1067 | if not top: |
|
1077 | if not top: | |
1068 |
self.ui.write(_(" |
|
1078 | self.ui.write(_("no patches applied\n")) | |
1069 | return |
|
1079 | return | |
1070 | qp = self.qparents(repo, top) |
|
1080 | qp = self.qparents(repo, top) | |
1071 | self._diffopts = patch.diffopts(self.ui, opts) |
|
1081 | self._diffopts = patch.diffopts(self.ui, opts) | |
@@ -1073,7 +1083,7 b' class queue:' | |||||
1073 |
|
1083 | |||
1074 | def refresh(self, repo, pats=None, **opts): |
|
1084 | def refresh(self, repo, pats=None, **opts): | |
1075 | if len(self.applied) == 0: |
|
1085 | if len(self.applied) == 0: | |
1076 |
self.ui.write(_(" |
|
1086 | self.ui.write(_("no patches applied\n")) | |
1077 | return 1 |
|
1087 | return 1 | |
1078 | msg = opts.get('msg', '').rstrip() |
|
1088 | msg = opts.get('msg', '').rstrip() | |
1079 | newuser = opts.get('user') |
|
1089 | newuser = opts.get('user') | |
@@ -1084,7 +1094,7 b' class queue:' | |||||
1084 | try: |
|
1094 | try: | |
1085 | self.check_toppatch(repo) |
|
1095 | self.check_toppatch(repo) | |
1086 | (top, patchfn) = (self.applied[-1].rev, self.applied[-1].name) |
|
1096 | (top, patchfn) = (self.applied[-1].rev, self.applied[-1].name) | |
1087 |
top = |
|
1097 | top = bin(top) | |
1088 | if repo.changelog.heads(top) != [top]: |
|
1098 | if repo.changelog.heads(top) != [top]: | |
1089 | raise util.Abort(_("cannot refresh a revision with children")) |
|
1099 | raise util.Abort(_("cannot refresh a revision with children")) | |
1090 | cparents = repo.changelog.parents(top) |
|
1100 | cparents = repo.changelog.parents(top) | |
@@ -1258,7 +1268,7 b' class queue:' | |||||
1258 | patchf.rename() |
|
1268 | patchf.rename() | |
1259 | n = repo.commit(match.files(), message, user, ph.date, |
|
1269 | n = repo.commit(match.files(), message, user, ph.date, | |
1260 | match=match, force=1) |
|
1270 | match=match, force=1) | |
1261 |
self.applied.append(statusentry( |
|
1271 | self.applied.append(statusentry(hex(n), patchfn)) | |
1262 | except: |
|
1272 | except: | |
1263 | ctx = repo[cparents[0]] |
|
1273 | ctx = repo[cparents[0]] | |
1264 | repo.dirstate.rebuild(ctx.node(), ctx.manifest()) |
|
1274 | repo.dirstate.rebuild(ctx.node(), ctx.manifest()) | |
@@ -1446,7 +1456,7 b' class queue:' | |||||
1446 | if not n: |
|
1456 | if not n: | |
1447 | self.ui.warn(_("repo commit failed\n")) |
|
1457 | self.ui.warn(_("repo commit failed\n")) | |
1448 | return 1 |
|
1458 | return 1 | |
1449 |
self.applied.append(statusentry( |
|
1459 | self.applied.append(statusentry(hex(n),'.hg.patches.save.line')) | |
1450 | self.applied_dirty = 1 |
|
1460 | self.applied_dirty = 1 | |
1451 | self.removeundo(repo) |
|
1461 | self.removeundo(repo) | |
1452 |
|
1462 | |||
@@ -1524,14 +1534,14 b' class queue:' | |||||
1524 | raise util.Abort(_('revision %d is the root of more than one ' |
|
1534 | raise util.Abort(_('revision %d is the root of more than one ' | |
1525 | 'branch') % rev[-1]) |
|
1535 | 'branch') % rev[-1]) | |
1526 | if self.applied: |
|
1536 | if self.applied: | |
1527 |
base = |
|
1537 | base = hex(repo.changelog.node(rev[0])) | |
1528 | if base in [n.rev for n in self.applied]: |
|
1538 | if base in [n.rev for n in self.applied]: | |
1529 | raise util.Abort(_('revision %d is already managed') |
|
1539 | raise util.Abort(_('revision %d is already managed') | |
1530 | % rev[0]) |
|
1540 | % rev[0]) | |
1531 |
if heads != [ |
|
1541 | if heads != [bin(self.applied[-1].rev)]: | |
1532 | raise util.Abort(_('revision %d is not the parent of ' |
|
1542 | raise util.Abort(_('revision %d is not the parent of ' | |
1533 | 'the queue') % rev[0]) |
|
1543 | 'the queue') % rev[0]) | |
1534 |
base = repo.changelog.rev( |
|
1544 | base = repo.changelog.rev(bin(self.applied[0].rev)) | |
1535 | lastparent = repo.changelog.parentrevs(base)[0] |
|
1545 | lastparent = repo.changelog.parentrevs(base)[0] | |
1536 | else: |
|
1546 | else: | |
1537 | if heads != [repo.changelog.node(rev[0])]: |
|
1547 | if heads != [repo.changelog.node(rev[0])]: | |
@@ -1545,7 +1555,7 b' class queue:' | |||||
1545 | for r in rev: |
|
1555 | for r in rev: | |
1546 | p1, p2 = repo.changelog.parentrevs(r) |
|
1556 | p1, p2 = repo.changelog.parentrevs(r) | |
1547 | n = repo.changelog.node(r) |
|
1557 | n = repo.changelog.node(r) | |
1548 |
if p2 != |
|
1558 | if p2 != nullrev: | |
1549 | raise util.Abort(_('cannot import merge revision %d') % r) |
|
1559 | raise util.Abort(_('cannot import merge revision %d') % r) | |
1550 | if lastparent and lastparent != r: |
|
1560 | if lastparent and lastparent != r: | |
1551 | raise util.Abort(_('revision %d is not the parent of %d') |
|
1561 | raise util.Abort(_('revision %d is not the parent of %d') | |
@@ -1563,7 +1573,7 b' class queue:' | |||||
1563 | patch.export(repo, [n], fp=patchf, opts=self.diffopts()) |
|
1573 | patch.export(repo, [n], fp=patchf, opts=self.diffopts()) | |
1564 | patchf.close() |
|
1574 | patchf.close() | |
1565 |
|
1575 | |||
1566 |
se = statusentry( |
|
1576 | se = statusentry(hex(n), patchname) | |
1567 | self.applied.insert(0, se) |
|
1577 | self.applied.insert(0, se) | |
1568 |
|
1578 | |||
1569 | added.append(patchname) |
|
1579 | added.append(patchname) | |
@@ -1602,7 +1612,7 b' class queue:' | |||||
1602 | index = self.full_series_end() + i |
|
1612 | index = self.full_series_end() + i | |
1603 | self.full_series[index:index] = [patchname] |
|
1613 | self.full_series[index:index] = [patchname] | |
1604 | self.parse_series() |
|
1614 | self.parse_series() | |
1605 | self.ui.warn("adding %s to series file\n" % patchname) |
|
1615 | self.ui.warn(_("adding %s to series file\n") % patchname) | |
1606 | i += 1 |
|
1616 | i += 1 | |
1607 | added.append(patchname) |
|
1617 | added.append(patchname) | |
1608 | patchname = None |
|
1618 | patchname = None | |
@@ -1727,16 +1737,19 b' def clone(ui, source, dest=None, **opts)' | |||||
1727 | if dest is None: |
|
1737 | if dest is None: | |
1728 | dest = hg.defaultdest(source) |
|
1738 | dest = hg.defaultdest(source) | |
1729 | sr = hg.repository(ui, ui.expandpath(source)) |
|
1739 | sr = hg.repository(ui, ui.expandpath(source)) | |
1730 | patchespath = opts['patches'] or patchdir(sr) |
|
1740 | if opts['patches']: | |
|
1741 | patchespath = ui.expandpath(opts['patches']) | |||
|
1742 | else: | |||
|
1743 | patchespath = patchdir(sr) | |||
1731 | try: |
|
1744 | try: | |
1732 | pr = hg.repository(ui, patchespath) |
|
1745 | pr = hg.repository(ui, patchespath) | |
1733 | except RepoError: |
|
1746 | except error.RepoError: | |
1734 | raise util.Abort(_('versioned patch repository not found' |
|
1747 | raise util.Abort(_('versioned patch repository not found' | |
1735 | ' (see qinit -c)')) |
|
1748 | ' (see qinit -c)')) | |
1736 | qbase, destrev = None, None |
|
1749 | qbase, destrev = None, None | |
1737 | if sr.local(): |
|
1750 | if sr.local(): | |
1738 | if sr.mq.applied: |
|
1751 | if sr.mq.applied: | |
1739 |
qbase = |
|
1752 | qbase = bin(sr.mq.applied[0].rev) | |
1740 | if not hg.islocal(dest): |
|
1753 | if not hg.islocal(dest): | |
1741 | heads = dict.fromkeys(sr.heads()) |
|
1754 | heads = dict.fromkeys(sr.heads()) | |
1742 | for h in sr.heads(qbase): |
|
1755 | for h in sr.heads(qbase): | |
@@ -1746,7 +1759,7 b' def clone(ui, source, dest=None, **opts)' | |||||
1746 | elif sr.capable('lookup'): |
|
1759 | elif sr.capable('lookup'): | |
1747 | try: |
|
1760 | try: | |
1748 | qbase = sr.lookup('qbase') |
|
1761 | qbase = sr.lookup('qbase') | |
1749 | except RepoError: |
|
1762 | except error.RepoError: | |
1750 | pass |
|
1763 | pass | |
1751 | ui.note(_('cloning main repo\n')) |
|
1764 | ui.note(_('cloning main repo\n')) | |
1752 | sr, dr = hg.clone(ui, sr.url(), dest, |
|
1765 | sr, dr = hg.clone(ui, sr.url(), dest, | |
@@ -1786,7 +1799,7 b' def top(ui, repo, **opts):' | |||||
1786 | return q.qseries(repo, start=t-1, length=1, status='A', |
|
1799 | return q.qseries(repo, start=t-1, length=1, status='A', | |
1787 | summary=opts.get('summary')) |
|
1800 | summary=opts.get('summary')) | |
1788 | else: |
|
1801 | else: | |
1789 |
ui.write(" |
|
1802 | ui.write(_("no patches applied\n")) | |
1790 | return 1 |
|
1803 | return 1 | |
1791 |
|
1804 | |||
1792 | def next(ui, repo, **opts): |
|
1805 | def next(ui, repo, **opts): | |
@@ -1794,7 +1807,7 b' def next(ui, repo, **opts):' | |||||
1794 | q = repo.mq |
|
1807 | q = repo.mq | |
1795 | end = q.series_end() |
|
1808 | end = q.series_end() | |
1796 | if end == len(q.series): |
|
1809 | if end == len(q.series): | |
1797 |
ui.write(" |
|
1810 | ui.write(_("all patches applied\n")) | |
1798 | return 1 |
|
1811 | return 1 | |
1799 | return q.qseries(repo, start=end, length=1, summary=opts.get('summary')) |
|
1812 | return q.qseries(repo, start=end, length=1, summary=opts.get('summary')) | |
1800 |
|
1813 | |||
@@ -1803,10 +1816,10 b' def prev(ui, repo, **opts):' | |||||
1803 | q = repo.mq |
|
1816 | q = repo.mq | |
1804 | l = len(q.applied) |
|
1817 | l = len(q.applied) | |
1805 | if l == 1: |
|
1818 | if l == 1: | |
1806 |
ui.write(" |
|
1819 | ui.write(_("only one patch applied\n")) | |
1807 | return 1 |
|
1820 | return 1 | |
1808 | if not l: |
|
1821 | if not l: | |
1809 |
ui.write(" |
|
1822 | ui.write(_("no patches applied\n")) | |
1810 | return 1 |
|
1823 | return 1 | |
1811 | return q.qseries(repo, start=l-2, length=1, status='A', |
|
1824 | return q.qseries(repo, start=l-2, length=1, status='A', | |
1812 | summary=opts.get('summary')) |
|
1825 | summary=opts.get('summary')) | |
@@ -1870,7 +1883,7 b' def refresh(ui, repo, *pats, **opts):' | |||||
1870 | message = cmdutil.logmessage(opts) |
|
1883 | message = cmdutil.logmessage(opts) | |
1871 | if opts['edit']: |
|
1884 | if opts['edit']: | |
1872 | if not q.applied: |
|
1885 | if not q.applied: | |
1873 |
ui.write(_(" |
|
1886 | ui.write(_("no patches applied\n")) | |
1874 | return 1 |
|
1887 | return 1 | |
1875 | if message: |
|
1888 | if message: | |
1876 | raise util.Abort(_('option "-e" incompatible with "-m" or "-l"')) |
|
1889 | raise util.Abort(_('option "-e" incompatible with "-m" or "-l"')) | |
@@ -1980,13 +1993,10 b' def guard(ui, repo, *args, **opts):' | |||||
1980 |
|
1993 | |||
1981 | With no arguments, print the currently active guards. |
|
1994 | With no arguments, print the currently active guards. | |
1982 | With arguments, set guards for the named patch. |
|
1995 | With arguments, set guards for the named patch. | |
1983 |
|
1996 | NOTE: Specifying negative guards now requires '--'. | ||
1984 | To set a negative guard "-foo" on topmost patch ("--" is needed so |
|
|||
1985 | hg will not interpret "-foo" as an option): |
|
|||
1986 | hg qguard -- -foo |
|
|||
1987 |
|
1997 | |||
1988 | To set guards on another patch: |
|
1998 | To set guards on another patch: | |
1989 | hg qguard other.patch +2.6.17 -stable |
|
1999 | hg qguard -- other.patch +2.6.17 -stable | |
1990 | ''' |
|
2000 | ''' | |
1991 | def status(idx): |
|
2001 | def status(idx): | |
1992 | guards = q.series_guards[idx] or ['unguarded'] |
|
2002 | guards = q.series_guards[idx] or ['unguarded'] | |
@@ -2018,14 +2028,14 b' def guard(ui, repo, *args, **opts):' | |||||
2018 | status(q.series.index(q.lookup(patch))) |
|
2028 | status(q.series.index(q.lookup(patch))) | |
2019 |
|
2029 | |||
2020 | def header(ui, repo, patch=None): |
|
2030 | def header(ui, repo, patch=None): | |
2021 |
""" |
|
2031 | """print the header of the topmost or specified patch""" | |
2022 | q = repo.mq |
|
2032 | q = repo.mq | |
2023 |
|
2033 | |||
2024 | if patch: |
|
2034 | if patch: | |
2025 | patch = q.lookup(patch) |
|
2035 | patch = q.lookup(patch) | |
2026 | else: |
|
2036 | else: | |
2027 | if not q.applied: |
|
2037 | if not q.applied: | |
2028 |
ui.write(' |
|
2038 | ui.write('no patches applied\n') | |
2029 | return 1 |
|
2039 | return 1 | |
2030 | patch = q.lookup('qtip') |
|
2040 | patch = q.lookup('qtip') | |
2031 | ph = repo.mq.readheaders(patch) |
|
2041 | ph = repo.mq.readheaders(patch) | |
@@ -2112,7 +2122,7 b' def rename(ui, repo, patch, name=None, *' | |||||
2112 | patch = q.lookup(patch) |
|
2122 | patch = q.lookup(patch) | |
2113 | else: |
|
2123 | else: | |
2114 | if not q.applied: |
|
2124 | if not q.applied: | |
2115 |
ui.write(_(' |
|
2125 | ui.write(_('no patches applied\n')) | |
2116 | return |
|
2126 | return | |
2117 | patch = q.lookup('qtip') |
|
2127 | patch = q.lookup('qtip') | |
2118 | absdest = q.join(name) |
|
2128 | absdest = q.join(name) | |
@@ -2126,7 +2136,7 b' def rename(ui, repo, patch, name=None, *' | |||||
2126 | raise util.Abort(_('A patch named %s already exists in the series file') % name) |
|
2136 | raise util.Abort(_('A patch named %s already exists in the series file') % name) | |
2127 |
|
2137 | |||
2128 | if ui.verbose: |
|
2138 | if ui.verbose: | |
2129 |
ui.write(' |
|
2139 | ui.write('renaming %s to %s\n' % (patch, name)) | |
2130 | i = q.find_series(patch) |
|
2140 | i = q.find_series(patch) | |
2131 | guards = q.guard_re.findall(q.full_series[i]) |
|
2141 | guards = q.guard_re.findall(q.full_series[i]) | |
2132 | q.full_series[i] = name + ''.join([' #' + g for g in guards]) |
|
2142 | q.full_series[i] = name + ''.join([' #' + g for g in guards]) | |
@@ -2211,9 +2221,9 b' def strip(ui, repo, rev, **opts):' | |||||
2211 | p = repo.dirstate.parents() |
|
2221 | p = repo.dirstate.parents() | |
2212 | cl = repo.changelog |
|
2222 | cl = repo.changelog | |
2213 | update = True |
|
2223 | update = True | |
2214 |
if p[0] == |
|
2224 | if p[0] == nullid: | |
2215 | update = False |
|
2225 | update = False | |
2216 |
elif p[1] == |
|
2226 | elif p[1] == nullid and rev != cl.ancestor(p[0], rev): | |
2217 | update = False |
|
2227 | update = False | |
2218 | elif rev not in (cl.ancestor(p[0], rev), cl.ancestor(p[1], rev)): |
|
2228 | elif rev not in (cl.ancestor(p[0], rev), cl.ancestor(p[1], rev)): | |
2219 | update = False |
|
2229 | update = False | |
@@ -2356,7 +2366,7 b' def reposetup(ui, repo):' | |||||
2356 | class mqrepo(repo.__class__): |
|
2366 | class mqrepo(repo.__class__): | |
2357 | def abort_if_wdir_patched(self, errmsg, force=False): |
|
2367 | def abort_if_wdir_patched(self, errmsg, force=False): | |
2358 | if self.mq.applied and not force: |
|
2368 | if self.mq.applied and not force: | |
2359 |
parent = |
|
2369 | parent = hex(self.dirstate.parents()[0]) | |
2360 | if parent in [s.rev for s in self.mq.applied]: |
|
2370 | if parent in [s.rev for s in self.mq.applied]: | |
2361 | raise util.Abort(errmsg) |
|
2371 | raise util.Abort(errmsg) | |
2362 |
|
2372 | |||
@@ -2386,11 +2396,11 b' def reposetup(ui, repo):' | |||||
2386 | if not q.applied: |
|
2396 | if not q.applied: | |
2387 | return tagscache |
|
2397 | return tagscache | |
2388 |
|
2398 | |||
2389 |
mqtags = [( |
|
2399 | mqtags = [(bin(patch.rev), patch.name) for patch in q.applied] | |
2390 |
|
2400 | |||
2391 | if mqtags[-1][0] not in self.changelog.nodemap: |
|
2401 | if mqtags[-1][0] not in self.changelog.nodemap: | |
2392 | self.ui.warn(_('mq status file refers to unknown node %s\n') |
|
2402 | self.ui.warn(_('mq status file refers to unknown node %s\n') | |
2393 |
% |
|
2403 | % short(mqtags[-1][0])) | |
2394 | return tagscache |
|
2404 | return tagscache | |
2395 |
|
2405 | |||
2396 | mqtags.append((mqtags[-1][0], 'qtip')) |
|
2406 | mqtags.append((mqtags[-1][0], 'qtip')) | |
@@ -2411,10 +2421,10 b' def reposetup(ui, repo):' | |||||
2411 | return super(mqrepo, self)._branchtags(partial, lrev) |
|
2421 | return super(mqrepo, self)._branchtags(partial, lrev) | |
2412 |
|
2422 | |||
2413 | cl = self.changelog |
|
2423 | cl = self.changelog | |
2414 |
qbasenode = |
|
2424 | qbasenode = bin(q.applied[0].rev) | |
2415 | if qbasenode not in cl.nodemap: |
|
2425 | if qbasenode not in cl.nodemap: | |
2416 | self.ui.warn(_('mq status file refers to unknown node %s\n') |
|
2426 | self.ui.warn(_('mq status file refers to unknown node %s\n') | |
2417 |
% |
|
2427 | % short(qbasenode)) | |
2418 | return super(mqrepo, self)._branchtags(partial, lrev) |
|
2428 | return super(mqrepo, self)._branchtags(partial, lrev) | |
2419 |
|
2429 | |||
2420 | qbase = cl.rev(qbasenode) |
|
2430 | qbase = cl.rev(qbasenode) | |
@@ -2486,7 +2496,7 b' cmdtable = {' | |||||
2486 | (guard, |
|
2496 | (guard, | |
2487 | [('l', 'list', None, _('list all patches and guards')), |
|
2497 | [('l', 'list', None, _('list all patches and guards')), | |
2488 | ('n', 'none', None, _('drop all guards'))], |
|
2498 | ('n', 'none', None, _('drop all guards'))], | |
2489 | _('hg qguard [-l] [-n] [PATCH] [+GUARD]... [-GUARD]...')), |
|
2499 | _('hg qguard [-l] [-n] -- [PATCH] [+GUARD]... [-GUARD]...')), | |
2490 | 'qheader': (header, [], _('hg qheader [PATCH]')), |
|
2500 | 'qheader': (header, [], _('hg qheader [PATCH]')), | |
2491 | "^qimport": |
|
2501 | "^qimport": | |
2492 | (qimport, |
|
2502 | (qimport, |
@@ -113,7 +113,7 b' class notifier(object):' | |||||
113 | template = (self.ui.config('notify', hooktype) or |
|
113 | template = (self.ui.config('notify', hooktype) or | |
114 | self.ui.config('notify', 'template')) |
|
114 | self.ui.config('notify', 'template')) | |
115 | self.t = cmdutil.changeset_templater(self.ui, self.repo, |
|
115 | self.t = cmdutil.changeset_templater(self.ui, self.repo, | |
116 | False, mapfile, False) |
|
116 | False, None, mapfile, False) | |
117 | if not mapfile and not template: |
|
117 | if not mapfile and not template: | |
118 | template = deftemplates.get(hooktype) or single_template |
|
118 | template = deftemplates.get(hooktype) or single_template | |
119 | if template: |
|
119 | if template: | |
@@ -147,7 +147,6 b' class notifier(object):' | |||||
147 |
|
147 | |||
148 | def subscribers(self): |
|
148 | def subscribers(self): | |
149 | '''return list of email addresses of subscribers to this repo.''' |
|
149 | '''return list of email addresses of subscribers to this repo.''' | |
150 |
|
||||
151 | subs = {} |
|
150 | subs = {} | |
152 | for user, pats in self.ui.configitems('usersubs'): |
|
151 | for user, pats in self.ui.configitems('usersubs'): | |
153 | for pat in pats.split(','): |
|
152 | for pat in pats.split(','): | |
@@ -164,20 +163,18 b' class notifier(object):' | |||||
164 | def url(self, path=None): |
|
163 | def url(self, path=None): | |
165 | return self.ui.config('web', 'baseurl') + (path or self.root) |
|
164 | return self.ui.config('web', 'baseurl') + (path or self.root) | |
166 |
|
165 | |||
167 |
def node(self, |
|
166 | def node(self, ctx): | |
168 | '''format one changeset.''' |
|
167 | '''format one changeset.''' | |
169 |
|
168 | self.t.show(ctx, changes=ctx.changeset(), | ||
170 | self.t.show(self.repo[node], changes=self.repo.changelog.read(node), |
|
|||
171 | baseurl=self.ui.config('web', 'baseurl'), |
|
169 | baseurl=self.ui.config('web', 'baseurl'), | |
172 | root=self.repo.root, |
|
170 | root=self.repo.root, webroot=self.root) | |
173 | webroot=self.root) |
|
|||
174 |
|
171 | |||
175 | def skipsource(self, source): |
|
172 | def skipsource(self, source): | |
176 | '''true if incoming changes from this source should be skipped.''' |
|
173 | '''true if incoming changes from this source should be skipped.''' | |
177 | ok_sources = self.ui.config('notify', 'sources', 'serve').split() |
|
174 | ok_sources = self.ui.config('notify', 'sources', 'serve').split() | |
178 | return source not in ok_sources |
|
175 | return source not in ok_sources | |
179 |
|
176 | |||
180 |
def send(self, |
|
177 | def send(self, ctx, count, data): | |
181 | '''send message.''' |
|
178 | '''send message.''' | |
182 |
|
179 | |||
183 | p = email.Parser.Parser() |
|
180 | p = email.Parser.Parser() | |
@@ -196,40 +193,33 b' class notifier(object):' | |||||
196 | for k, v in headers: |
|
193 | for k, v in headers: | |
197 | msg[k] = v |
|
194 | msg[k] = v | |
198 |
|
195 | |||
199 | def fix_subject(subject): |
|
196 | msg['Date'] = util.datestr(format="%a, %d %b %Y %H:%M:%S %1%2") | |
200 | '''try to make subject line exist and be useful.''' |
|
|||
201 |
|
||||
202 | if not subject: |
|
|||
203 | if count > 1: |
|
|||
204 | subject = _('%s: %d new changesets') % (self.root, count) |
|
|||
205 | else: |
|
|||
206 | changes = self.repo.changelog.read(node) |
|
|||
207 | s = changes[4].lstrip().split('\n', 1)[0].rstrip() |
|
|||
208 | subject = '%s: %s' % (self.root, s) |
|
|||
209 | maxsubject = int(self.ui.config('notify', 'maxsubject', 67)) |
|
|||
210 | if maxsubject and len(subject) > maxsubject: |
|
|||
211 | subject = subject[:maxsubject-3] + '...' |
|
|||
212 | msg['Subject'] = mail.headencode(self.ui, subject, |
|
|||
213 | self.charsets, self.test) |
|
|||
214 |
|
197 | |||
215 | def fix_sender(sender): |
|
198 | # try to make subject line exist and be useful | |
216 | '''try to make message have proper sender.''' |
|
199 | if not subject: | |
|
200 | if count > 1: | |||
|
201 | subject = _('%s: %d new changesets') % (self.root, count) | |||
|
202 | else: | |||
|
203 | s = ctx.description().lstrip().split('\n', 1)[0].rstrip() | |||
|
204 | subject = '%s: %s' % (self.root, s) | |||
|
205 | maxsubject = int(self.ui.config('notify', 'maxsubject', 67)) | |||
|
206 | if maxsubject and len(subject) > maxsubject: | |||
|
207 | subject = subject[:maxsubject-3] + '...' | |||
|
208 | msg['Subject'] = mail.headencode(self.ui, subject, | |||
|
209 | self.charsets, self.test) | |||
217 |
|
210 | |||
218 | if not sender: |
|
211 | # try to make message have proper sender | |
219 | sender = self.ui.config('email', 'from') or self.ui.username() |
|
212 | if not sender: | |
220 | if '@' not in sender or '@localhost' in sender: |
|
213 | sender = self.ui.config('email', 'from') or self.ui.username() | |
221 | sender = self.fixmail(sender) |
|
214 | if '@' not in sender or '@localhost' in sender: | |
222 | msg['From'] = mail.addressencode(self.ui, sender, |
|
215 | sender = self.fixmail(sender) | |
223 | self.charsets, self.test) |
|
216 | msg['From'] = mail.addressencode(self.ui, sender, | |
|
217 | self.charsets, self.test) | |||
224 |
|
218 | |||
225 | msg['Date'] = util.datestr(format="%a, %d %b %Y %H:%M:%S %1%2") |
|
219 | msg['X-Hg-Notification'] = 'changeset %s' % ctx | |
226 | fix_subject(subject) |
|
|||
227 | fix_sender(sender) |
|
|||
228 |
|
||||
229 | msg['X-Hg-Notification'] = 'changeset ' + short(node) |
|
|||
230 | if not msg['Message-Id']: |
|
220 | if not msg['Message-Id']: | |
231 | msg['Message-Id'] = ('<hg.%s.%s.%s@%s>' % |
|
221 | msg['Message-Id'] = ('<hg.%s.%s.%s@%s>' % | |
232 |
( |
|
222 | (ctx, int(time.time()), | |
233 | hash(self.repo.root), socket.getfqdn())) |
|
223 | hash(self.repo.root), socket.getfqdn())) | |
234 | msg['To'] = ', '.join(self.subs) |
|
224 | msg['To'] = ', '.join(self.subs) | |
235 |
|
225 | |||
@@ -244,10 +234,11 b' class notifier(object):' | |||||
244 | mail.sendmail(self.ui, util.email(msg['From']), |
|
234 | mail.sendmail(self.ui, util.email(msg['From']), | |
245 | self.subs, msgtext) |
|
235 | self.subs, msgtext) | |
246 |
|
236 | |||
247 |
def diff(self, |
|
237 | def diff(self, ctx, ref=None): | |
|
238 | ||||
248 | maxdiff = int(self.ui.config('notify', 'maxdiff', 300)) |
|
239 | maxdiff = int(self.ui.config('notify', 'maxdiff', 300)) | |
249 |
prev = |
|
240 | prev = ctx.parents()[0].node() | |
250 |
|
241 | ref = ref and ref.node() or ctx.node() | ||
251 | chunks = patch.diff(self.repo, prev, ref, opts=patch.diffopts(self.ui)) |
|
242 | chunks = patch.diff(self.repo, prev, ref, opts=patch.diffopts(self.ui)) | |
252 | difflines = ''.join(chunks).splitlines() |
|
243 | difflines = ''.join(chunks).splitlines() | |
253 |
|
244 | |||
@@ -256,14 +247,16 b' class notifier(object):' | |||||
256 | # s may be nil, don't include the header if it is |
|
247 | # s may be nil, don't include the header if it is | |
257 | if s: |
|
248 | if s: | |
258 | self.ui.write('\ndiffstat:\n\n%s' % s) |
|
249 | self.ui.write('\ndiffstat:\n\n%s' % s) | |
|
250 | ||||
259 | if maxdiff == 0: |
|
251 | if maxdiff == 0: | |
260 | return |
|
252 | return | |
261 | if maxdiff > 0 and len(difflines) > maxdiff: |
|
253 | elif maxdiff > 0 and len(difflines) > maxdiff: | |
262 |
|
|
254 | msg = _('\ndiffs (truncated from %d to %d lines):\n\n') | |
263 |
|
|
255 | self.ui.write(msg % (len(difflines), maxdiff)) | |
264 | difflines = difflines[:maxdiff] |
|
256 | difflines = difflines[:maxdiff] | |
265 | elif difflines: |
|
257 | elif difflines: | |
266 | self.ui.write(_('\ndiffs (%d lines):\n\n') % len(difflines)) |
|
258 | self.ui.write(_('\ndiffs (%d lines):\n\n') % len(difflines)) | |
|
259 | ||||
267 | self.ui.write("\n".join(difflines)) |
|
260 | self.ui.write("\n".join(difflines)) | |
268 |
|
261 | |||
269 | def hook(ui, repo, hooktype, node=None, source=None, **kwargs): |
|
262 | def hook(ui, repo, hooktype, node=None, source=None, **kwargs): | |
@@ -271,26 +264,28 b' def hook(ui, repo, hooktype, node=None, ' | |||||
271 |
|
264 | |||
272 | if used as changegroup hook, send one email for all changesets in |
|
265 | if used as changegroup hook, send one email for all changesets in | |
273 | changegroup. else send one email per changeset.''' |
|
266 | changegroup. else send one email per changeset.''' | |
|
267 | ||||
274 | n = notifier(ui, repo, hooktype) |
|
268 | n = notifier(ui, repo, hooktype) | |
|
269 | ctx = repo[node] | |||
|
270 | ||||
275 | if not n.subs: |
|
271 | if not n.subs: | |
276 | ui.debug(_('notify: no subscribers to repo %s\n') % n.root) |
|
272 | ui.debug(_('notify: no subscribers to repo %s\n') % n.root) | |
277 | return |
|
273 | return | |
278 | if n.skipsource(source): |
|
274 | if n.skipsource(source): | |
279 | ui.debug(_('notify: changes have source "%s" - skipping\n') % |
|
275 | ui.debug(_('notify: changes have source "%s" - skipping\n') % source) | |
280 | source) |
|
|||
281 | return |
|
276 | return | |
282 | node = bin(node) |
|
277 | ||
283 | ui.pushbuffer() |
|
278 | ui.pushbuffer() | |
284 | if hooktype == 'changegroup': |
|
279 | if hooktype == 'changegroup': | |
285 |
start = |
|
280 | start, end = ctx.rev(), len(repo) | |
286 | end = len(repo) |
|
|||
287 | count = end - start |
|
281 | count = end - start | |
288 | for rev in xrange(start, end): |
|
282 | for rev in xrange(start, end): | |
289 |
n.node(repo[rev] |
|
283 | n.node(repo[rev]) | |
290 |
n.diff( |
|
284 | n.diff(ctx, repo['tip']) | |
291 | else: |
|
285 | else: | |
292 | count = 1 |
|
286 | count = 1 | |
293 |
n.node( |
|
287 | n.node(ctx) | |
294 |
n.diff( |
|
288 | n.diff(ctx) | |
|
289 | ||||
295 | data = ui.popbuffer() |
|
290 | data = ui.popbuffer() | |
296 |
n.send( |
|
291 | n.send(ctx, count, data) |
@@ -24,6 +24,7 b' For example, if you can refer to a revis' | |||||
24 | foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo |
|
24 | foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo | |
25 | ''' |
|
25 | ''' | |
26 | import mercurial.repo |
|
26 | import mercurial.repo | |
|
27 | from mercurial import error | |||
27 |
|
28 | |||
28 | def reposetup(ui, repo): |
|
29 | def reposetup(ui, repo): | |
29 | if not repo.local(): |
|
30 | if not repo.local(): | |
@@ -34,7 +35,7 b' def reposetup(ui, repo):' | |||||
34 | try: |
|
35 | try: | |
35 | _super = super(parentrevspecrepo, self) |
|
36 | _super = super(parentrevspecrepo, self) | |
36 | return _super.lookup(key) |
|
37 | return _super.lookup(key) | |
37 |
except |
|
38 | except error.RepoError: | |
38 | pass |
|
39 | pass | |
39 |
|
40 | |||
40 | circ = key.find('^') |
|
41 | circ = key.find('^') | |
@@ -50,7 +51,7 b' def reposetup(ui, repo):' | |||||
50 | base = key[:end] |
|
51 | base = key[:end] | |
51 | try: |
|
52 | try: | |
52 | node = _super.lookup(base) |
|
53 | node = _super.lookup(base) | |
53 |
except |
|
54 | except error.RepoError: | |
54 | # eek - reraise the first error |
|
55 | # eek - reraise the first error | |
55 | return _super.lookup(key) |
|
56 | return _super.lookup(key) | |
56 |
|
57 |
@@ -9,8 +9,7 b' The message contains two or three body p' | |||||
9 |
|
9 | |||
10 | The remainder of the changeset description. |
|
10 | The remainder of the changeset description. | |
11 |
|
11 | |||
12 | [Optional] If the diffstat program is installed, the result of |
|
12 | [Optional] The result of running diffstat on the patch. | |
13 | running diffstat on the patch. |
|
|||
14 |
|
13 | |||
15 | The patch itself, as generated by "hg export". |
|
14 | The patch itself, as generated by "hg export". | |
16 |
|
15 | |||
@@ -59,7 +58,13 b' to send each message out:' | |||||
59 |
|
58 | |||
60 | % formail -s sendmail -bm -t < mbox |
|
59 | % formail -s sendmail -bm -t < mbox | |
61 |
|
60 | |||
62 |
That should be all. Now your patchbomb is on its way out. |
|
61 | That should be all. Now your patchbomb is on its way out. | |
|
62 | ||||
|
63 | You can also either configure the method option in the email section | |||
|
64 | to be a sendmail compatable mailer or fill out the [smtp] section so | |||
|
65 | that the patchbomb extension can automatically send patchbombs directly | |||
|
66 | from the commandline. See the [email] and [smtp] sections in hgrc(5) | |||
|
67 | for details.''' | |||
63 |
|
68 | |||
64 | import os, errno, socket, tempfile, cStringIO |
|
69 | import os, errno, socket, tempfile, cStringIO | |
65 | import email.MIMEMultipart, email.MIMEBase |
|
70 | import email.MIMEMultipart, email.MIMEBase | |
@@ -68,19 +73,6 b' from mercurial import cmdutil, commands,' | |||||
68 | from mercurial.i18n import _ |
|
73 | from mercurial.i18n import _ | |
69 | from mercurial.node import bin |
|
74 | from mercurial.node import bin | |
70 |
|
75 | |||
71 | class exportee: |
|
|||
72 | def __init__(self, container): |
|
|||
73 | self.lines = [] |
|
|||
74 | self.container = container |
|
|||
75 | self.name = 'email' |
|
|||
76 |
|
||||
77 | def write(self, data): |
|
|||
78 | self.lines.append(data) |
|
|||
79 |
|
||||
80 | def close(self): |
|
|||
81 | self.container.append(''.join(self.lines).split('\n')) |
|
|||
82 | self.lines = [] |
|
|||
83 |
|
||||
84 | def prompt(ui, prompt, default=None, rest=': ', empty_ok=False): |
|
76 | def prompt(ui, prompt, default=None, rest=': ', empty_ok=False): | |
85 | if not ui.interactive: |
|
77 | if not ui.interactive: | |
86 | return default |
|
78 | return default | |
@@ -99,16 +91,12 b' def prompt(ui, prompt, default=None, res' | |||||
99 |
|
91 | |||
100 | def cdiffstat(ui, summary, patchlines): |
|
92 | def cdiffstat(ui, summary, patchlines): | |
101 | s = patch.diffstat(patchlines) |
|
93 | s = patch.diffstat(patchlines) | |
102 | if s: |
|
94 | if summary: | |
103 |
|
|
95 | ui.write(summary, '\n') | |
104 |
|
|
96 | ui.write(s, '\n') | |
105 | ui.write(s, '\n') |
|
97 | ans = prompt(ui, _('does the diffstat above look okay? '), 'y') | |
106 | ans = prompt(ui, _('Does the diffstat above look okay? '), 'y') |
|
98 | if not ans.lower().startswith('y'): | |
107 | if not ans.lower().startswith('y'): |
|
99 | raise util.Abort(_('diffstat rejected')) | |
108 | raise util.Abort(_('diffstat rejected')) |
|
|||
109 | elif s is None: |
|
|||
110 | ui.warn(_('no diffstat information available\n')) |
|
|||
111 | s = '' |
|
|||
112 | return s |
|
100 | return s | |
113 |
|
101 | |||
114 | def makepatch(ui, repo, patch, opts, _charsets, idx, total, patchname=None): |
|
102 | def makepatch(ui, repo, patch, opts, _charsets, idx, total, patchname=None): | |
@@ -239,6 +227,13 b' def patchbomb(ui, repo, *revs, **opts):' | |||||
239 | o = repo.changelog.nodesbetween(o, revs or None)[0] |
|
227 | o = repo.changelog.nodesbetween(o, revs or None)[0] | |
240 | return [str(repo.changelog.rev(r)) for r in o] |
|
228 | return [str(repo.changelog.rev(r)) for r in o] | |
241 |
|
229 | |||
|
230 | def getpatches(revs): | |||
|
231 | for r in cmdutil.revrange(repo, revs): | |||
|
232 | output = cStringIO.StringIO() | |||
|
233 | p = patch.export(repo, [r], fp=output, | |||
|
234 | opts=patch.diffopts(ui, opts)) | |||
|
235 | yield output.getvalue().split('\n') | |||
|
236 | ||||
242 | def getbundle(dest): |
|
237 | def getbundle(dest): | |
243 | tmpdir = tempfile.mkdtemp(prefix='hg-email-bundle-') |
|
238 | tmpdir = tempfile.mkdtemp(prefix='hg-email-bundle-') | |
244 | tmpfn = os.path.join(tmpdir, 'bundle') |
|
239 | tmpfn = os.path.join(tmpdir, 'bundle') | |
@@ -308,7 +303,7 b' def patchbomb(ui, repo, *revs, **opts):' | |||||
308 | % len(patches)) |
|
303 | % len(patches)) | |
309 |
|
304 | |||
310 | name = None |
|
305 | name = None | |
311 |
for |
|
306 | for i, p in enumerate(patches): | |
312 | jumbo.extend(p) |
|
307 | jumbo.extend(p) | |
313 | if patchnames: |
|
308 | if patchnames: | |
314 | name = patchnames[i] |
|
309 | name = patchnames[i] | |
@@ -360,18 +355,14 b' def patchbomb(ui, repo, *revs, **opts):' | |||||
360 | ui.config('patchbomb', 'from') or |
|
355 | ui.config('patchbomb', 'from') or | |
361 | prompt(ui, 'From', ui.username())) |
|
356 | prompt(ui, 'From', ui.username())) | |
362 |
|
357 | |||
|
358 | # internal option used by pbranches | |||
363 | patches = opts.get('patches') |
|
359 | patches = opts.get('patches') | |
364 | if patches: |
|
360 | if patches: | |
365 | msgs = getpatchmsgs(patches, opts.get('patchnames')) |
|
361 | msgs = getpatchmsgs(patches, opts.get('patchnames')) | |
366 | elif opts.get('bundle'): |
|
362 | elif opts.get('bundle'): | |
367 | msgs = getbundlemsgs(getbundle(dest)) |
|
363 | msgs = getbundlemsgs(getbundle(dest)) | |
368 | else: |
|
364 | else: | |
369 | patches = [] |
|
365 | msgs = getpatchmsgs(list(getpatches(revs))) | |
370 | commands.export(ui, repo, *revs, **{'output': exportee(patches), |
|
|||
371 | 'switch_parent': False, |
|
|||
372 | 'text': None, |
|
|||
373 | 'git': opts.get('git')}) |
|
|||
374 | msgs = getpatchmsgs(patches) |
|
|||
375 |
|
366 | |||
376 | def getaddrs(opt, prpt, default = None): |
|
367 | def getaddrs(opt, prpt, default = None): | |
377 | addrs = opts.get(opt) or (ui.config('email', opt) or |
|
368 | addrs = opts.get(opt) or (ui.config('email', opt) or |
@@ -32,28 +32,26 b' from mercurial.i18n import _' | |||||
32 | import os |
|
32 | import os | |
33 |
|
33 | |||
34 | def purge(ui, repo, *dirs, **opts): |
|
34 | def purge(ui, repo, *dirs, **opts): | |
35 |
'''removes files not tracked by |
|
35 | '''removes files not tracked by Mercurial | |
36 |
|
36 | |||
37 |
Delete files not known to |
|
37 | Delete files not known to Mercurial. This is useful to test local and | |
38 |
uncommitted changes in |
|
38 | uncommitted changes in an otherwise-clean source tree. | |
39 |
|
39 | |||
40 | This means that purge will delete: |
|
40 | This means that purge will delete: | |
41 | - Unknown files: files marked with "?" by "hg status" |
|
41 | - Unknown files: files marked with "?" by "hg status" | |
42 | - Ignored files: files usually ignored by Mercurial because they match |
|
|||
43 | a pattern in a ".hgignore" file |
|
|||
44 | - Empty directories: in fact Mercurial ignores directories unless they |
|
42 | - Empty directories: in fact Mercurial ignores directories unless they | |
45 | contain files under source control managment |
|
43 | contain files under source control managment | |
46 | But it will leave untouched: |
|
44 | But it will leave untouched: | |
47 |
- |
|
45 | - Modified and unmodified tracked files | |
48 | - Modified tracked files |
|
46 | - Ignored files (unless --all is specified) | |
49 | - New files added to the repository (with "hg add") |
|
47 | - New files added to the repository (with "hg add") | |
50 |
|
48 | |||
51 | If directories are given on the command line, only files in these |
|
49 | If directories are given on the command line, only files in these | |
52 | directories are considered. |
|
50 | directories are considered. | |
53 |
|
51 | |||
54 | Be careful with purge, you could irreversibly delete some files you |
|
52 | Be careful with purge, as you could irreversibly delete some files you | |
55 | forgot to add to the repository. If you only want to print the list of |
|
53 | forgot to add to the repository. If you only want to print the list of | |
56 | files that this program would delete use the --print option. |
|
54 | files that this program would delete, use the --print option. | |
57 | ''' |
|
55 | ''' | |
58 | act = not opts['print'] |
|
56 | act = not opts['print'] | |
59 | eol = '\n' |
|
57 | eol = '\n' | |
@@ -64,7 +62,7 b' def purge(ui, repo, *dirs, **opts):' | |||||
64 | def remove(remove_func, name): |
|
62 | def remove(remove_func, name): | |
65 | if act: |
|
63 | if act: | |
66 | try: |
|
64 | try: | |
67 |
remove_func( |
|
65 | remove_func(repo.wjoin(name)) | |
68 | except OSError: |
|
66 | except OSError: | |
69 | m = _('%s cannot be removed') % name |
|
67 | m = _('%s cannot be removed') % name | |
70 | if opts['abort_on_err']: |
|
68 | if opts['abort_on_err']: |
@@ -13,7 +13,7 b' For more information:' | |||||
13 | http://www.selenic.com/mercurial/wiki/index.cgi/RebaseProject |
|
13 | http://www.selenic.com/mercurial/wiki/index.cgi/RebaseProject | |
14 | ''' |
|
14 | ''' | |
15 |
|
15 | |||
16 |
from mercurial import util, repair, merge, cmdutil, d |
|
16 | from mercurial import util, repair, merge, cmdutil, commands, error | |
17 | from mercurial import extensions, ancestor |
|
17 | from mercurial import extensions, ancestor | |
18 | from mercurial.commands import templateopts |
|
18 | from mercurial.commands import templateopts | |
19 | from mercurial.node import nullrev |
|
19 | from mercurial.node import nullrev | |
@@ -34,7 +34,7 b' def rebasemerge(repo, rev, first=False):' | |||||
34 | if not first: |
|
34 | if not first: | |
35 | ancestor.ancestor = newancestor |
|
35 | ancestor.ancestor = newancestor | |
36 | else: |
|
36 | else: | |
37 |
repo.ui.debug(_(" |
|
37 | repo.ui.debug(_("first revision, do not change ancestor\n")) | |
38 | stats = merge.update(repo, rev, True, True, False) |
|
38 | stats = merge.update(repo, rev, True, True, False) | |
39 | return stats |
|
39 | return stats | |
40 |
|
40 | |||
@@ -67,21 +67,21 b' def rebase(ui, repo, **opts):' | |||||
67 | extrafn = opts.get('extrafn') |
|
67 | extrafn = opts.get('extrafn') | |
68 | if opts.get('keepbranches', None): |
|
68 | if opts.get('keepbranches', None): | |
69 | if extrafn: |
|
69 | if extrafn: | |
70 |
raise |
|
70 | raise error.ParseError( | |
71 |
|
|
71 | 'rebase', _('cannot use both keepbranches and extrafn')) | |
72 | def extrafn(ctx, extra): |
|
72 | def extrafn(ctx, extra): | |
73 | extra['branch'] = ctx.branch() |
|
73 | extra['branch'] = ctx.branch() | |
74 |
|
74 | |||
75 | if contf or abortf: |
|
75 | if contf or abortf: | |
76 | if contf and abortf: |
|
76 | if contf and abortf: | |
77 |
raise |
|
77 | raise error.ParseError('rebase', | |
78 | _('cannot use both abort and continue')) |
|
78 | _('cannot use both abort and continue')) | |
79 | if collapsef: |
|
79 | if collapsef: | |
80 |
raise |
|
80 | raise error.ParseError( | |
81 |
|
|
81 | 'rebase', _('cannot use collapse with continue or abort')) | |
82 |
|
82 | |||
83 | if (srcf or basef or destf): |
|
83 | if (srcf or basef or destf): | |
84 |
raise |
|
84 | raise error.ParseError('rebase', | |
85 | _('abort and continue do not allow specifying revisions')) |
|
85 | _('abort and continue do not allow specifying revisions')) | |
86 |
|
86 | |||
87 | originalwd, target, state, collapsef, external = restorestatus(repo) |
|
87 | originalwd, target, state, collapsef, external = restorestatus(repo) | |
@@ -90,8 +90,8 b' def rebase(ui, repo, **opts):' | |||||
90 | return |
|
90 | return | |
91 | else: |
|
91 | else: | |
92 | if srcf and basef: |
|
92 | if srcf and basef: | |
93 |
raise |
|
93 | raise error.ParseError('rebase', _('cannot specify both a ' | |
94 |
|
|
94 | 'revision and a base')) | |
95 | cmdutil.bail_if_changed(repo) |
|
95 | cmdutil.bail_if_changed(repo) | |
96 | result = buildstate(repo, destf, srcf, basef, collapsef) |
|
96 | result = buildstate(repo, destf, srcf, basef, collapsef) | |
97 | if result: |
|
97 | if result: | |
@@ -281,7 +281,7 b' def storestatus(repo, originalwd, target' | |||||
281 | f.write(repo[target].hex() + '\n') |
|
281 | f.write(repo[target].hex() + '\n') | |
282 | f.write(repo[external].hex() + '\n') |
|
282 | f.write(repo[external].hex() + '\n') | |
283 | f.write('%d\n' % int(collapse)) |
|
283 | f.write('%d\n' % int(collapse)) | |
284 | for d, v in state.items(): |
|
284 | for d, v in state.iteritems(): | |
285 | oldrev = repo[d].hex() |
|
285 | oldrev = repo[d].hex() | |
286 | newrev = repo[v].hex() |
|
286 | newrev = repo[v].hex() | |
287 | f.write("%s:%s\n" % (oldrev, newrev)) |
|
287 | f.write("%s:%s\n" % (oldrev, newrev)) | |
@@ -400,7 +400,9 b' def pullrebase(orig, ui, repo, *args, **' | |||||
400 | 'Call rebase after pull if the latter has been invoked with --rebase' |
|
400 | 'Call rebase after pull if the latter has been invoked with --rebase' | |
401 | if opts.get('rebase'): |
|
401 | if opts.get('rebase'): | |
402 | if opts.get('update'): |
|
402 | if opts.get('update'): | |
403 | raise util.Abort(_('--update and --rebase are not compatible')) |
|
403 | del opts.get['update'] | |
|
404 | ui.debug(_('--update and --rebase are not compatible, ignoring ' | |||
|
405 | 'the update flag\n')) | |||
404 |
|
406 | |||
405 | cmdutil.bail_if_changed(repo) |
|
407 | cmdutil.bail_if_changed(repo) | |
406 | revsprepull = len(repo) |
|
408 | revsprepull = len(repo) | |
@@ -408,6 +410,11 b' def pullrebase(orig, ui, repo, *args, **' | |||||
408 | revspostpull = len(repo) |
|
410 | revspostpull = len(repo) | |
409 | if revspostpull > revsprepull: |
|
411 | if revspostpull > revsprepull: | |
410 | rebase(ui, repo, **opts) |
|
412 | rebase(ui, repo, **opts) | |
|
413 | branch = repo[None].branch() | |||
|
414 | dest = repo[branch].rev() | |||
|
415 | if dest != repo['.'].rev(): | |||
|
416 | # there was nothing to rebase we force an update | |||
|
417 | merge.update(repo, dest, False, False, False) | |||
411 | else: |
|
418 | else: | |
412 | orig(ui, repo, *args, **opts) |
|
419 | orig(ui, repo, *args, **opts) | |
413 |
|
420 |
@@ -406,15 +406,10 b' def dorecord(ui, repo, committer, *pats,' | |||||
406 | In the end we'll record intresting changes, and everything else will be |
|
406 | In the end we'll record intresting changes, and everything else will be | |
407 | left in place, so the user can continue his work. |
|
407 | left in place, so the user can continue his work. | |
408 | """ |
|
408 | """ | |
409 | if match.files(): |
|
409 | ||
410 | changes = None |
|
410 | changes = repo.status(match=match)[:3] | |
411 | else: |
|
|||
412 | changes = repo.status(match=match)[:3] |
|
|||
413 | modified, added, removed = changes |
|
|||
414 | match = cmdutil.matchfiles(repo, modified + added + removed) |
|
|||
415 | diffopts = mdiff.diffopts(git=True, nodates=True) |
|
411 | diffopts = mdiff.diffopts(git=True, nodates=True) | |
416 |
chunks = patch.diff(repo, |
|
412 | chunks = patch.diff(repo, changes=changes, opts=diffopts) | |
417 | changes=changes, opts=diffopts) |
|
|||
418 | fp = cStringIO.StringIO() |
|
413 | fp = cStringIO.StringIO() | |
419 | fp.write(''.join(chunks)) |
|
414 | fp.write(''.join(chunks)) | |
420 | fp.seek(0) |
|
415 | fp.seek(0) | |
@@ -428,15 +423,12 b' def dorecord(ui, repo, committer, *pats,' | |||||
428 | try: contenders.update(dict.fromkeys(h.files())) |
|
423 | try: contenders.update(dict.fromkeys(h.files())) | |
429 | except AttributeError: pass |
|
424 | except AttributeError: pass | |
430 |
|
425 | |||
431 | newfiles = [f for f in match.files() if f in contenders] |
|
426 | changed = changes[0] + changes[1] + changes[2] | |
432 |
|
427 | newfiles = [f for f in changed if f in contenders] | ||
433 | if not newfiles: |
|
428 | if not newfiles: | |
434 | ui.status(_('no changes to record\n')) |
|
429 | ui.status(_('no changes to record\n')) | |
435 | return 0 |
|
430 | return 0 | |
436 |
|
431 | |||
437 | if changes is None: |
|
|||
438 | match = cmdutil.matchfiles(repo, newfiles) |
|
|||
439 | changes = repo.status(match=match) |
|
|||
440 | modified = dict.fromkeys(changes[0]) |
|
432 | modified = dict.fromkeys(changes[0]) | |
441 |
|
433 | |||
442 | # 2. backup changed files, so we can restore them in the end |
|
434 | # 2. backup changed files, so we can restore them in the end | |
@@ -475,7 +467,9 b' def dorecord(ui, repo, committer, *pats,' | |||||
475 | try: |
|
467 | try: | |
476 | ui.debug(_('applying patch\n')) |
|
468 | ui.debug(_('applying patch\n')) | |
477 | ui.debug(fp.getvalue()) |
|
469 | ui.debug(fp.getvalue()) | |
478 | patch.internalpatch(fp, ui, 1, repo.root) |
|
470 | pfiles = {} | |
|
471 | patch.internalpatch(fp, ui, 1, repo.root, files=pfiles) | |||
|
472 | patch.updatedir(ui, repo, pfiles) | |||
479 | except patch.PatchError, err: |
|
473 | except patch.PatchError, err: | |
480 | s = str(err) |
|
474 | s = str(err) | |
481 | if s: |
|
475 | if s: |
@@ -5,11 +5,6 b'' | |||||
5 | # This software may be used and distributed according to the terms |
|
5 | # This software may be used and distributed according to the terms | |
6 | # of the GNU General Public License, incorporated herein by reference. |
|
6 | # of the GNU General Public License, incorporated herein by reference. | |
7 |
|
7 | |||
8 | from mercurial.i18n import _ |
|
|||
9 | import os, tempfile |
|
|||
10 | from mercurial import bundlerepo, changegroup, cmdutil, hg, merge |
|
|||
11 | from mercurial import patch, revlog, util |
|
|||
12 |
|
||||
13 | '''patch transplanting tool |
|
8 | '''patch transplanting tool | |
14 |
|
9 | |||
15 | This extension allows you to transplant patches from another branch. |
|
10 | This extension allows you to transplant patches from another branch. | |
@@ -18,6 +13,11 b' Transplanted patches are recorded in .hg' | |||||
18 | from a changeset hash to its hash in the source repository. |
|
13 | from a changeset hash to its hash in the source repository. | |
19 | ''' |
|
14 | ''' | |
20 |
|
15 | |||
|
16 | from mercurial.i18n import _ | |||
|
17 | import os, tempfile | |||
|
18 | from mercurial import bundlerepo, changegroup, cmdutil, hg, merge | |||
|
19 | from mercurial import patch, revlog, util, error | |||
|
20 | ||||
21 | class transplantentry: |
|
21 | class transplantentry: | |
22 | def __init__(self, lnode, rnode): |
|
22 | def __init__(self, lnode, rnode): | |
23 | self.lnode = lnode |
|
23 | self.lnode = lnode | |
@@ -69,7 +69,8 b' class transplanter:' | |||||
69 | self.ui = ui |
|
69 | self.ui = ui | |
70 | self.path = repo.join('transplant') |
|
70 | self.path = repo.join('transplant') | |
71 | self.opener = util.opener(self.path) |
|
71 | self.opener = util.opener(self.path) | |
72 |
self.transplants = transplants(self.path, 'transplants', |
|
72 | self.transplants = transplants(self.path, 'transplants', | |
|
73 | opener=self.opener) | |||
73 |
|
74 | |||
74 | def applied(self, repo, node, parent): |
|
75 | def applied(self, repo, node, parent): | |
75 | '''returns True if a node is already an ancestor of parent |
|
76 | '''returns True if a node is already an ancestor of parent | |
@@ -109,8 +110,8 b' class transplanter:' | |||||
109 |
|
110 | |||
110 | parents = source.changelog.parents(node) |
|
111 | parents = source.changelog.parents(node) | |
111 | if not opts.get('filter'): |
|
112 | if not opts.get('filter'): | |
112 |
# If the changeset parent is the same as the |
|
113 | # If the changeset parent is the same as the | |
113 | # just pull it. |
|
114 | # wdir's parent, just pull it. | |
114 | if parents[0] == p1: |
|
115 | if parents[0] == p1: | |
115 | pulls.append(node) |
|
116 | pulls.append(node) | |
116 | p1 = node |
|
117 | p1 = node | |
@@ -124,9 +125,9 b' class transplanter:' | |||||
124 |
|
125 | |||
125 | domerge = False |
|
126 | domerge = False | |
126 | if node in merges: |
|
127 | if node in merges: | |
127 |
# pulling all the merge revs at once would mean we |
|
128 | # pulling all the merge revs at once would mean we | |
128 |
# transplant after the latest even if |
|
129 | # couldn't transplant after the latest even if | |
129 | # fail. |
|
130 | # transplants before them fail. | |
130 | domerge = True |
|
131 | domerge = True | |
131 | if not hasnode(repo, node): |
|
132 | if not hasnode(repo, node): | |
132 | repo.pull(source, heads=[node]) |
|
133 | repo.pull(source, heads=[node]) | |
@@ -155,8 +156,9 b' class transplanter:' | |||||
155 | self.ui.status(_('%s merged at %s\n') % (revstr, |
|
156 | self.ui.status(_('%s merged at %s\n') % (revstr, | |
156 | revlog.short(n))) |
|
157 | revlog.short(n))) | |
157 | elif n: |
|
158 | elif n: | |
158 |
self.ui.status(_('%s transplanted to %s\n') |
|
159 | self.ui.status(_('%s transplanted to %s\n') | |
159 |
|
|
160 | % (revlog.short(node), | |
|
161 | revlog.short(n))) | |||
160 | finally: |
|
162 | finally: | |
161 | if patchfile: |
|
163 | if patchfile: | |
162 | os.unlink(patchfile) |
|
164 | os.unlink(patchfile) | |
@@ -217,7 +219,8 b' class transplanter:' | |||||
217 | fuzz = patch.patch(patchfile, self.ui, cwd=repo.root, |
|
219 | fuzz = patch.patch(patchfile, self.ui, cwd=repo.root, | |
218 | files=files) |
|
220 | files=files) | |
219 | if not files: |
|
221 | if not files: | |
220 |
self.ui.warn(_('%s: empty changeset') |
|
222 | self.ui.warn(_('%s: empty changeset') | |
|
223 | % revlog.hex(node)) | |||
221 | return None |
|
224 | return None | |
222 | finally: |
|
225 | finally: | |
223 | files = patch.updatedir(self.ui, repo, files) |
|
226 | files = patch.updatedir(self.ui, repo, files) | |
@@ -231,7 +234,8 b' class transplanter:' | |||||
231 | p2 = node |
|
234 | p2 = node | |
232 | self.log(user, date, message, p1, p2, merge=merge) |
|
235 | self.log(user, date, message, p1, p2, merge=merge) | |
233 | self.ui.write(str(inst) + '\n') |
|
236 | self.ui.write(str(inst) + '\n') | |
234 |
raise util.Abort(_('Fix up the merge and run |
|
237 | raise util.Abort(_('Fix up the merge and run ' | |
|
238 | 'hg transplant --continue')) | |||
235 | else: |
|
239 | else: | |
236 | files = None |
|
240 | files = None | |
237 | if merge: |
|
241 | if merge: | |
@@ -380,7 +384,7 b' class transplanter:' | |||||
380 | def hasnode(repo, node): |
|
384 | def hasnode(repo, node): | |
381 | try: |
|
385 | try: | |
382 | return repo.changelog.rev(node) != None |
|
386 | return repo.changelog.rev(node) != None | |
383 |
except |
|
387 | except error.RevlogError: | |
384 | return False |
|
388 | return False | |
385 |
|
389 | |||
386 | def browserevs(ui, repo, nodes, opts): |
|
390 | def browserevs(ui, repo, nodes, opts): | |
@@ -496,16 +500,19 b' def transplant(ui, repo, *revs, **opts):' | |||||
496 | def checkopts(opts, revs): |
|
500 | def checkopts(opts, revs): | |
497 | if opts.get('continue'): |
|
501 | if opts.get('continue'): | |
498 | if filter(lambda opt: opts.get(opt), ('branch', 'all', 'merge')): |
|
502 | if filter(lambda opt: opts.get(opt), ('branch', 'all', 'merge')): | |
499 |
raise util.Abort(_('--continue is incompatible with |
|
503 | raise util.Abort(_('--continue is incompatible with ' | |
|
504 | 'branch, all or merge')) | |||
500 | return |
|
505 | return | |
501 | if not (opts.get('source') or revs or |
|
506 | if not (opts.get('source') or revs or | |
502 | opts.get('merge') or opts.get('branch')): |
|
507 | opts.get('merge') or opts.get('branch')): | |
503 |
raise util.Abort(_('no source URL, branch tag or revision |
|
508 | raise util.Abort(_('no source URL, branch tag or revision ' | |
|
509 | 'list provided')) | |||
504 | if opts.get('all'): |
|
510 | if opts.get('all'): | |
505 | if not opts.get('branch'): |
|
511 | if not opts.get('branch'): | |
506 | raise util.Abort(_('--all requires a branch revision')) |
|
512 | raise util.Abort(_('--all requires a branch revision')) | |
507 | if revs: |
|
513 | if revs: | |
508 |
raise util.Abort(_('--all is incompatible with a |
|
514 | raise util.Abort(_('--all is incompatible with a ' | |
|
515 | 'revision list')) | |||
509 |
|
516 | |||
510 | checkopts(opts, revs) |
|
517 | checkopts(opts, revs) | |
511 |
|
518 | |||
@@ -553,9 +560,11 b' def transplant(ui, repo, *revs, **opts):' | |||||
553 | revmap[int(r)] = source.lookup(r) |
|
560 | revmap[int(r)] = source.lookup(r) | |
554 | elif opts.get('all') or not merges: |
|
561 | elif opts.get('all') or not merges: | |
555 | if source != repo: |
|
562 | if source != repo: | |
556 |
alltransplants = incwalk(source, incoming, branches, |
|
563 | alltransplants = incwalk(source, incoming, branches, | |
|
564 | match=matchfn) | |||
557 | else: |
|
565 | else: | |
558 |
alltransplants = transplantwalk(source, p1, branches, |
|
566 | alltransplants = transplantwalk(source, p1, branches, | |
|
567 | match=matchfn) | |||
559 | if opts.get('all'): |
|
568 | if opts.get('all'): | |
560 | revs = alltransplants |
|
569 | revs = alltransplants | |
561 | else: |
|
570 | else: | |
@@ -581,7 +590,9 b' cmdtable = {' | |||||
581 | ('p', 'prune', [], _('skip over REV')), |
|
590 | ('p', 'prune', [], _('skip over REV')), | |
582 | ('m', 'merge', [], _('merge at REV')), |
|
591 | ('m', 'merge', [], _('merge at REV')), | |
583 | ('', 'log', None, _('append transplant info to log message')), |
|
592 | ('', 'log', None, _('append transplant info to log message')), | |
584 |
('c', 'continue', None, _('continue last transplant session |
|
593 | ('c', 'continue', None, _('continue last transplant session ' | |
|
594 | 'after repair')), | |||
585 | ('', 'filter', '', _('filter changesets through FILTER'))], |
|
595 | ('', 'filter', '', _('filter changesets through FILTER'))], | |
586 |
_('hg transplant [-s REPOSITORY] [-b BRANCH [-a]] [-p REV] |
|
596 | _('hg transplant [-s REPOSITORY] [-b BRANCH [-a]] [-p REV] ' | |
|
597 | '[-m REV] [REV]...')) | |||
587 | } |
|
598 | } |
@@ -8,7 +8,7 b'' | |||||
8 | # This software may be used and distributed according to the terms |
|
8 | # This software may be used and distributed according to the terms | |
9 | # of the GNU General Public License, incorporated herein by reference. |
|
9 | # of the GNU General Public License, incorporated herein by reference. | |
10 | # |
|
10 | # | |
11 |
""" |
|
11 | """allow to use MBCS path with problematic encoding. | |
12 |
|
12 | |||
13 | Some MBCS encodings are not good for some path operations |
|
13 | Some MBCS encodings are not good for some path operations | |
14 | (i.e. splitting path, case conversion, etc.) with its encoded bytes. |
|
14 | (i.e. splitting path, case conversion, etc.) with its encoded bytes. |
@@ -6,6 +6,29 b'' | |||||
6 | # the GNU General Public License (version 2), incorporated herein by |
|
6 | # the GNU General Public License (version 2), incorporated herein by | |
7 | # reference. |
|
7 | # reference. | |
8 |
|
8 | |||
|
9 | '''zeroconf support for mercurial repositories | |||
|
10 | ||||
|
11 | Zeroconf enabled repositories will be announced in a network without the need | |||
|
12 | to configure a server or a service. They can be discovered without knowing | |||
|
13 | their actual IP address. | |||
|
14 | ||||
|
15 | To use the zeroconf extension add the following entry to your hgrc file: | |||
|
16 | ||||
|
17 | [extensions] | |||
|
18 | hgext.zeroconf = | |||
|
19 | ||||
|
20 | To allow other people to discover your repository using run "hg serve" in your | |||
|
21 | repository. | |||
|
22 | ||||
|
23 | $ cd test | |||
|
24 | $ hg serve | |||
|
25 | ||||
|
26 | You can discover zeroconf enabled repositories by running "hg paths". | |||
|
27 | ||||
|
28 | $ hg paths | |||
|
29 | zc-test = http://example.com:8000/test | |||
|
30 | ''' | |||
|
31 | ||||
9 | import Zeroconf, socket, time, os |
|
32 | import Zeroconf, socket, time, os | |
10 | from mercurial import ui |
|
33 | from mercurial import ui | |
11 | from mercurial import extensions |
|
34 | from mercurial import extensions | |
@@ -29,7 +52,7 b' def getip():' | |||||
29 |
|
52 | |||
30 | # Generic method, sometimes gives useless results |
|
53 | # Generic method, sometimes gives useless results | |
31 | dumbip = socket.gethostbyaddr(socket.gethostname())[2][0] |
|
54 | dumbip = socket.gethostbyaddr(socket.gethostname())[2][0] | |
32 | if not dumbip.startswith('127.'): |
|
55 | if not dumbip.startswith('127.') and ':' not in dumbip: | |
33 | return dumbip |
|
56 | return dumbip | |
34 |
|
57 | |||
35 | # works elsewhere, but actually sends a packet |
|
58 | # works elsewhere, but actually sends a packet |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file, binary diff hidden |
|
NO CONTENT: modified file, binary diff hidden |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file, binary diff hidden |
|
NO CONTENT: modified file, binary diff hidden |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
General Comments 0
You need to be logged in to leave comments.
Login now