# HG changeset patch # User Martin Geisler # Date 1238533871 -7200 # Node ID 072df47d84c16d432bc4f041194184901fea1ac2 # Parent 0796c8862bee74ba62ca0b2cb0eda496aff282c2# Parent 47b0a881638f4dfcb89e02ec1c46c8afc003774b merge with -stable diff -r 47b0a881638f -r 072df47d84c1 Makefile --- a/Makefile Tue Mar 31 07:56:28 2009 +0200 +++ b/Makefile Tue Mar 31 23:11:11 2009 +0200 @@ -2,6 +2,7 @@ export PREFIX PYTHON=python PURE= +PYTHON_FILES:=$(shell find mercurial hgext doc -name '*.py') help: @echo 'Commonly used make targets:' @@ -76,7 +77,9 @@ test-%: cd tests && $(PYTHON) run-tests.py $(TESTFLAGS) $@ -update-pot: +update-pot: i18n/hg.pot + +i18n/hg.pot: $(PYTHON_FILES) mkdir -p i18n pygettext -d hg -p i18n --docstrings \ mercurial/commands.py hgext/*.py hgext/*/__init__.py @@ -86,10 +89,13 @@ # parse these them even though they are not marked for # translation. Extracting with an explicit encoding of # ISO-8859-1 will make xgettext "parse" and ignore them. - find mercurial hgext doc -name '*.py' | xargs \ + echo $^ | xargs \ xgettext --from-code ISO-8859-1 --join --sort-by-file \ -d hg -p i18n -o hg.pot +%.po: i18n/hg.pot + msgmerge --no-location --update $@ $^ + .PHONY: help all local build doc clean install install-bin install-doc \ install-home install-home-bin install-home-doc dist dist-notests tests \ update-pot diff -r 47b0a881638f -r 072df47d84c1 contrib/perf.py --- a/contrib/perf.py Tue Mar 31 07:56:28 2009 +0200 +++ b/contrib/perf.py Tue Mar 31 23:11:11 2009 +0200 @@ -1,7 +1,7 @@ # perf.py - performance test routines from mercurial.i18n import _ -from mercurial import cmdutil, match +from mercurial import cmdutil, match, commands import time, os, sys def timer(func): @@ -101,6 +101,18 @@ def perflookup(ui, repo, rev): timer(lambda: len(repo.lookup(rev))) +def perflog(ui, repo): + ui.pushbuffer() + timer(lambda: commands.log(ui, repo, rev=[], date='', user='')) + ui.popbuffer() + +def perftemplating(ui, repo): + ui.pushbuffer() + timer(lambda: commands.log(ui, repo, rev=[], date='', user='', + template='{date|shortdate} [{rev}:{node|short}]' + ' {author|person}: {desc|firstline}\n')) + ui.popbuffer() + cmdtable = { 'perflookup': (perflookup, []), 'perfparents': (perfparents, []), @@ -113,5 +125,7 @@ 'perftags': (perftags, []), 'perfdirstate': (perfdirstate, []), 'perfdirstatedirs': (perfdirstate, []), + 'perflog': (perflog, []), + 'perftemplating': (perftemplating, []), } diff -r 47b0a881638f -r 072df47d84c1 contrib/python-hook-examples.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/python-hook-examples.py Tue Mar 31 23:11:11 2009 +0200 @@ -0,0 +1,22 @@ +''' +Examples of useful python hooks for Mercurial. +''' +from mercurial import patch, util + +def diffstat(ui, repo, **kwargs): + '''Example usage: + + [hooks] + commit.diffstat = python:/path/to/this/file.py:diffstat + changegroup.diffstat = python:/path/to/this/file.py:diffstat + ''' + if kwargs.get('parent2'): + return + node = kwargs['node'] + first = repo[node].parents()[0].node() + if 'url' in kwargs: + last = repo['tip'].node() + else: + last = node + diff = patch.diff(repo, first, last) + ui.write(patch.diffstat(util.iterlines(diff))) diff -r 47b0a881638f -r 072df47d84c1 doc/hgrc.5.txt --- a/doc/hgrc.5.txt Tue Mar 31 07:56:28 2009 +0200 +++ b/doc/hgrc.5.txt Tue Mar 31 23:11:11 2009 +0200 @@ -475,6 +475,7 @@ The syntax for Python hooks is as follows: hookname = python:modulename.submodule.callable + hookname = python:/path/to/python/module.py:callable Python hooks are run within the Mercurial process. Each hook is called with at least three keyword arguments: a ui object (keyword diff -r 47b0a881638f -r 072df47d84c1 hgext/churn.py --- a/hgext/churn.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/churn.py Tue Mar 31 23:11:11 2009 +0200 @@ -9,7 +9,7 @@ from mercurial.i18n import _ from mercurial import patch, cmdutil, util, templater -import os, sys +import sys import time, datetime def maketemplater(ui, repo, tmpl): @@ -21,9 +21,10 @@ t.use_template(tmpl) return t -def changedlines(ui, repo, ctx1, ctx2): +def changedlines(ui, repo, ctx1, ctx2, fns): lines = 0 - diff = ''.join(patch.diff(repo, ctx1.node(), ctx2.node())) + fmatch = cmdutil.match(repo, pats=fns) + diff = ''.join(patch.diff(repo, ctx1.node(), ctx2.node(), fmatch)) for l in diff.split('\n'): if (l.startswith("+") and not l.startswith("+++ ") or l.startswith("-") and not l.startswith("--- ")): @@ -71,7 +72,7 @@ continue ctx1 = parents[0] - lines = changedlines(ui, repo, ctx1, ctx) + lines = changedlines(ui, repo, ctx1, ctx, fns) rate[key] = rate.get(key, 0) + lines if opts.get('progress'): diff -r 47b0a881638f -r 072df47d84c1 hgext/convert/__init__.py --- a/hgext/convert/__init__.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/convert/__init__.py Tue Mar 31 23:11:11 2009 +0200 @@ -8,6 +8,7 @@ import convcmd import cvsps +import subversion from mercurial import commands from mercurial.i18n import _ @@ -199,7 +200,7 @@ return convcmd.convert(ui, src, dest, revmapfile, **opts) def debugsvnlog(ui, **opts): - return convcmd.debugsvnlog(ui, **opts) + return subversion.debugsvnlog(ui, **opts) def debugcvsps(ui, *args, **opts): '''create changeset information from CVS diff -r 47b0a881638f -r 072df47d84c1 hgext/convert/convcmd.py --- a/hgext/convert/convcmd.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/convert/convcmd.py Tue Mar 31 23:11:11 2009 +0200 @@ -10,7 +10,7 @@ from darcs import darcs_source from git import convert_git from hg import mercurial_source, mercurial_sink -from subversion import debugsvnlog, svn_source, svn_sink +from subversion import svn_source, svn_sink from monotone import monotone_source from gnuarch import gnuarch_source from bzr import bzr_source @@ -188,11 +188,11 @@ def writeauthormap(self): authorfile = self.authorfile if authorfile: - self.ui.status(_('Writing author map file %s\n') % authorfile) - ofile = open(authorfile, 'w+') - for author in self.authors: - ofile.write("%s=%s\n" % (author, self.authors[author])) - ofile.close() + self.ui.status(_('Writing author map file %s\n') % authorfile) + ofile = open(authorfile, 'w+') + for author in self.authors: + ofile.write("%s=%s\n" % (author, self.authors[author])) + ofile.close() def readauthormap(self, authorfile): afile = open(authorfile, 'r') diff -r 47b0a881638f -r 072df47d84c1 hgext/convert/cvs.py --- a/hgext/convert/cvs.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/convert/cvs.py Tue Mar 31 23:11:11 2009 +0200 @@ -327,7 +327,7 @@ elif line.startswith("E "): self.ui.warn(_("cvs server: %s\n") % line[2:]) elif line.startswith("Remove"): - l = self.readp.readline() + self.readp.readline() else: raise util.Abort(_("unknown CVS response: %s") % line) diff -r 47b0a881638f -r 072df47d84c1 hgext/convert/filemap.py --- a/hgext/convert/filemap.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/convert/filemap.py Tue Mar 31 23:11:11 2009 +0200 @@ -69,7 +69,7 @@ for pre, suf in rpairs(name): try: return mapping[pre], pre, suf - except KeyError, err: + except KeyError: pass return '', name, '' diff -r 47b0a881638f -r 072df47d84c1 hgext/convert/git.py --- a/hgext/convert/git.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/convert/git.py Tue Mar 31 23:11:11 2009 +0200 @@ -84,7 +84,6 @@ message = c[end+2:] message = self.recode(message) l = c[:end].splitlines() - manifest = l[0].split()[1] parents = [] for e in l[1:]: n, v = e.split(" ", 1) diff -r 47b0a881638f -r 072df47d84c1 hgext/convert/gnuarch.py --- a/hgext/convert/gnuarch.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/convert/gnuarch.py Tue Mar 31 23:11:11 2009 +0200 @@ -279,7 +279,7 @@ # Commit revision origin when dealing with a branch or tag if catlog.has_key('Continuation-of'): self.changes[rev].continuationof = self.recode(catlog['Continuation-of']) - except Exception, err: + except Exception: raise util.Abort(_('could not parse cat-log of %s') % rev) def _parsechangeset(self, data, rev): diff -r 47b0a881638f -r 072df47d84c1 hgext/convert/hg.py --- a/hgext/convert/hg.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/convert/hg.py Tue Mar 31 23:11:11 2009 +0200 @@ -42,7 +42,7 @@ if not self.repo.local(): raise NoRepo(_('%s is not a local Mercurial repo') % path) self.created.append(path) - except error.RepoError, err: + except error.RepoError: ui.print_exc() raise NoRepo("could not create hg repo %s as sink" % path) self.lock = None @@ -142,7 +142,7 @@ p2 = parents.pop(0) ctx = context.memctx(self.repo, (p1, p2), text, files.keys(), getfilectx, commit.author, commit.date, extra) - a = self.repo.commitctx(ctx) + self.repo.commitctx(ctx) text = "(octopus merge fixup)\n" p2 = hex(self.repo.changelog.tip()) @@ -155,35 +155,33 @@ return p2 def puttags(self, tags): - try: - parentctx = self.repo[self.tagsbranch] - tagparent = parentctx.node() - except error.RepoError, inst: - parentctx = None - tagparent = nullid + try: + parentctx = self.repo[self.tagsbranch] + tagparent = parentctx.node() + except error.RepoError: + parentctx = None + tagparent = nullid - try: - oldlines = util.sort(parentctx['.hgtags'].data().splitlines(1)) - except: - oldlines = [] + try: + oldlines = util.sort(parentctx['.hgtags'].data().splitlines(1)) + except: + oldlines = [] - newlines = util.sort([("%s %s\n" % (tags[tag], tag)) for tag in tags]) - - if newlines == oldlines: - return None - data = "".join(newlines) - - def getfilectx(repo, memctx, f): + newlines = util.sort([("%s %s\n" % (tags[tag], tag)) for tag in tags]) + if newlines == oldlines: + return None + data = "".join(newlines) + def getfilectx(repo, memctx, f): return context.memfilectx(f, data, False, False, None) - self.ui.status(_("updating tags\n")) - date = "%s 0" % int(time.mktime(time.gmtime())) - extra = {'branch': self.tagsbranch} - ctx = context.memctx(self.repo, (tagparent, None), "update tags", - [".hgtags"], getfilectx, "convert-repo", date, - extra) - self.repo.commitctx(ctx) - return hex(self.repo.changelog.tip()) + self.ui.status(_("updating tags\n")) + date = "%s 0" % int(time.mktime(time.gmtime())) + extra = {'branch': self.tagsbranch} + ctx = context.memctx(self.repo, (tagparent, None), "update tags", + [".hgtags"], getfilectx, "convert-repo", date, + extra) + self.repo.commitctx(ctx) + return hex(self.repo.changelog.tip()) def setfilemapmode(self, active): self.filemapmode = active diff -r 47b0a881638f -r 072df47d84c1 hgext/convert/monotone.py --- a/hgext/convert/monotone.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/convert/monotone.py Tue Mar 31 23:11:11 2009 +0200 @@ -1,8 +1,8 @@ # monotone support for the convert extension -import os, re, time +import os, re from mercurial import util -from common import NoRepo, MissingTool, commit, converter_source, checktool +from common import NoRepo, commit, converter_source, checktool from common import commandline from mercurial.i18n import _ diff -r 47b0a881638f -r 072df47d84c1 hgext/convert/p4.py --- a/hgext/convert/p4.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/convert/p4.py Tue Mar 31 23:11:11 2009 +0200 @@ -28,7 +28,7 @@ def __init__(self, ui, path, rev=None): super(p4_source, self).__init__(ui, path, rev=rev) - checktool('p4') + checktool('p4', abort=False) self.p4changes = {} self.heads = {} diff -r 47b0a881638f -r 072df47d84c1 hgext/convert/subversion.py --- a/hgext/convert/subversion.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/convert/subversion.py Tue Mar 31 23:11:11 2009 +0200 @@ -177,7 +177,7 @@ if at >= 0: latest = int(url[at+1:]) url = url[:at] - except ValueError, e: + except ValueError: pass self.url = geturl(url) self.encoding = 'UTF-8' # Subversion is always nominal UTF-8 @@ -194,7 +194,7 @@ self.commits = {} self.paths = {} self.uuid = svn.ra.get_uuid(self.ra).decode(self.encoding) - except SubversionException, e: + except SubversionException: ui.print_exc() raise NoRepo("%s does not look like a Subversion repo" % self.url) @@ -215,7 +215,7 @@ try: self.get_blacklist() - except IOError, e: + except IOError: pass self.head = self.latest(self.module, latest) @@ -246,7 +246,7 @@ svn.client.ls(self.url.rstrip('/') + '/' + urllib.quote(path), optrev, False, self.ctx) return True - except SubversionException, err: + except SubversionException: return False def getheads(self): @@ -438,7 +438,7 @@ pendings = remainings tagspath = srctagspath - except SubversionException, (inst, num): + except SubversionException: self.ui.note(_('no tags found at revision %d\n') % start) return tags @@ -533,7 +533,7 @@ try: svn_rev = int(line.strip()) blacklist.add(svn_rev) - except ValueError, e: + except ValueError: pass # not an integer or a comment def is_blacklisted(self, svn_rev): @@ -1103,7 +1103,7 @@ for f, v in files: try: data = source.getfile(f, v) - except IOError, inst: + except IOError: self.delete.append(f) else: e = source.getmode(f, v) diff -r 47b0a881638f -r 072df47d84c1 hgext/graphlog.py --- a/hgext/graphlog.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/graphlog.py Tue Mar 31 23:11:11 2009 +0200 @@ -12,13 +12,12 @@ ''' import os -import sys from mercurial.cmdutil import revrange, show_changeset -from mercurial.commands import templateopts, logopts, remoteopts +from mercurial.commands import templateopts from mercurial.i18n import _ from mercurial.node import nullrev from mercurial import bundlerepo, changegroup, cmdutil, commands, extensions -from mercurial import hg, ui, url, util +from mercurial import hg, url, util def revisions(repo, start, stop): """cset DAG generator yielding (rev, node, [parents]) tuples @@ -385,8 +384,6 @@ chlist = other.changelog.nodesbetween(incoming, revs)[0] revdag = graphrevs(other, chlist, opts) - other_parents = [] - displayer = show_changeset(ui, other, opts, buffered=True) graphdag = graphabledag(ui, repo, revdag, opts) ascii(ui, grapher(graphdag)) diff -r 47b0a881638f -r 072df47d84c1 hgext/inotify/linux/__init__.py --- a/hgext/inotify/linux/__init__.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/inotify/linux/__init__.py Tue Mar 31 23:11:11 2009 +0200 @@ -27,7 +27,7 @@ def read_value(): try: return int(open(procfs_path + '/' + name).read()) - except OSError, err: + except OSError: return None read_value.__doc__ = '''Return the value of the %s setting from /proc. diff -r 47b0a881638f -r 072df47d84c1 hgext/inotify/server.py --- a/hgext/inotify/server.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/inotify/server.py Tue Mar 31 23:11:11 2009 +0200 @@ -304,6 +304,11 @@ dd[fn] = status else: d.pop(fn, None) + elif not status: + # a directory is being removed, check its contents + for subfile, b in oldstatus.copy().iteritems(): + self.updatestatus(wfn + '/' + subfile, None) + def check_deleted(self, key): # Files that had been deleted but were present in the dirstate @@ -473,8 +478,7 @@ if evt.mask & inotify.IN_ISDIR: self.scan(wpath) - else: - self.schedule_work(wpath, 'd') + self.schedule_work(wpath, 'd') def process_modify(self, wpath, evt): if self.ui.debugflag: diff -r 47b0a881638f -r 072df47d84c1 hgext/mq.py --- a/hgext/mq.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/mq.py Tue Mar 31 23:11:11 2009 +0200 @@ -1742,7 +1742,7 @@ else: patchespath = patchdir(sr) try: - pr = hg.repository(ui, patchespath) + hg.repository(ui, patchespath) except error.RepoError: raise util.Abort(_('versioned patch repository not found' ' (see qinit -c)')) @@ -1768,9 +1768,9 @@ update=False, stream=opts['uncompressed']) ui.note(_('cloning patch repo\n')) - spr, dpr = hg.clone(ui, opts['patches'] or patchdir(sr), patchdir(dr), - pull=opts['pull'], update=not opts['noupdate'], - stream=opts['uncompressed']) + hg.clone(ui, opts['patches'] or patchdir(sr), patchdir(dr), + pull=opts['pull'], update=not opts['noupdate'], + stream=opts['uncompressed']) if dr.local(): if qbase: ui.note(_('stripping applied patches from destination repo\n')) diff -r 47b0a881638f -r 072df47d84c1 hgext/notify.py --- a/hgext/notify.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/notify.py Tue Mar 31 23:11:11 2009 +0200 @@ -65,7 +65,6 @@ push changes to, they can manage their own subscriptions.''' from mercurial.i18n import _ -from mercurial.node import bin, short from mercurial import patch, cmdutil, templater, util, mail import email.Parser, fnmatch, socket, time diff -r 47b0a881638f -r 072df47d84c1 hgext/parentrevspec.py --- a/hgext/parentrevspec.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/parentrevspec.py Tue Mar 31 23:11:11 2009 +0200 @@ -23,7 +23,6 @@ foo~1 = foo^1 = foo^ = first parent of foo foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo ''' -import mercurial.repo from mercurial import error def reposetup(ui, repo): diff -r 47b0a881638f -r 072df47d84c1 hgext/patchbomb.py --- a/hgext/patchbomb.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/patchbomb.py Tue Mar 31 23:11:11 2009 +0200 @@ -230,8 +230,8 @@ def getpatches(revs): for r in cmdutil.revrange(repo, revs): output = cStringIO.StringIO() - p = patch.export(repo, [r], fp=output, - opts=patch.diffopts(ui, opts)) + patch.export(repo, [r], fp=output, + opts=patch.diffopts(ui, opts)) yield output.getvalue().split('\n') def getbundle(dest): @@ -344,8 +344,9 @@ msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test'))) datapart = email.MIMEBase.MIMEBase('application', 'x-mercurial-bundle') datapart.set_payload(bundle) + bundlename = '%s.hg' % opts.get('bundlename', 'bundle') datapart.add_header('Content-Disposition', 'attachment', - filename='bundle.hg') + filename=bundlename) email.Encoders.encode_base64(datapart) msg.attach(datapart) msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test')) @@ -468,6 +469,8 @@ _('send changes not found in the target repository')), ('b', 'bundle', None, _('send changes not in target as a binary bundle')), + ('', 'bundlename', 'bundle', + _('file name of the bundle attachment')), ('r', 'rev', [], _('a revision to send')), ('', 'force', None, _('run even when remote repository is unrelated (with -b)')), diff -r 47b0a881638f -r 072df47d84c1 hgext/rebase.py --- a/hgext/rebase.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/rebase.py Tue Mar 31 23:11:11 2009 +0200 @@ -26,7 +26,6 @@ def newancestor(a, b, pfunc): ancestor.ancestor = oldancestor - anc = ancestor.ancestor(a, b, pfunc) if b == rev: return repo[rev].parents()[0].rev() return ancestor.ancestor(a, b, pfunc) @@ -337,11 +336,10 @@ def buildstate(repo, dest, src, base, collapse): 'Define which revisions are going to be rebased and where' - state = {} targetancestors = util.set() if not dest: - # Destination defaults to the latest revision in the current branch + # Destination defaults to the latest revision in the current branch branch = repo[None].branch() dest = repo[branch].rev() else: diff -r 47b0a881638f -r 072df47d84c1 hgext/record.py --- a/hgext/record.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/record.py Tue Mar 31 23:11:11 2009 +0200 @@ -302,6 +302,7 @@ elif r == _('q'): raise util.Abort(_('user quit')) return r + pos, total = 0, len(chunks) - 1 while chunks: chunk = chunks.pop() if isinstance(chunk, header): @@ -327,8 +328,10 @@ # new hunk if resp_file[0] is None and resp_all[0] is None: chunk.pretty(ui) - r = prompt(_('record this change to %r?') % - chunk.filename()) + r = total == 1 and prompt(_('record this change to %r?') % + chunk.filename()) \ + or prompt(_('record change %d/%d to %r?') % + (pos, total, chunk.filename())) if r == _('y'): if fixoffset: chunk = copy.copy(chunk) @@ -336,6 +339,7 @@ applied[chunk.filename()].append(chunk) else: fixoffset += chunk.removed - chunk.added + pos = pos + 1 return reduce(operator.add, [h for h in applied.itervalues() if h[0].special() or len(h) > 1], []) diff -r 47b0a881638f -r 072df47d84c1 hgext/transplant.py --- a/hgext/transplant.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/transplant.py Tue Mar 31 23:11:11 2009 +0200 @@ -216,8 +216,8 @@ try: files = {} try: - fuzz = patch.patch(patchfile, self.ui, cwd=repo.root, - files=files) + patch.patch(patchfile, self.ui, cwd=repo.root, + files=files) if not files: self.ui.warn(_('%s: empty changeset') % revlog.hex(node)) diff -r 47b0a881638f -r 072df47d84c1 hgext/win32mbcs.py --- a/hgext/win32mbcs.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/win32mbcs.py Tue Mar 31 23:11:11 2009 +0200 @@ -46,54 +46,54 @@ from mercurial import util def decode(arg): - if isinstance(arg, str): - uarg = arg.decode(util._encoding) - if arg == uarg.encode(util._encoding): - return uarg - raise UnicodeError("Not local encoding") - elif isinstance(arg, tuple): - return tuple(map(decode, arg)) - elif isinstance(arg, list): - return map(decode, arg) - return arg + if isinstance(arg, str): + uarg = arg.decode(util._encoding) + if arg == uarg.encode(util._encoding): + return uarg + raise UnicodeError("Not local encoding") + elif isinstance(arg, tuple): + return tuple(map(decode, arg)) + elif isinstance(arg, list): + return map(decode, arg) + return arg def encode(arg): - if isinstance(arg, unicode): - return arg.encode(util._encoding) - elif isinstance(arg, tuple): - return tuple(map(encode, arg)) - elif isinstance(arg, list): - return map(encode, arg) - return arg + if isinstance(arg, unicode): + return arg.encode(util._encoding) + elif isinstance(arg, tuple): + return tuple(map(encode, arg)) + elif isinstance(arg, list): + return map(encode, arg) + return arg def wrapper(func, args): - # check argument is unicode, then call original - for arg in args: - if isinstance(arg, unicode): - return func(*args) + # check argument is unicode, then call original + for arg in args: + if isinstance(arg, unicode): + return func(*args) - try: - # convert arguments to unicode, call func, then convert back - return encode(func(*decode(args))) - except UnicodeError: - # If not encoded with util._encoding, report it then - # continue with calling original function. - raise util.Abort(_("[win32mbcs] filename conversion fail with" + try: + # convert arguments to unicode, call func, then convert back + return encode(func(*decode(args))) + except UnicodeError: + # If not encoded with util._encoding, report it then + # continue with calling original function. + raise util.Abort(_("[win32mbcs] filename conversion fail with" " %s encoding\n") % (util._encoding)) def wrapname(name): - idx = name.rfind('.') - module = name[:idx] - name = name[idx+1:] - module = eval(module) - func = getattr(module, name) - def f(*args): - return wrapper(func, args) - try: - f.__name__ = func.__name__ # fail with python23 - except Exception: - pass - setattr(module, name, f) + idx = name.rfind('.') + module = name[:idx] + name = name[idx+1:] + module = eval(module) + func = getattr(module, name) + def f(*args): + return wrapper(func, args) + try: + f.__name__ = func.__name__ # fail with python23 + except Exception: + pass + setattr(module, name, f) # List of functions to be wrapped. # NOTE: os.path.dirname() and os.path.basename() are safe because @@ -109,14 +109,14 @@ shift_jisx0213 shiftjisx0213 sjisx0213 s_jisx0213''' def reposetup(ui, repo): - # TODO: decide use of config section for this extension - if not os.path.supports_unicode_filenames: - ui.warn(_("[win32mbcs] cannot activate on this platform.\n")) - return + # TODO: decide use of config section for this extension + if not os.path.supports_unicode_filenames: + ui.warn(_("[win32mbcs] cannot activate on this platform.\n")) + return - # fake is only for relevant environment. - if util._encoding.lower() in problematic_encodings.split(): - for f in funcs.split(): - wrapname(f) - ui.debug(_("[win32mbcs] activated with encoding: %s\n") % util._encoding) + # fake is only for relevant environment. + if util._encoding.lower() in problematic_encodings.split(): + for f in funcs.split(): + wrapname(f) + ui.debug(_("[win32mbcs] activated with encoding: %s\n") % util._encoding) diff -r 47b0a881638f -r 072df47d84c1 hgext/win32text.py --- a/hgext/win32text.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/win32text.py Tue Mar 31 23:11:11 2009 +0200 @@ -28,7 +28,7 @@ # # or pretxnchangegroup.cr = python:hgext.win32text.forbidcr from mercurial.i18n import _ -from mercurial.node import bin, short +from mercurial.node import short from mercurial import util import re diff -r 47b0a881638f -r 072df47d84c1 hgext/zeroconf/Zeroconf.py --- a/hgext/zeroconf/Zeroconf.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/zeroconf/Zeroconf.py Tue Mar 31 23:11:11 2009 +0200 @@ -19,7 +19,7 @@ You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - + """ """0.12 update - allow selection of binding interface @@ -101,7 +101,7 @@ _BROWSER_TIME = 500 # Some DNS constants - + _MDNS_ADDR = '224.0.0.251' _MDNS_PORT = 5353; _DNS_PORT = 53; @@ -208,7 +208,7 @@ class DNSEntry(object): """A DNS entry""" - + def __init__(self, name, type, clazz): self.key = string.lower(name) self.name = name @@ -256,7 +256,7 @@ class DNSQuestion(DNSEntry): """A DNS question entry""" - + def __init__(self, name, type, clazz): if not name.endswith(".local."): raise NonLocalNameException @@ -273,7 +273,7 @@ class DNSRecord(DNSEntry): """A DNS record - like a DNS entry, but has a TTL""" - + def __init__(self, name, type, clazz, ttl): DNSEntry.__init__(self, name, type, clazz) self.ttl = ttl @@ -334,7 +334,7 @@ class DNSAddress(DNSRecord): """A DNS address record""" - + def __init__(self, name, type, clazz, ttl, address): DNSRecord.__init__(self, name, type, clazz, ttl) self.address = address @@ -378,10 +378,10 @@ def __repr__(self): """String representation""" return self.cpu + " " + self.os - + class DNSPointer(DNSRecord): """A DNS pointer record""" - + def __init__(self, name, type, clazz, ttl, alias): DNSRecord.__init__(self, name, type, clazz, ttl) self.alias = alias @@ -402,7 +402,7 @@ class DNSText(DNSRecord): """A DNS text record""" - + def __init__(self, name, type, clazz, ttl, text): DNSRecord.__init__(self, name, type, clazz, ttl) self.text = text @@ -426,7 +426,7 @@ class DNSService(DNSRecord): """A DNS service record""" - + def __init__(self, name, type, clazz, ttl, priority, weight, port, server): DNSRecord.__init__(self, name, type, clazz, ttl) self.priority = priority @@ -453,7 +453,7 @@ class DNSIncoming(object): """Object representation of an incoming DNS packet""" - + def __init__(self, data): """Constructor from string holding bytes of packet""" self.offset = 0 @@ -464,7 +464,7 @@ self.numAnswers = 0 self.numAuthorities = 0 self.numAdditionals = 0 - + self.readHeader() self.readQuestions() self.readOthers() @@ -491,7 +491,7 @@ name = self.readName() info = struct.unpack(format, self.data[self.offset:self.offset+length]) self.offset += length - + question = DNSQuestion(name, info[0], info[1]) self.questions.append(question) @@ -561,7 +561,7 @@ if rec is not None: self.answers.append(rec) - + def isQuery(self): """Returns true if this is a query""" return (self.flags & _FLAGS_QR_MASK) == _FLAGS_QR_QUERY @@ -574,7 +574,7 @@ """Reads a UTF-8 string of a given length from the packet""" result = self.data[offset:offset+len].decode('utf-8') return result - + def readName(self): """Reads a domain name from the packet""" result = '' @@ -607,11 +607,11 @@ self.offset = off return result - - + + class DNSOutgoing(object): """Object representation of an outgoing packet""" - + def __init__(self, flags, multicast = 1): self.finished = 0 self.id = 0 @@ -620,7 +620,7 @@ self.names = {} self.data = [] self.size = 12 - + self.questions = [] self.answers = [] self.authorities = [] @@ -660,7 +660,7 @@ format = '!H' self.data.insert(index, struct.pack(format, value)) self.size += 2 - + def writeShort(self, value): """Writes an unsigned short to the packet""" format = '!H' @@ -739,7 +739,7 @@ self.size += 2 record.write(self) self.size -= 2 - + length = len(''.join(self.data[index:])) self.insertShort(index, length) # Here is the short we adjusted for @@ -758,7 +758,7 @@ self.writeRecord(authority, 0) for additional in self.additionals: self.writeRecord(additional, 0) - + self.insertShort(0, len(self.additionals)) self.insertShort(0, len(self.authorities)) self.insertShort(0, len(self.answers)) @@ -773,7 +773,7 @@ class DNSCache(object): """A cache of DNS entries""" - + def __init__(self): self.cache = {} @@ -866,12 +866,11 @@ pass def getReaders(self): - result = [] self.condition.acquire() result = self.readers.keys() self.condition.release() return result - + def addReader(self, reader, socket): self.condition.acquire() self.readers[socket] = reader @@ -896,7 +895,7 @@ It requires registration with an Engine object in order to have the read() method called when a socket is availble for reading.""" - + def __init__(self, zeroconf): self.zeroconf = zeroconf self.zeroconf.engine.addReader(self, self.zeroconf.socket) @@ -923,7 +922,7 @@ class Reaper(threading.Thread): """A Reaper is used by this module to remove cache entries that have expired.""" - + def __init__(self, zeroconf): threading.Thread.__init__(self) self.zeroconf = zeroconf @@ -947,7 +946,7 @@ The listener object will have its addService() and removeService() methods called when this browser discovers changes in the services availability.""" - + def __init__(self, zeroconf, type, listener): """Creates a browser for a specific type""" threading.Thread.__init__(self) @@ -958,7 +957,7 @@ self.nextTime = currentTimeMillis() self.delay = _BROWSER_TIME self.list = [] - + self.done = 0 self.zeroconf.addListener(self, DNSQuestion(self.type, _TYPE_PTR, _CLASS_IN)) @@ -1018,11 +1017,11 @@ if event is not None: event(self.zeroconf) - + class ServiceInfo(object): """Service information""" - + def __init__(self, type, name, address=None, port=None, weight=0, priority=0, properties=None, server=None): """Create a service description. @@ -1088,7 +1087,7 @@ index += 1 strs.append(text[index:index+length]) index += length - + for s in strs: eindex = s.find('=') if eindex == -1: @@ -1111,7 +1110,7 @@ except: traceback.print_exc() self.properties = None - + def getType(self): """Type accessor""" return self.type @@ -1201,7 +1200,7 @@ result = 1 finally: zeroconf.removeListener(self) - + return result def __eq__(self, other): @@ -1226,7 +1225,7 @@ result += self.text[:17] + "..." result += "]" return result - + class Zeroconf(object): """Implementation of Zeroconf Multicast DNS Service Discovery @@ -1266,7 +1265,7 @@ # the SO_REUSE* options have been set, so ignore it # pass - #self.socket.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_IF, socket.inet_aton(self.intf) + socket.inet_aton('0.0.0.0')) + #self.socket.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_IF, socket.inet_aton(self.intf) + socket.inet_aton('0.0.0.0')) self.socket.setsockopt(socket.SOL_IP, socket.IP_ADD_MEMBERSHIP, socket.inet_aton(_MDNS_ADDR) + socket.inet_aton('0.0.0.0')) self.listeners = [] @@ -1277,7 +1276,7 @@ self.cache = DNSCache() self.condition = threading.Condition() - + self.engine = Engine(self) self.listener = Listener(self) self.reaper = Reaper(self) @@ -1472,7 +1471,7 @@ record = entry else: self.cache.add(record) - + self.updateRecord(now, record) def handleQuery(self, msg, addr, port): @@ -1486,14 +1485,14 @@ out = DNSOutgoing(_FLAGS_QR_RESPONSE | _FLAGS_AA, 0) for question in msg.questions: out.addQuestion(question) - + for question in msg.questions: if question.type == _TYPE_PTR: if question.name == "_services._dns-sd._udp.local.": for stype in self.servicetypes.keys(): if out is None: out = DNSOutgoing(_FLAGS_QR_RESPONSE | _FLAGS_AA) - out.addAnswer(msg, DNSPointer("_services._dns-sd._udp.local.", _TYPE_PTR, _CLASS_IN, _DNS_TTL, stype)) + out.addAnswer(msg, DNSPointer("_services._dns-sd._udp.local.", _TYPE_PTR, _CLASS_IN, _DNS_TTL, stype)) for service in self.services.values(): if question.name == service.type: if out is None: @@ -1503,16 +1502,16 @@ try: if out is None: out = DNSOutgoing(_FLAGS_QR_RESPONSE | _FLAGS_AA) - + # Answer A record queries for any service addresses we know if question.type == _TYPE_A or question.type == _TYPE_ANY: for service in self.services.values(): if service.server == question.name.lower(): out.addAnswer(msg, DNSAddress(question.name, _TYPE_A, _CLASS_IN | _CLASS_UNIQUE, _DNS_TTL, service.address)) - + service = self.services.get(question.name.lower(), None) if not service: continue - + if question.type == _TYPE_SRV or question.type == _TYPE_ANY: out.addAnswer(msg, DNSService(question.name, _TYPE_SRV, _CLASS_IN | _CLASS_UNIQUE, _DNS_TTL, service.priority, service.weight, service.port, service.server)) if question.type == _TYPE_TXT or question.type == _TYPE_ANY: @@ -1521,7 +1520,7 @@ out.addAdditionalAnswer(DNSAddress(service.server, _TYPE_A, _CLASS_IN | _CLASS_UNIQUE, _DNS_TTL, service.address)) except: traceback.print_exc() - + if out is not None and out.answers: out.id = msg.id self.send(out, addr, port) @@ -1531,7 +1530,7 @@ # This is a quick test to see if we can parse the packets we generate #temp = DNSIncoming(out.packet()) try: - bytes_sent = self.socket.sendto(out.packet(), 0, (addr, port)) + self.socket.sendto(out.packet(), 0, (addr, port)) except: # Ignore this, it may be a temporary loss of network connection pass @@ -1546,11 +1545,11 @@ self.unregisterAllServices() self.socket.setsockopt(socket.SOL_IP, socket.IP_DROP_MEMBERSHIP, socket.inet_aton(_MDNS_ADDR) + socket.inet_aton('0.0.0.0')) self.socket.close() - + # Test a few module features, including service registration, service # query (for Zoe), and service unregistration. -if __name__ == '__main__': +if __name__ == '__main__': print "Multicast DNS Service Discovery for Python, version", __version__ r = Zeroconf() print "1. Testing registration of a service..." diff -r 47b0a881638f -r 072df47d84c1 hgext/zeroconf/__init__.py --- a/hgext/zeroconf/__init__.py Tue Mar 31 07:56:28 2009 +0200 +++ b/hgext/zeroconf/__init__.py Tue Mar 31 23:11:11 2009 +0200 @@ -77,8 +77,9 @@ ip = getip() localip = socket.inet_aton(ip) - parts = socket.gethostname().split('.') - host = parts[0] + ".local" + hostname = socket.gethostname().split('.')[0] + host = hostname + ".local" + name = "%s-%s" % (hostname, name) # advertise to browsers svc = Zeroconf.ServiceInfo('_http._tcp.local.', @@ -130,7 +131,7 @@ def getzcpaths(): server = Zeroconf.Zeroconf() l = listener() - browser = Zeroconf.ServiceBrowser(server, "_hg._tcp.local.", l) + Zeroconf.ServiceBrowser(server, "_hg._tcp.local.", l) time.sleep(1) server.close() for v in l.found.values(): diff -r 47b0a881638f -r 072df47d84c1 i18n/da.po --- a/i18n/da.po Tue Mar 31 07:56:28 2009 +0200 +++ b/i18n/da.po Tue Mar 31 23:11:11 2009 +0200 @@ -4,19 +4,21 @@ # # Translation dictionary: # -# changeset ændring -# merge sammenføje -# patch rettelse -# repo(sitory) arkiv -# revision revision -# tag mærkat +# changeset ændring +# commit arkivering +# merge sammenføje +# patch rettelse +# repo(sitory) arkiv +# revision revision +# tag mærkat +# working directory arbejdskatalog # msgid "" msgstr "" "Project-Id-Version: Mercurial\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-22 22:02+0100\n" -"PO-Revision-Date: 2009-02-22 22:05+0100\n" +"POT-Creation-Date: 2009-03-09 23:19+0100\n" +"PO-Revision-Date: 2009-03-10 23:40+0100\n" "Last-Translator: \n" "Language-Team: Danish\n" "MIME-Version: 1.0\n" @@ -241,7 +243,7 @@ msgid "rename a given bookmark" msgstr "" -msgid "hg bookmarks [-d] [-m NAME] [-r NAME] [NAME]" +msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]" msgstr "" msgid "" @@ -712,6 +714,7 @@ " - Monotone [mtn]\n" " - GNU Arch [gnuarch]\n" " - Bazaar [bzr]\n" +" - Perforce [p4]\n" "\n" " Accepted destination formats [identifiers]:\n" " - Mercurial [hg]\n" @@ -778,8 +781,9 @@ " ignore integrity errors when reading. Use it to fix Mercurial\n" " repositories with missing revlogs, by converting from and to\n" " Mercurial.\n" -" --config convert.hg.saverev=True (boolean)\n" -" allow target to preserve source revision ID\n" +" --config convert.hg.saverev=False (boolean)\n" +" store original revision ID in changeset (forces target IDs to " +"change)\n" " --config convert.hg.startrev=0 (hg revision identifier)\n" " convert start revision and its descendants\n" "\n" @@ -856,6 +860,23 @@ " --config convert.svn.startrev=0 (svn revision number)\n" " specify start Subversion revision.\n" "\n" +" Perforce Source\n" +" ---------------\n" +"\n" +" The Perforce (P4) importer can be given a p4 depot path or a client\n" +" specification as source. It will convert all files in the source to\n" +" a flat Mercurial repository, ignoring labels, branches and " +"integrations.\n" +" Note that when a depot path is given you then usually should specify a\n" +" target directory, because otherwise the target may be named ...-hg.\n" +"\n" +" It is possible to limit the amount of source history to be converted\n" +" by specifying an initial Perforce revision.\n" +"\n" +" --config convert.p4.startrev=0 (perforce changelist number)\n" +" specify initial Perforce revision.\n" +"\n" +"\n" " Mercurial Destination\n" " ---------------------\n" "\n" @@ -1203,6 +1224,12 @@ msgid "copying file in renamed dir from '%s' to '%s'" msgstr "" +msgid "reading p4 views\n" +msgstr "" + +msgid "collecting p4 changelists\n" +msgstr "" + msgid "Subversion python bindings could not be loaded" msgstr "" @@ -1501,7 +1528,7 @@ msgstr "" msgid "working directory is missing some files" -msgstr "arbejdsbiblioteket mangler nogle filer" +msgstr "arbejdskataloget mangler nogle filer" msgid "" "multiple heads in this branch (use \"hg heads .\" and \"hg merge\" to merge)" @@ -2659,7 +2686,7 @@ msgstr "" msgid "cleaning up working directory..." -msgstr "rydder op i arbejdsbiblioteket..." +msgstr "rydder op i arbejdskataloget..." #, python-format msgid "errors during apply, please fix and refresh %s\n" @@ -3666,7 +3693,7 @@ "each patchbomb message in a pager or sending the messages directly,\n" "it will create a UNIX mailbox file with the patch emails. This\n" "mailbox file can be previewed with any mail user agent which supports\n" -"UNIX mbox files, i.e. with mutt:\n" +"UNIX mbox files, e.g. with mutt:\n" "\n" " % mutt -R -f mbox\n" "\n" @@ -3784,7 +3811,7 @@ msgid "send patches as inline attachments" msgstr "" -msgid "email addresses of blind copy recipients" +msgid "email addresses of blind carbon copy recipients" msgstr "" msgid "email addresses of copy recipients" @@ -4626,7 +4653,7 @@ #, python-format msgid "can't read commit message '%s': %s" -msgstr "Kan ikke lase commit besked '%s': %s" +msgstr "Kan ikke læse arkiveringsbesked '%s': %s" msgid "limit must be a positive integer" msgstr "" @@ -4813,17 +4840,17 @@ " The files will be added to the repository at the next commit. To\n" " undo an add before that, see hg revert.\n" "\n" -" If no names are given, add all files in the repository.\n" -" " -msgstr "" -"tilføj de angivne filer ved næste commit\n" +" If no names are given, add all files to the repository.\n" +" " +msgstr "" +"tilføj de angivne filer ved næste arkivering\n" "\n" " Opskriv filer til at blive versionsstyret og tilføjet til arkivet.\n" "\n" -" Filerne vil bliver tilføjet til arkivet ved næste commit. For at\n" -" omgøre en tilføjelse før det, se hg revert.\n" -"\n" -" Hvis der ikke er angivet nogen navne tilføjes alle filer i\n" +" Filerne vil bliver tilføjet til arkivet ved næste arkivering. For\n" +" at omgøre en tilføjelse før det, se hg revert.\n" +"\n" +" Hvis der ikke er angivet nogen navne tilføjes alle filer til\n" " arkivet.\n" " " @@ -4865,6 +4892,17 @@ " anyway, probably with undesirable results.\n" " " msgstr "" +"vis information om ændringer pr linie\n" +"\n" +" Vis ændringer i filer ved at vise revisions ID'et som er\n" +" ansvarligt for hver linie\n" +"\n" +" Denne kommando er nyttig til at opdage hvem der lavede en ændring\n" +" og hvornår en ændring blev foretaget.\n" +"\n" +" Uden -a tilvalget vil annotate undgå at behandle filer som den\n" +" detekterer som binære. Med -a vil annotate generere en annotering\n" +" alligevel, sandsynligvis med et uønsket resultat." msgid "at least one file name or pattern required" msgstr "" @@ -4923,12 +4961,30 @@ " The --merge option remembers the parent of the working directory\n" " before starting the backout, then merges the new head with that\n" " changeset afterwards. This saves you from doing the merge by\n" -" hand. The result of this merge is not committed, as for a normal\n" +" hand. The result of this merge is not committed, as with a normal\n" " merge.\n" "\n" " See 'hg help dates' for a list of formats valid for -d/--date.\n" " " msgstr "" +"omgør effekten af tidligere ændringer\n" +"\n" +" Arkiverer de omgjorte ændringer som en ny ændring. Den nye ændring\n" +" er et barn af den omgjorte ændring.\n" +"\n" +" Hvis du omgør en ændring som ikke er spidsen, så vil et der blive\n" +" lavet et nyt hoved. Dette hoved vil være den nye spids og du bør\n" +" sammenføje denne omgjorte ændring med et andet hoved (det\n" +" nuværende hoved som standard).\n" +"\n" +" Med --merge tilvalget vil forældren til arbejdskataloget bliver\n" +" husket og det nye hoved vil blive sammenføjet med denne ændring\n" +" bagefter. Dette sparer dig for at lave sammenføjningen selv.\n" +" Resultatet af denne sammenføjning er ikke arkiveret, som ved en\n" +" normal sammenføjning.\n" +"\n" +" Se 'hg help dates' for en liste af gyldige formater til -d/--date.\n" +" " msgid "please specify just one revision" msgstr "angiv venligst kun en revision" @@ -4991,8 +5047,7 @@ "exit\n" " status is 0 the revision is marked as good, 125 - skipped, 127 (command " "not\n" -" found) - bisection will be aborted and any other status bigger than 0 " -"will\n" +" found) - bisection will be aborted; any other status bigger than 0 will\n" " mark revision as bad.\n" " " msgstr "" @@ -5077,7 +5132,7 @@ "create a changegroup file\n" "\n" " Generate a compressed changegroup file collecting changesets not\n" -" found in the other repository.\n" +" known to be in another repository.\n" "\n" " If no destination repository is specified the destination is\n" " assumed to have all the nodes specified by one or more --base\n" @@ -5163,6 +5218,51 @@ " Look at the help text for urls for important details about ssh:// URLs.\n" " " msgstr "" +"lav en kopi af et eksisterende arkiv\n" +"\n" +" Lav en kopi af et eksisterende arkiv i en ny mappe.\n" +"\n" +" Hvis der ikke angivet et navn til destinationen, så bruges\n" +" grundnavnet for kilden.\n" +"\n" +" Placeringen af kilden tilføjes til det nye arkivs .hg/hgrc fil som\n" +" den nye standard for fremtidige kald til 'hg pull'.\n" +"\n" +" Af effektivitetsgrunde bruges hårde lænker ved kloning når kilden\n" +" og destinationen er på det samme filsystem (bemærk at dette kun\n" +" gælder for arkivdata og ikke for de udhentede filer). Nogle\n" +" filsystemer, såsom AFS, implementerer ikke hårde lænker korrekt,\n" +" men rapporterer ingen fejl. I disse tilfælde skal --pull bruges\n" +" for at undgå hårde lænker.\n" +"\n" +" I nogle tilfælde kan man klone arkiver og udhentede filer med\n" +"\n" +" $ cp -al ARKIV ARKIVKLON\n" +"\n" +" Dette er den hurtigste måde at klone på, men det er ikke altid\n" +" sikkert. Operationen er ikke atomisk (det er op til dig at sikre\n" +" at ARKIV ikke bliver modificeret undervejs) og du skal selv sørge\n" +" for at din tekstbehandler bryder hårde lænker (Emacs og de fleste\n" +" Linux Kernel værktøjer gør det). Dette er desuden ikke kompatibelt\n" +" med visse udvidelser som placerer deres metadata under .hg mappen,\n" +" såsom mq.\n" +"\n" +" Hvis du bruger -r tilvalget for at klone op til en specifik\n" +" revision, så vil ingen efterfølgende revisioner findes i det\n" +" klonede arkiv. Denne valgmulighed medfører --pull, selv ved lokale\n" +" arkiver.\n" +"\n" +" Hvis -U tilvalget bruges vil den nye klon kun indeholde et arkiv\n" +" (.hg) og intet arbejdskatalog (arbejdskatalogets forældre er sat\n" +" til nul revisionen).\n" +"\n" +" Se 'hg help urls' for detaljer om gyldige formatter for kilden.\n" +"\n" +" Det er muligt at specificere en ssh:// URL som destination, men\n" +" der vil ikke bliver oprettet nogen .hg/hgrc fil eller noget\n" +" arbejdskatalog på den anden side. Se hjælpeteksten for URLer for\n" +" vigtige detaljer om ssh:// URLer.\n" +" " msgid "" "commit the specified files or all outstanding changes\n" @@ -5176,11 +5276,26 @@ " file names or -I/-X filters.\n" "\n" " If no commit message is specified, the configured editor is started to\n" -" enter a message.\n" +" prompt you for a message.\n" "\n" " See 'hg help dates' for a list of formats valid for -d/--date.\n" " " msgstr "" +"arkiver de specificerede filer eller alle udestående ændringer\n" +"\n" +" Arkiver ændringer i de angivne filer ind i arkivet.\n" +"\n" +" Hvis en liste af filer udelades vil alle ændringer rapporteret af\n" +" \"hg status\" blive arkiveret.\n" +"\n" +" Hvis du arkiverer resultatet af en sammenføjning, undlad da at\n" +" angive filnavne eller -I/-X filtre.\n" +"\n" +" Hvis der ikke angives en arkiveringsbesked, så starten den\n" +" konfigurerede editor for at bede dig om en besked.\n" +"\n" +" Se 'hg help dates' for en liste af gyldige formater til -d/--date.\n" +" " msgid "created new head\n" msgstr "lavede et nyt hoved\n" @@ -5194,13 +5309,13 @@ "\n" " Mark dest as having copies of source files. If dest is a\n" " directory, copies are put in that directory. If dest is a file,\n" -" there can only be one source.\n" +" the source must be a single file.\n" "\n" " By default, this command copies the contents of files as they\n" " stand in the working directory. If invoked with --after, the\n" " operation is recorded, but no copying is performed.\n" "\n" -" This command takes effect in the next commit. To undo a copy\n" +" This command takes effect with the next commit. To undo a copy\n" " before that, see hg revert.\n" " " msgstr "" @@ -5397,9 +5512,32 @@ " probably with undesirable results.\n" "\n" " Use the --git option to generate diffs in the git extended diff\n" -" format. Read the diffs help topic for more information.\n" -" " -msgstr "" +" format. For more information, read hg help diffs.\n" +" " +msgstr "" +"find ændringer i hele arkivet (eller udvalgte filer)\n" +"\n" +" Vis ændringer mellem revisioner for de udvalgte filer.\n" +"\n" +" Ændringerne mellem filerne vises i unified diff-formatet.\n" +"\n" +" BEMÆRK: diff kan generere overraskende resultater for\n" +" sammenføjninger, idet den som udgangspunkt vil sammenligne med\n" +" arbejdskatalogets første forældre, hvis der ikke angivet en\n" +" revision.\n" +"\n" +" Når der gives to revisioner som argumenter, så vises ændringer\n" +" mellem disse. Hvis der kun angives en revision, så sammenlignes\n" +" denne revision med arbejdskataloget, og når der ikke angives nogen\n" +" revisioner, så sammenlignes arbejdskataloget med dennes forældre.\n" +"\n" +" Uden -a tilvalget vil diff undgå at generere ændringer for filer\n" +" som den detekterer som binære. Med -a vil diff generere ændringer\n" +" alligevel, sandsynligvis med uønskede resultater.\n" +"\n" +" Brug --git tilvalget for at generere ændringer i det udvidede git\n" +" diff-format. For mere information, læs hg help diffs.\n" +" " msgid "" "dump the header and diffs for one or more changesets\n" @@ -5435,6 +5573,41 @@ " parent. It can be useful to review a merge.\n" " " msgstr "" +"dump hovedet og ændringerne for en eller flere ændringer\n" +"\n" +" Udskriv ændrings-hovedet og ændringerne for en eller flere\n" +" revisioner.\n" +"\n" +" Informationen som vises i ændrings-hovedet er: forfatter,\n" +" ændringshash, forældrene og arkiveringsbeskeden.\n" +"\n" +" BEMÆRK: export kan generere uventet diff uddata for\n" +" sammenføjningsændringer idet den kun vil sammenligne\n" +" sammenføjningsændringen med dennes første forældre.\n" +"\n" +" Uddata kan gemmes i en fil, og filnavnet er givet ved en\n" +" format-streng. Formatteringsreglerne er som følger:\n" +"\n" +" %% litteral % tegn\n" +" %H ændringshash (40 byte heksadecimal)\n" +" %N antallet af rettelser som bliver genereret\n" +" %R revisionnummer for ændringen\n" +" %b grundnavn for det eksporterede arkiv\n" +" %h kortform ændringshash (12 byte heksadecimal)\n" +" %n nul-fyldt sekvensnummer, startende ved 1\n" +" %r nul-fyldt revisionsnummer for ændringen\n" +"\n" +" Uden -a tilvalget vil annotate undgå at behandle filer som den\n" +" detekterer som binære. Med -a vil annotate generere en annotering\n" +" alligevel, sandsynligvis med et uønsket resultat.\n" +"\n" +" Brug --git tilvalget for at generere ændringer i det udvidede git\n" +" diff-format. For mere information, læs hg help diffs.\n" +"\n" +" Med --switch-parent tilvalget vil ændringerne blive beregnet i\n" +" forhold til den anden forældre. Dette kan være nyttigt til at\n" +" gennemse en sammenføjning.\n" +" " msgid "export requires at least one changeset" msgstr "" @@ -5677,6 +5850,17 @@ " See 'hg help urls' for more information.\n" " " msgstr "" +"opret et nyt arkiv i det givne katalog\n" +"\n" +" Initialiser et nyt arkiv i det givne katalog. Hvis det givne\n" +" katalog ikke findes vil det blive oprettet.\n" +"\n" +" Hvis intet katalog er angivet vil det nuværende katalog bliver\n" +" anvendt.\n" +"\n" +" Det er muligt at angive en ssh:// URL som destination.\n" +" Se 'hg help urls' for mere information.\n" +" " msgid "" "locate files matching specific patterns\n" @@ -5722,8 +5906,8 @@ " files and full commit message is shown.\n" "\n" " NOTE: log -p may generate unexpected diff output for merge\n" -" changesets, as it will compare the merge changeset against its\n" -" first parent only. Also, the files: list will only reflect files\n" +" changesets, as it will only compare the merge changeset against\n" +" its first parent. Also, the files: list will only reflect files\n" " that are different from BOTH parents.\n" "\n" " " @@ -5766,6 +5950,19 @@ " revision to merge with must be provided.\n" " " msgstr "" +"sammenføj arbejdskataloget med en anden revision\n" +"\n" +" Sammenføj indholdet af det nuværende arbejdskataloget og den\n" +" ønskede revision. Filer som ændrede sig i forhold til en af\n" +" forældrene bliver markeret som ændret med hensyn til næste\n" +" arkivering, og arkiveringen skal laves før yderligere opdateringer\n" +" er tilladt.\n" +"\n" +" Hvis ingen revision angives og arbejdskatalogets forældre er en\n" +" hovedrevision og den nuværende gren indeholder præcis et andet\n" +" hoved, så sammenføjes der med dette hoved som standard. Ellers\n" +" skal en eksplicit revision angives.\n" +" " #, python-format msgid "branch '%s' has %d heads - please merge with an explicit rev" @@ -5809,6 +6006,14 @@ " revision or the argument to --rev if given) is printed.\n" " " msgstr "" +"vis forældrene til arbejdskataloget eller en revision\n" +"\n" +" Udskriv arbejdskatalogets forældrerevisioner. Hvis en revision\n" +" angivet med --rev, så udskrives forældren til denne revision. Hvis\n" +" en fil er angivet, udskrives revisionen i hvilken filen sidst blev\n" +" ændret (før arbejdskatalogets revision eller argumentet til --rev,\n" +" hvis givet).\n" +" " msgid "can only specify an explicit file name" msgstr "" @@ -5855,6 +6060,17 @@ " See 'hg help urls' for more information.\n" " " msgstr "" +"hent ændringer fra den angivne kilde\n" +"\n" +" Hiver ændringer fra et fjert arkiv til et lokalt.\n" +"\n" +" Dette finder alle ændringer fra arkivet på den specificerede sti\n" +" eller URL og tilføjer dem til det lokale arkiv. Som standard\n" +" opdateres arbejdskataloget ikke.\n" +"\n" +" Hvis KILDE udelades, så bruges 'default' stien.\n" +" Se 'hg help urls' for mere information.\n" +" " msgid "" "Other repository doesn't support revision lookup, so a rev cannot be " @@ -5883,6 +6099,27 @@ " See 'hg help urls' for more information.\n" " " msgstr "" +"skub ændringer til den angivne destination\n" +"\n" +" Skubber ændringer fra det lokale arkiv til den givne destination.\n" +"\n" +" Dette er den symmetriske operation for pull. Den hjælper med at\n" +" flytte ændringer fra det nuværende arkiv til et andet et. Hvis\n" +" destinationen er lokal, så er dette identisk til et pull i\n" +" destinationen af det nuværende arkiv.\n" +"\n" +" Som standard vil push nægte af køre hvis den detekterer at den vil\n" +" øge antallet af hoveder i destinationen. Dette indikerer normalt\n" +" at klienten har glemt at henge og sammenføje ændringerne før\n" +" skubningen.\n" +"\n" +" Hvis -r bruges, så vil den navngivne ændring og alle dets forfædre\n" +" bliver skubbet til det andet arkiv.\n" +"\n" +" Se hjælpeteksten for URL'er for vigtige detaljer om ssh:// URL'er.\n" +" Hvis DESTINATION udelades vil en standard sti blive brugt.\n" +" Se 'hg help urls' for mere information.\n" +" " #, python-format msgid "pushing to %s\n" @@ -5940,6 +6177,31 @@ " To undo a remove before that, see hg revert.\n" " " msgstr "" +"fjern de angivne filer ved næste arkivering\n" +"\n" +" Planlæg de angivne filer til sletning fra arkivet.\n" +"\n" +" Dette fjerner kun filerne fra den nuværende gren, ikke fra hele\n" +" projektets historie. -A kan bruges til kun at fjerne filer som\n" +" allerede er slettet, -f kan bruges for at gennemtvinge en\n" +" sletning, og -Af kan bruges til at fjerne filer fra næste revision\n" +" uden at slette dem.\n" +"\n" +" Den følgende tabel viser opførslen af remove for forskellige\n" +" tilstande af filer (søjler) og kombinationer af tilvalg (rækker).\n" +" Filtilstandene er Added, Clean, Modified og Missing (som\n" +" rapporteret af hg status). Handlingerne er Warn, Remove (fra gren)\n" +" og Delete (fra disk).\n" +"\n" +" A C M !\n" +" none W RD W R\n" +" -f R RD RD R\n" +" -A W W W R\n" +" -Af R R R R\n" +"\n" +" Denne kommando planlægger filerne til at blive fjernet ved næste\n" +" arkivering. For at omgøre en fjernelse før det, se hg revert.\n" +" " msgid "no files specified" msgstr "" @@ -5965,10 +6227,10 @@ " a file, there can only be one source.\n" "\n" " By default, this command copies the contents of files as they\n" -" stand in the working directory. If invoked with --after, the\n" +" exist in the working directory. If invoked with --after, the\n" " operation is recorded, but no copying is performed.\n" "\n" -" This command takes effect in the next commit. To undo a rename\n" +" This command takes effect at the next commit. To undo a rename\n" " before that, see hg revert.\n" " " msgstr "" @@ -6111,6 +6373,13 @@ " stderr. Use the \"-A\" and \"-E\" options to log to files.\n" " " msgstr "" +"eksporter arkivet via HTTP\n" +"\n" +" Start en lokal HTTP arkivbrowser og -server.\n" +"\n" +" Som standard logger serveren forespørgsler til stdout og fejl til\n" +" stderr. Brug \"-A\" og \"-E\" tilvalgene til at logge til filer.\n" +" " #, python-format msgid "listening at http://%s%s/%s (bound to %s:%d)\n" @@ -6147,6 +6416,38 @@ " = the previous added file was copied from here\n" " " msgstr "" +"vis ændrede filer i arbejdskataloget\n" +"\n" +" Vis status for filer i arkivet. Hvis der angivet navne, så vil kun\n" +" disse filer blive vist. Filer som er rene eller ignorerede eller\n" +" kilden i en kopierings/flytnings operation vises ikke med mindre\n" +" -c (clean), -i (ignored), -C (copies) eller -A er angivet. Med\n" +" mindre tilvalgene beskrevet med \"vis kun ...\" bruges, så bruges\n" +" -mardu tilvalgene.\n" +"\n" +" Tilvalget -q/--quiet skjuler filer som ikke bliver fulgt (ukendte\n" +" eller ignorerede filer) med mindre disse eksplicit vælges med\n" +" -u/--unknown eller -i/--ignored.\n" +"\n" +" BEMÆRK: status kan tilsyneladende være forskellig fra diff hvis\n" +" rettigheder er blevet ændret eller hvis en sammenføjning har\n" +" fundet sted. Det normale diff-format rapporterer ikke ændringer i\n" +" rettigheder og diff rapporterer kun ænringer relativt til en\n" +" sammenføjningsforældre.\n" +"\n" +" Hvis der angivet en revision bruges denne som en basisrevision.\n" +" Hvis der angives to revisioner, da vises forskellene mellem dem.\n" +"\n" +" Koderne som bruges til at vise status for filerne er:\n" +" M = ændret\n" +" A = tilføjet\n" +" R = fjernet\n" +" C = ren\n" +" ! = slettet, men følges stadig\n" +" ? = følges ikke\n" +" I = ignoreret\n" +" = den foregående fil blev kopieret herfra\n" +" " msgid "" "add one or more tags for the current or given revision\n" @@ -6263,6 +6564,34 @@ " See 'hg help dates' for a list of formats valid for --date.\n" " " msgstr "" +"opdater arbejdskataloget\n" +"\n" +" Opdater arkivets arbejdskatalog til den angivne revision, eller\n" +" spidsen af den nuværende gren hvis ingen revision er angivet. Brug\n" +" null som revision for at fjerne arbejdskataloget (ligesom 'hg\n" +" clone -U').\n" +"\n" +" Hvis arbejdskataloget ikke indeholder nogen uarkiverede ændringer,\n" +" da vil det blive erstattet af den ønskede revision fra arkivet.\n" +" Hvis den ønskede revision er på en anden gren, så vil\n" +" arbejdskataloget yderligere blive skiftet til denne gren.\n" +"\n" +" Hvis der er uarkiverede ændringer kan -C tilvalget bruges for at\n" +" kassere dem og sætte tilstanden af arbejdskataloget lig tilstanden\n" +" i den ønskede revision.\n" +"\n" +" Hvis der er uarkiverede ændringer, og -C tilvalget ikke bruges, og\n" +" forældrerevisionen og den ønskede revision begge er på samme gren,\n" +" og en af dem er en forfar til den anden, så vil det nye\n" +" arbejdskatalog indeholde den ønskede revision sammenføjet med de\n" +" uarkiverede ændringer. Ellers vil opdateringen fejle med et\n" +" forslag til at bruge 'merge' eller 'update -C' i stedet.\n" +"\n" +" Hvis du vil opdatere blot en enkelt fil til en ældre revision,\n" +" brug da revert.\n" +"\n" +" Se 'hg help dates' for en liste af gyldige formater til --date.\n" +" " msgid "" "verify the integrity of the repository\n" @@ -6285,7 +6614,7 @@ msgid "" "\n" -"Copyright (C) 2005-2008 Matt Mackall and others\n" +"Copyright (C) 2005-2009 Matt Mackall and others\n" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" @@ -6294,7 +6623,7 @@ msgstr "" msgid "change working directory" -msgstr "skift arbejdsbibliotek" +msgstr "skift arbejdskatalog" msgid "do not prompt, assume 'yes' for any required answers" msgstr "spørg ikke, antag alle svar er 'ja'" @@ -6354,10 +6683,10 @@ msgstr "ekskluder navne som matcher det givne mønster" msgid "use as commit message" -msgstr "brug som commit-besked" +msgstr "brug som arkiveringsbesked" msgid "read commit message from " -msgstr "læs commit-beskeden fra " +msgstr "læs arkiveringsbeskeden fra " msgid "record datecode as commit date" msgstr "" @@ -7249,9 +7578,9 @@ "\n" " The log command also accepts date ranges:\n" "\n" -" \"<{date}\" - on or before a given date\n" -" \">{date}\" - on or after a given date\n" -" \"{date} to {date}\" - a date range, inclusive\n" +" \"<{datetime}\" - at or before a given date/time\n" +" \">{datetime}\" - on or after a given date/time\n" +" \"{datetime} to {datetime}\" - a date range, inclusive\n" " \"-{days}\" - within a given number of days of today\n" " " msgstr "" @@ -7287,8 +7616,8 @@ "\n" " Kommandoen log accepterer også datointervaller:\n" "\n" -" \"<{date}\" - på eller før den angivne dato\n" -" \">{date}\" - på eller efter den angivne dato\n" +" \"<{date}\" - på eller før den angivne dato/tidspunkt\n" +" \">{date}\" - på eller efter den angivne dato/tidspunkt\n" " \"{date} to {date}\" - et datointerval, inklusiv endepunkterne\n" " \"-{days}\" - indenfor et angivet antal dage, fra dags dato\n" " " @@ -7306,16 +7635,16 @@ "\n" " Alternate pattern notations must be specified explicitly.\n" "\n" -" To use a plain path name without any pattern matching, start a\n" -" name with \"path:\". These path names must match completely, from\n" -" the root of the current repository.\n" -"\n" -" To use an extended glob, start a name with \"glob:\". Globs are\n" -" rooted at the current directory; a glob such as \"*.c\" will match\n" -" files ending in \".c\" in the current directory only.\n" +" To use a plain path name without any pattern matching, start it\n" +" with \"path:\". These path names must completely match starting at\n" +" the current repository root.\n" +"\n" +" To use an extended glob, start a name with \"glob:\". Globs are\n" +" rooted at the current directory; a glob such as \"*.c\" will only\n" +" match files in the current directory ending with \".c\".\n" "\n" " The supported glob syntax extensions are \"**\" to match any string\n" -" across path separators, and \"{a,b}\" to mean \"a or b\".\n" +" across path separators and \"{a,b}\" to mean \"a or b\".\n" "\n" " To use a Perl/Python regular expression, start a name with \"re:\".\n" " Regexp pattern matching is anchored at the root of the repository.\n" @@ -7330,11 +7659,11 @@ "\n" " glob:*.c any name ending in \".c\" in the current directory\n" " *.c any name ending in \".c\" in the current directory\n" -" **.c any name ending in \".c\" in the current directory, or\n" -" any subdirectory\n" +" **.c any name ending in \".c\" in any subdirectory of the\n" +" current directory including itself.\n" " foo/*.c any name ending in \".c\" in the directory foo\n" -" foo/**.c any name ending in \".c\" in the directory foo, or any\n" -" subdirectory\n" +" foo/**.c any name ending in \".c\" in any subdirectory of foo\n" +" including itself.\n" "\n" " Regexp examples:\n" "\n" @@ -7350,11 +7679,13 @@ "\n" "HG::\n" " Path to the 'hg' executable, automatically passed when running hooks,\n" -" extensions or external tools. If unset or empty, an executable named\n" -" 'hg' (with com/exe/bat/cmd extension on Windows) is searched.\n" +" extensions or external tools. If unset or empty, this is the hg\n" +" executable's name if it's frozen, or an executable named 'hg'\n" +" (with %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on\n" +" Windows) is searched.\n" "\n" "HGEDITOR::\n" -" This is the name of the editor to use when committing. See EDITOR.\n" +" This is the name of the editor to run when committing. See EDITOR.\n" "\n" " (deprecated, use .hgrc)\n" "\n" @@ -7366,8 +7697,8 @@ "\n" "HGENCODINGMODE::\n" " This sets Mercurial's behavior for handling unknown characters\n" -" while transcoding user inputs. The default is \"strict\", which\n" -" causes Mercurial to abort if it can't translate a character. Other\n" +" while transcoding user input. The default is \"strict\", which\n" +" causes Mercurial to abort if it can't map a character. Other\n" " settings include \"replace\", which replaces unknown characters, and\n" " \"ignore\", which drops them. This setting can be overridden with\n" " the --encodingmode command-line option.\n" @@ -7380,26 +7711,32 @@ " (deprecated, use .hgrc)\n" "\n" "HGRCPATH::\n" -" A list of files or directories to search for hgrc files. Item\n" -" separator is \":\" on Unix, \";\" on Windows. If HGRCPATH is not set,\n" -" platform default search path is used. If empty, only .hg/hgrc of\n" -" current repository is read.\n" -"\n" -" For each element in path, if a directory, all entries in directory\n" -" ending with \".rc\" are added to path. Else, element itself is\n" -" added to path.\n" +" A list of files or directories to search for hgrc files. Item\n" +" separator is \":\" on Unix, \";\" on Windows. If HGRCPATH is not set,\n" +" platform default search path is used. If empty, only the .hg/hgrc\n" +" from the current repository is read.\n" +"\n" +" For each element in HGRCPATH:\n" +" * if it's a directory, all directories ending with .rc are added\n" +" * otherwise, the directory itself will be added\n" "\n" "HGUSER::\n" -" This is the string used for the author of a commit.\n" +" This is the string used as the author of a commit. If not set,\n" +" available values will be considered in this order:\n" +"\n" +" * HGUSER (deprecated)\n" +" * hgrc files from the HGRCPATH\n" +" * EMAIL\n" +" * interactive prompt\n" +" * LOGNAME (with '@hostname' appended)\n" "\n" " (deprecated, use .hgrc)\n" "\n" "EMAIL::\n" -" If HGUSER is not set, this will be used as the author for a commit.\n" +" May be used as the author of a commit; see HGUSER.\n" "\n" "LOGNAME::\n" -" If neither HGUSER nor EMAIL is set, LOGNAME will be used (with\n" -" '@hostname' appended) as the author value for a commit.\n" +" May be used as the author of a commit; see HGUSER.\n" "\n" "VISUAL::\n" " This is the name of the editor to use when committing. See EDITOR.\n" @@ -7414,7 +7751,7 @@ "\n" "PYTHONPATH::\n" " This is used by Python to find imported modules and may need to be set\n" -" appropriately if Mercurial is not installed system-wide.\n" +" appropriately if this Mercurial is not installed system-wide.\n" " " msgstr "" @@ -7423,12 +7760,14 @@ msgid "" "\n" -" Mercurial accepts several notations for identifying individual\n" +" Mercurial supports several ways to specify individual\n" " revisions.\n" "\n" " A plain integer is treated as a revision number. Negative\n" -" integers are treated as offsets from the tip, with -1 denoting the\n" -" tip.\n" +" integers are treated as toplogical offsets from the tip, with\n" +" -1 denoting the tip. As such, negative numbers are only useful\n" +" if you've memorized your local tree numbers and want to save\n" +" typing a single digit. This editor suggests copy and paste.\n" "\n" " A 40-digit hexadecimal string is treated as a unique revision\n" " identifier.\n" @@ -7436,7 +7775,7 @@ " A hexadecimal string less than 40 characters long is treated as a\n" " unique revision identifier, and referred to as a short-form\n" " identifier. A short-form identifier is only valid if it is the\n" -" prefix of one full-length identifier.\n" +" prefix of exactly one full-length identifier.\n" "\n" " Any other string is treated as a tag name, which is a symbolic\n" " name associated with a revision identifier. Tag names may not\n" @@ -7461,8 +7800,8 @@ msgid "" "\n" " When Mercurial accepts more than one revision, they may be\n" -" specified individually, or provided as a continuous range,\n" -" separated by the \":\" character.\n" +" specified individually, or provided as a topologically continuous\n" +" range, separated by the \":\" character.\n" "\n" " The syntax of range notation is [BEGIN]:[END], where BEGIN and END\n" " are revision identifiers. Both BEGIN and END are optional. If\n" @@ -7474,7 +7813,7 @@ " order.\n" "\n" " A range acts as a closed interval. This means that a range of 3:5\n" -" gives 3, 4 and 5. Similarly, a range of 4:2 gives 4, 3, and 2.\n" +" gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.\n" " " msgstr "" @@ -7490,14 +7829,14 @@ " While this standard format is often enough, it does not encode the\n" " following information:\n" "\n" -" - executable status\n" +" - executable status and other permission bits\n" " - copy or rename information\n" " - changes in binary files\n" " - creation or deletion of empty files\n" "\n" " Mercurial also supports the extended diff format from the git VCS\n" " which addresses these limitations. The git diff format is not\n" -" produced by default because there are very few tools which\n" +" produced by default because a few widespread tools still do not\n" " understand this format.\n" "\n" " This means that when generating diffs from a Mercurial repository\n" @@ -7526,7 +7865,7 @@ "style).\n" "\n" " You can customize output for any \"log-like\" command: log, outgoing,\n" -" incoming, tip, parents, heads and glog are all template-enabled.\n" +" incoming, tip, parents, heads and glog.\n" "\n" " Three styles are packaged with Mercurial: default (the style used\n" " when no explicit preference is passed), compact and changelog. Usage:\n" @@ -7563,7 +7902,7 @@ " want to use a date in your output, you can use a filter to process it.\n" " Filters are functions which return a string based on the input " "variable.\n" -" You can also use a chain of filters to get the wanted output:\n" +" You can also use a chain of filters to get the desired output:\n" "\n" " $ hg tip --template \"{date|isodate}\\n\"\n" " 2008-08-21 18:22 +0000\n" @@ -7572,15 +7911,21 @@ "\n" " - addbreaks: Any text. Add an XHTML \"
\" tag before the end of\n" " every line except the last.\n" -" - age: Date. Returns a human-readable age for the given date.\n" +" - age: Date. Returns a human-readable date/time difference between\n" +" the given date/time and the current date/time.\n" " - basename: Any text. Treats the text as a path, and returns the\n" -" basename. For example, \"foo/bar/baz\" becomes \"baz\".\n" -" - date: Date. Returns a date in a Unix date command format, including\n" +" last component of the path after splitting by the path\n" +" separator (ignoring trailing seprators). For example,\n" +" \"foo/bar/baz\" becomes \"baz\" and \"foo/bar//\" becomes \"bar" +"\".\n" +" - date: Date. Returns a date in a Unix date format, including\n" " the timezone: \"Mon Sep 04 15:13:13 2006 0700\".\n" " - domain: Any text. Finds the first string that looks like an email\n" " address, and extracts just the domain component.\n" +" Example: 'User ' becomes 'example.com'.\n" " - email: Any text. Extracts the first string that looks like an email\n" -" address.\n" +" address. Example: 'User ' becomes\n" +" 'user@example.com'.\n" " - escape: Any text. Replaces the special XML/XHTML characters \"&\",\n" " \"<\" and \">\" with XML entities.\n" " - fill68: Any text. Wraps the text to fit in 68 columns.\n" @@ -7596,7 +7941,7 @@ " in email headers.\n" " - short: Changeset hash. Returns the short form of a changeset hash,\n" " i.e. a 12-byte hexadecimal string.\n" -" - shortdate: Date. Returns a date like \"2006-09-04\".\n" +" - shortdate: Date. Returns a date like \"2006-09-18\".\n" " - strip: Any text. Strips all leading and trailing whitespace.\n" " - tabindent: Any text. Returns the text, with every line except the\n" " first starting with a tab character.\n" @@ -7623,7 +7968,7 @@ " 'hg incoming --bundle').\n" "\n" " An optional identifier after # indicates a particular branch, tag,\n" -" or changeset to deal with in the remote repository.\n" +" or changeset to use from the remote repository.\n" "\n" " Some features, such as pushing to http:// and https:// URLs are\n" " only possible if the feature is explicitly enabled on the\n" @@ -7655,13 +8000,14 @@ " You can then use the alias for any command that uses a url (for example\n" " 'hg pull alias1' would pull from the 'alias1' path).\n" "\n" -" Two path aliases are more important because they are used as defaults\n" +" Two path aliases are special because they are used as defaults\n" " when you do not provide the url to a command:\n" "\n" " default:\n" " When you create a repository with hg clone, the clone command saves\n" -" the location of the source repository as the 'default' path. This is\n" -" then used when you omit a path from the push and pull commands.\n" +" the location of the source repository as the new repository's\n" +" 'default' path. This is then used when you omit path from push-\n" +" and pull-like commands (including in and out).\n" "\n" " default-push:\n" " The push command will look for a path named 'default-push', and\n" @@ -7686,7 +8032,7 @@ msgstr "" msgid "updating working directory\n" -msgstr "opdaterer arbejdsbibliotek\n" +msgstr "opdaterer arbejdskatalog\n" msgid "updated" msgstr "opdateret" @@ -7707,6 +8053,11 @@ msgid "use 'hg resolve' to retry unresolved file merges\n" msgstr "" +msgid "" +"use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to " +"abandon\n" +msgstr "" + msgid "(branch merge, don't forget to commit)\n" msgstr "" @@ -7929,7 +8280,7 @@ #, python-format msgid "working directory of %s" -msgstr "arbejdsbibliotek for %s" +msgstr "arbejdskatalog for %s" #, python-format msgid " %s: searching for copy revision for %s\n" @@ -8533,7 +8884,7 @@ msgstr "" msgid "enter a commit username:" -msgstr "angiv et commit brugernavn:" +msgstr "angiv et arkiveringsbrugernavn:" #, python-format msgid "No username found, using '%s' instead\n" @@ -8775,6 +9126,10 @@ msgid "cannot decode filename '%s'" msgstr "kan ikke dekode filnavn '%s'" +#, python-format +msgid "broken revlog! (%s)" +msgstr "" + msgid "missing revlog!" msgstr "manglende revlog!" diff -r 47b0a881638f -r 072df47d84c1 i18n/de.po --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/i18n/de.po Tue Mar 31 23:11:11 2009 +0200 @@ -0,0 +1,9814 @@ +# German translations for Mercurial +# Deutsche Übersetzungen für Mercurial +# Copyright (C) 2009 Matt Mackall and others +# +# Übersetzungen +# ============= +# branch Zweig/Verzweigung +# bundle Bündel +# change Änderung +# changeset Änderungssatz +# check out auschecken +# commit Version +# commit (v) übertragen +# deprecated veraltet +# hook Aktion +# merge zusammenführen +# notation Schreibweise +# repository Projektarchiv +# +# Die Koordination der Übersetzung erfolgt auf http://bitbucket.org/tobidope/mercurial-german-translation +msgid "" +msgstr "" +"Project-Id-Version: Mercurial\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-03-29 13:09+0200\n" +"PO-Revision-Date: 2009-03-29 13:41+0200\n" +"Last-Translator: Tobias Bell \n" +"Language-Team: German (Tobias Bell, Fabian Kreutz, Lutz Horn)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, python-format +msgid " (default: %s)" +msgstr " (Standard: %s)" + +msgid "OPTIONS" +msgstr "OPTIONEN" + +msgid "COMMANDS" +msgstr "BEFEHLE" + +msgid " options:\n" +msgstr " Optionen:\n" + +#, python-format +msgid "" +" aliases: %s\n" +"\n" +msgstr "" +" Aliase: %s\n" +"\n" + +# Nicht übersetzen +msgid "return tuple of (match function, list enabled)." +msgstr "" + +#, python-format +msgid "acl: %s not enabled\n" +msgstr "acl: %s nicht aktiviert\n" + +#, python-format +msgid "acl: %s enabled, %d entries for user %s\n" +msgstr "acl: %s aktiviert, %d Einträge für Nutzer %s\n" + +#, python-format +msgid "config error - hook type \"%s\" cannot stop incoming changesets" +msgstr "" +"Konfigurationsfehler - Aktionstyp \"%s\" kann hereinkommende Änderungssätze\n" +"nicht stoppen" + +#, python-format +msgid "acl: changes have source \"%s\" - skipping\n" +msgstr "acl: Änderungen haben die Quelle \"%s\" - überspringe\n" + +#, python-format +msgid "acl: user %s denied on %s\n" +msgstr "acl: Benutzer %s nicht berechtigt für %s\n" + +#, python-format +msgid "acl: access denied for changeset %s" +msgstr "acl: Zugriff verweigert auf die Version %s" + +#, python-format +msgid "acl: user %s not allowed on %s\n" +msgstr "acl: Benutzer %s hat keinen Zugriff auf %s\n" + +#, python-format +msgid "acl: allowing changeset %s\n" +msgstr "acl: Gestatte Version %s\n" + +msgid "" +"allow user-defined command aliases\n" +"\n" +"To use, create entries in your hgrc of the form\n" +"\n" +"[alias]\n" +"mycmd = cmd --args\n" +msgstr "" +"Ermöglicht benutzerdefinierte Befehls-Aliase\n" +"\n" +"Um sie zu nutzen, erzeuge Einträge folgender Form in deiner hgrc\n" +"\n" +"[alias]\n" +"mycmd = cmd --args\n" + +msgid "" +"defer command lookup until needed, so that extensions loaded\n" +" after alias can be aliased" +msgstr "" + +#, python-format +msgid "*** [alias] %s: command %s is unknown" +msgstr "*** [alias] %s: Befehl %s ist unbekannt" + +#, python-format +msgid "*** [alias] %s: command %s is ambiguous" +msgstr "*** [alias] %s: Befehl %s ist zweideutig" + +#, python-format +msgid "*** [alias] %s: circular dependency on %s" +msgstr "*** [alias] %s: zirkuläre Abhängigkeit auf %s" + +#, python-format +msgid "*** [alias] %s: no definition\n" +msgstr "*** [alias] %s: nicht definiert\n" + +# Nicht übersetzen +msgid "" +"mercurial bookmarks\n" +"\n" +"Mercurial bookmarks are local moveable pointers to changesets. Every\n" +"bookmark points to a changeset identified by its hash. If you commit a\n" +"changeset that is based on a changeset that has a bookmark on it, the\n" +"bookmark is forwarded to the new changeset.\n" +"\n" +"It is possible to use bookmark names in every revision lookup (e.g. hg\n" +"merge, hg update).\n" +"\n" +"The bookmark extension offers the possiblity to have a more git-like " +"experience\n" +"by adding the following configuration option to your .hgrc:\n" +"\n" +"[bookmarks]\n" +"track.current = True\n" +"\n" +"This will cause bookmarks to track the bookmark that you are currently on, " +"and\n" +"just updates it. This is similar to git's approach of branching.\n" +msgstr "" + +# Nicht übersetzen +msgid "" +"Parse .hg/bookmarks file and return a dictionary\n" +"\n" +" Bookmarks are stored as {HASH}\\s{NAME}\\n (localtags format) values\n" +" in the .hg/bookmarks file. They are read by the parse() method and\n" +" returned as a dictionary with name => hash values.\n" +"\n" +" The parsed dictionary is cached until a write() operation is done.\n" +" " +msgstr "" + +# Nicht übersetzen +msgid "" +"Write bookmarks\n" +"\n" +" Write the given bookmark => hash dictionary to the .hg/bookmarks file\n" +" in a format equal to those of localtags.\n" +"\n" +" We also store a backup of the previous state in undo.bookmarks that\n" +" can be copied back on rollback.\n" +" " +msgstr "" + +# Nicht übersetzen +msgid "" +"Get the current bookmark\n" +"\n" +" If we use gittishsh branches we have a current bookmark that\n" +" we are on. This function returns the name of the bookmark. It\n" +" is stored in .hg/bookmarks.current\n" +" " +msgstr "" + +# Nicht übersetzen +msgid "" +"Set the name of the bookmark that we are currently on\n" +"\n" +" Set the name of the bookmark that we are on (hg update ).\n" +" The name is recoreded in .hg/bookmarks.current\n" +" " +msgstr "" + +msgid "" +"mercurial bookmarks\n" +"\n" +" Bookmarks are pointers to certain commits that move when\n" +" commiting. Bookmarks are local. They can be renamed, copied and\n" +" deleted. It is possible to use bookmark names in 'hg merge' and 'hg\n" +" update' to update to a given bookmark.\n" +"\n" +" You can use 'hg bookmark NAME' to set a bookmark on the current\n" +" tip with the given name. If you specify a revision using -r REV\n" +" (where REV may be an existing bookmark), the bookmark is set to\n" +" that revision.\n" +" " +msgstr "" +"mercurial bookmarks (Lesezeichen)\n" +"\n" +" Lesezeichen sind Zeiger auf bestimmte Versionen, die mitwandern,\n" +" wenn eine neuen Version erzeugt wird. Lesezeichen sind nur lokal.\n" +" Sie können umbenannt, kopiert und gelöscht werden. Es ist möglich\n" +" Lesezeichen bei 'hg merge' und 'hg update' zu nutzen, um auf das\n" +" angegebene Lesezeichen zu aktualisieren.\n" +"\n" +" Du kannst 'hg bookmark NAME' aufrufen, um ein Lesezeichen mit dem\n" +" angegeben Namen auf der aktuellen Spitze (tip) zu setzen. Bei Angabe " +"einer\n" +" Revision mit -r REV (REV kann ein vorhandenes Lesezeichen sein) wird " +"das\n" +" Lesezeichen auf dieser Revision gesetzt.\n" +" " + +msgid "a bookmark of this name does not exist" +msgstr "Es existiert kein Lesezeichen mit diesem Namen" + +msgid "a bookmark of the same name already exists" +msgstr "Ein Lesezeichen mit diesem Namen existiert bereits" + +msgid "new bookmark name required" +msgstr "Ein neuer Name für das Lesezeichen muss übergeben werden" + +msgid "bookmark name required" +msgstr "Ein Name für das Lesezeichen muss übergeben werden" + +msgid "bookmark name cannot contain newlines" +msgstr "Ein Lesezeichenname darf keine Zeilenumbrüche enthalten" + +msgid "a bookmark cannot have the name of an existing branch" +msgstr "" +"Ein Lesezeichen darf nicht denselben Namen wie ein existierender Zweig haben" + +# Nicht übersetzen +msgid "" +"Strip bookmarks if revisions are stripped using\n" +" the mercurial.strip method. This usually happens during\n" +" qpush and qpop" +msgstr "" + +# Nicht übersetzen +msgid "" +"Add a revision to the repository and\n" +" move the bookmark" +msgstr "" + +# Nicht übersetzen +msgid "Merge bookmarks with normal tags" +msgstr "" + +# Nicht übersetzen +msgid "" +"Set the current bookmark\n" +"\n" +" If the user updates to a bookmark we update the .hg/bookmarks.current\n" +" file.\n" +" " +msgstr "" + +msgid "force" +msgstr "erzwinge" + +msgid "revision" +msgstr "Revision" + +msgid "delete a given bookmark" +msgstr "Löscht ein gegebenes Lesezeichen" + +msgid "rename a given bookmark" +msgstr "Benennt ein gegebenes Lesezeichen um" + +msgid "hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]" +msgstr "" + +msgid "" +"Bugzilla integration\n" +"\n" +"This hook extension adds comments on bugs in Bugzilla when changesets\n" +"that refer to bugs by Bugzilla ID are seen. The hook does not change bug\n" +"status.\n" +"\n" +"The hook updates the Bugzilla database directly. Only Bugzilla " +"installations\n" +"using MySQL are supported.\n" +"\n" +"The hook relies on a Bugzilla script to send bug change notification " +"emails.\n" +"That script changes between Bugzilla versions; the 'processmail' script " +"used\n" +"prior to 2.18 is replaced in 2.18 and subsequent versions by\n" +"'config/sendbugmail.pl'. Note that these will be run by Mercurial as the " +"user\n" +"pushing the change; you will need to ensure the Bugzilla install file\n" +"permissions are set appropriately.\n" +"\n" +"Configuring the extension:\n" +"\n" +" [bugzilla]\n" +" host Hostname of the MySQL server holding the Bugzilla database.\n" +" db Name of the Bugzilla database in MySQL. Default 'bugs'.\n" +" user Username to use to access MySQL server. Default 'bugs'.\n" +" password Password to use to access MySQL server.\n" +" timeout Database connection timeout (seconds). Default 5.\n" +" version Bugzilla version. Specify '3.0' for Bugzilla versions 3.0 " +"and\n" +" later, '2.18' for Bugzilla versions from 2.18 and '2.16' for\n" +" versions prior to 2.18.\n" +" bzuser Fallback Bugzilla user name to record comments with, if\n" +" changeset committer cannot be found as a Bugzilla user.\n" +" bzdir Bugzilla install directory. Used by default notify.\n" +" Default '/var/www/html/bugzilla'.\n" +" notify The command to run to get Bugzilla to send bug change\n" +" notification emails. Substitutes from a map with 3 keys,\n" +" 'bzdir', 'id' (bug id) and 'user' (committer bugzilla " +"email).\n" +" Default depends on version; from 2.18 it is\n" +" \"cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %" +"(user)s\".\n" +" regexp Regular expression to match bug IDs in changeset commit " +"message.\n" +" Must contain one \"()\" group. The default expression " +"matches\n" +" 'Bug 1234', 'Bug no. 1234', 'Bug number 1234',\n" +" 'Bugs 1234,5678', 'Bug 1234 and 5678' and variations " +"thereof.\n" +" Matching is case insensitive.\n" +" style The style file to use when formatting comments.\n" +" template Template to use when formatting comments. Overrides\n" +" style if specified. In addition to the usual Mercurial\n" +" keywords, the extension specifies:\n" +" {bug} The Bugzilla bug ID.\n" +" {root} The full pathname of the Mercurial " +"repository.\n" +" {webroot} Stripped pathname of the Mercurial " +"repository.\n" +" {hgweb} Base URL for browsing Mercurial " +"repositories.\n" +" Default 'changeset {node|short} in repo {root} refers '\n" +" 'to bug {bug}.\\ndetails:\\n\\t{desc|tabindent}'\n" +" strip The number of slashes to strip from the front of {root}\n" +" to produce {webroot}. Default 0.\n" +" usermap Path of file containing Mercurial committer ID to Bugzilla " +"user\n" +" ID mappings. If specified, the file should contain one " +"mapping\n" +" per line, \"committer\"=\"Bugzilla user\". See also the\n" +" [usermap] section.\n" +"\n" +" [usermap]\n" +" Any entries in this section specify mappings of Mercurial committer ID\n" +" to Bugzilla user ID. See also [bugzilla].usermap.\n" +" \"committer\"=\"Bugzilla user\"\n" +"\n" +" [web]\n" +" baseurl Base URL for browsing Mercurial repositories. Reference from\n" +" templates as {hgweb}.\n" +"\n" +"Activating the extension:\n" +"\n" +" [extensions]\n" +" hgext.bugzilla =\n" +"\n" +" [hooks]\n" +" # run bugzilla hook on every change pulled or pushed in here\n" +" incoming.bugzilla = python:hgext.bugzilla.hook\n" +"\n" +"Example configuration:\n" +"\n" +"This example configuration is for a collection of Mercurial repositories\n" +"in /var/local/hg/repos/ used with a local Bugzilla 3.2 installation in\n" +"/opt/bugzilla-3.2.\n" +"\n" +" [bugzilla]\n" +" host=localhost\n" +" password=XYZZY\n" +" version=3.0\n" +" bzuser=unknown@domain.com\n" +" bzdir=/opt/bugzilla-3.2\n" +" template=Changeset {node|short} in {root|basename}.\\n{hgweb}/{webroot}/" +"rev/{node|short}\\n\\n{desc}\\n\n" +" strip=5\n" +"\n" +" [web]\n" +" baseurl=http://dev.domain.com/hg\n" +"\n" +" [usermap]\n" +" user@emaildomain.com=user.name@bugzilladomain.com\n" +"\n" +"Commits add a comment to the Bugzilla bug record of the form:\n" +"\n" +" Changeset 3b16791d6642 in repository-name.\n" +" http://dev.domain.com/hg/repository-name/rev/3b16791d6642\n" +"\n" +" Changeset commit comment. Bug 1234.\n" +msgstr "" + +msgid "support for bugzilla version 2.16." +msgstr "Unterstützung für Bugzilla-Version 2.16" + +#, python-format +msgid "connecting to %s:%s as %s, password %s\n" +msgstr "Verbinde mit %s:%s als %s, Passwort %s\n" + +msgid "run a query." +msgstr "" + +#, python-format +msgid "query: %s %s\n" +msgstr "" + +#, python-format +msgid "failed query: %s %s\n" +msgstr "" + +msgid "get identity of longdesc field" +msgstr "" + +msgid "unknown database schema" +msgstr "" + +msgid "filter not-existing bug ids from list." +msgstr "" + +msgid "filter bug ids from list that already refer to this changeset." +msgstr "" + +#, python-format +msgid "bug %d already knows about changeset %s\n" +msgstr "" + +msgid "tell bugzilla to send mail." +msgstr "" + +msgid "telling bugzilla to send mail:\n" +msgstr "" + +#, python-format +msgid " bug %s\n" +msgstr "" + +#, python-format +msgid "running notify command %s\n" +msgstr "" + +#, python-format +msgid "bugzilla notify command %s" +msgstr "" + +msgid "done\n" +msgstr "erledigt\n" + +msgid "look up numeric bugzilla user id." +msgstr "" + +#, python-format +msgid "looking up user %s\n" +msgstr "" + +msgid "map name of committer to bugzilla user name." +msgstr "" + +msgid "" +"see if committer is a registered bugzilla user. Return\n" +" bugzilla username and userid if so. If not, return default\n" +" bugzilla username and userid." +msgstr "" + +#, python-format +msgid "cannot find bugzilla user id for %s" +msgstr "" + +#, python-format +msgid "cannot find bugzilla user id for %s or %s" +msgstr "" + +msgid "" +"add comment to bug. try adding comment as committer of\n" +" changeset, otherwise as default bugzilla user." +msgstr "" + +msgid "support for bugzilla 2.18 series." +msgstr "" + +msgid "support for bugzilla 3.0 series." +msgstr "" + +msgid "" +"return object that knows how to talk to bugzilla version in\n" +" use." +msgstr "" + +#, python-format +msgid "bugzilla version %s not supported" +msgstr "" + +msgid "" +"find valid bug ids that are referred to in changeset\n" +" comments and that do not already have references to this\n" +" changeset." +msgstr "" + +msgid "update bugzilla bug with reference to changeset." +msgstr "" + +msgid "" +"strip leading prefix of repo root and turn into\n" +" url-safe path." +msgstr "" + +msgid "" +"changeset {node|short} in repo {root} refers to bug {bug}.\n" +"details:\n" +"\t{desc|tabindent}" +msgstr "" + +msgid "" +"add comment to bugzilla for each changeset that refers to a\n" +" bugzilla bug id. only add a comment once per bug, so same change\n" +" seen multiple times does not fill bug with duplicate data." +msgstr "" + +#, python-format +msgid "python mysql support not available: %s" +msgstr "" + +#, python-format +msgid "hook type %s does not pass a changeset id" +msgstr "" + +#, python-format +msgid "database error: %s" +msgstr "" + +msgid "" +"show the children of the given or working dir revision\n" +"\n" +" Print the children of the working directory's revisions.\n" +" If a revision is given via --rev, the children of that revision\n" +" will be printed. If a file argument is given, revision in\n" +" which the file was last changed (after the working directory\n" +" revision or the argument to --rev if given) is printed.\n" +" " +msgstr "" +"Zeigt die Kinder der übergebenen Revision oder des Arbeitsverzeichnisses an\n" +"\n" +" Zeigt die Kinder der Revision des Arbeitsverzeichnisses an.\n" +" Wenn eine Revision durch --rev angegeben wird, werden die Kinder dieser\n" +" Revision angezeigt. Wenn eine Datei als Argument angegeben wird, zeige " +"die\n" +" Revision an, in der die Datei zuletzt geändert wurde (nachfolgend der\n" +" Revision des Arbeitsverzeichnisses oder wenn angegeben dem Argument von\n" +" --rev).\n" +" " + +msgid "show children of the specified rev" +msgstr "Zeigt die Kinder der übergebenen Revision" + +msgid "hg children [-r REV] [FILE]" +msgstr "hg children [-r REV] [DATEI]" + +msgid "command to show certain statistics about revision history" +msgstr "" + +msgid "Calculate stats" +msgstr "" + +#, python-format +msgid "Revision %d is a merge, ignoring...\n" +msgstr "Revision %d ist eine Zusammenführung, wird ignoriert...\n" + +#, python-format +msgid "\rgenerating stats: %d%%" +msgstr "" + +msgid "" +"graph count of revisions grouped by template\n" +"\n" +" Will graph count of changed lines or revisions grouped by template or\n" +" alternatively by date, if dateformat is used. In this case it will " +"override\n" +" template.\n" +"\n" +" By default statistics are counted for number of changed lines.\n" +"\n" +" Examples:\n" +"\n" +" # display count of changed lines for every committer\n" +" hg churn -t '{author|email}'\n" +"\n" +" # display daily activity graph\n" +" hg churn -f '%H' -s -c\n" +"\n" +" # display activity of developers by month\n" +" hg churn -f '%Y-%m' -s -c\n" +"\n" +" # display count of lines changed in every year\n" +" hg churn -f '%Y' -s\n" +"\n" +" The map file format used to specify aliases is fairly simple:\n" +"\n" +" " +msgstr "" + +#, python-format +msgid "assuming %i character terminal\n" +msgstr "" + +msgid "count rate for the specified revision or range" +msgstr "" + +msgid "count rate for revs matching date spec" +msgstr "" + +msgid "template to group changesets" +msgstr "" + +msgid "strftime-compatible format for grouping by date" +msgstr "" + +msgid "count rate by number of changesets" +msgstr "" + +msgid "sort by key (default: sort by count)" +msgstr "" + +msgid "file with email aliases" +msgstr "" + +msgid "show progress" +msgstr "" + +msgid "hg churn [-d DATE] [-r REV] [--aliases FILE] [--progress] [FILE]" +msgstr "" + +msgid "" +"add color output to status, qseries, and diff-related commands\n" +"\n" +"This extension modifies the status command to add color to its output to\n" +"reflect file status, the qseries command to add color to reflect patch " +"status\n" +"(applied, unapplied, missing), and to diff-related commands to highlight\n" +"additions, removals, diff headers, and trailing whitespace.\n" +"\n" +"Other effects in addition to color, like bold and underlined text, are also\n" +"available. Effects are rendered with the ECMA-48 SGR control function (aka\n" +"ANSI escape codes). This module also provides the render_text function,\n" +"which can be used to add effects to any text.\n" +"\n" +"To enable this extension, add this to your .hgrc file:\n" +"[extensions]\n" +"color =\n" +"\n" +"Default effects my be overriden from the .hgrc file:\n" +"\n" +"[color]\n" +"status.modified = blue bold underline red_background\n" +"status.added = green bold\n" +"status.removed = red bold blue_background\n" +"status.deleted = cyan bold underline\n" +"status.unknown = magenta bold underline\n" +"status.ignored = black bold\n" +"\n" +"# 'none' turns off all effects\n" +"status.clean = none\n" +"status.copied = none\n" +"\n" +"qseries.applied = blue bold underline\n" +"qseries.unapplied = black bold\n" +"qseries.missing = red bold\n" +"\n" +"diff.diffline = bold\n" +"diff.extended = cyan bold\n" +"diff.file_a = red bold\n" +"diff.file_b = green bold\n" +"diff.hunk = magenta\n" +"diff.deleted = red\n" +"diff.inserted = green\n" +"diff.changed = white\n" +"diff.trailingwhitespace = bold red_background\n" +msgstr "" + +msgid "Wrap text in commands to turn on each effect." +msgstr "" + +msgid "run the status command with colored output" +msgstr "" + +msgid "run the qseries command with colored output" +msgstr "" + +msgid "wrap ui.write for colored diff output" +msgstr "" + +msgid "wrap cmdutil.changeset_printer.showpatch with colored output" +msgstr "" + +msgid "run the diff command with colored output" +msgstr "" + +msgid "Initialize the extension." +msgstr "" + +msgid "patch in command to command table and load effect map" +msgstr "" + +msgid "when to colorize (always, auto, or never)" +msgstr "Wann soll eingefärbt werden (always, auto oder never)" + +msgid "don't colorize output" +msgstr "Keine Färbung der Ausgabe" + +msgid "converting foreign VCS repositories to Mercurial" +msgstr "" + +msgid "" +"convert a foreign SCM repository to a Mercurial one.\n" +"\n" +" Accepted source formats [identifiers]:\n" +" - Mercurial [hg]\n" +" - CVS [cvs]\n" +" - Darcs [darcs]\n" +" - git [git]\n" +" - Subversion [svn]\n" +" - Monotone [mtn]\n" +" - GNU Arch [gnuarch]\n" +" - Bazaar [bzr]\n" +" - Perforce [p4]\n" +"\n" +" Accepted destination formats [identifiers]:\n" +" - Mercurial [hg]\n" +" - Subversion [svn] (history on branches is not preserved)\n" +"\n" +" If no revision is given, all revisions will be converted. Otherwise,\n" +" convert will only import up to the named revision (given in a format\n" +" understood by the source).\n" +"\n" +" If no destination directory name is specified, it defaults to the\n" +" basename of the source with '-hg' appended. If the destination\n" +" repository doesn't exist, it will be created.\n" +"\n" +" If isn't given, it will be put in a default location\n" +" (/.hg/shamap by default). The is a simple text\n" +" file that maps each source commit ID to the destination ID for\n" +" that revision, like so:\n" +" \n" +"\n" +" If the file doesn't exist, it's automatically created. It's updated\n" +" on each commit copied, so convert-repo can be interrupted and can\n" +" be run repeatedly to copy new commits.\n" +"\n" +" The [username mapping] file is a simple text file that maps each source\n" +" commit author to a destination commit author. It is handy for source " +"SCMs\n" +" that use unix logins to identify authors (eg: CVS). One line per author\n" +" mapping and the line format is:\n" +" srcauthor=whatever string you want\n" +"\n" +" The filemap is a file that allows filtering and remapping of files\n" +" and directories. Comment lines start with '#'. Each line can\n" +" contain one of the following directives:\n" +"\n" +" include path/to/file\n" +"\n" +" exclude path/to/file\n" +"\n" +" rename from/file to/file\n" +"\n" +" The 'include' directive causes a file, or all files under a\n" +" directory, to be included in the destination repository, and the\n" +" exclusion of all other files and dirs not explicitely included.\n" +" The 'exclude' directive causes files or directories to be omitted.\n" +" The 'rename' directive renames a file or directory. To rename from a\n" +" subdirectory into the root of the repository, use '.' as the path to\n" +" rename to.\n" +"\n" +" The splicemap is a file that allows insertion of synthetic\n" +" history, letting you specify the parents of a revision. This is\n" +" useful if you want to e.g. give a Subversion merge two parents, or\n" +" graft two disconnected series of history together. Each entry\n" +" contains a key, followed by a space, followed by one or two\n" +" values, separated by spaces. The key is the revision ID in the\n" +" source revision control system whose parents should be modified\n" +" (same format as a key in .hg/shamap). The values are the revision\n" +" IDs (in either the source or destination revision control system)\n" +" that should be used as the new parents for that node.\n" +"\n" +" Mercurial Source\n" +" -----------------\n" +"\n" +" --config convert.hg.ignoreerrors=False (boolean)\n" +" ignore integrity errors when reading. Use it to fix Mercurial\n" +" repositories with missing revlogs, by converting from and to\n" +" Mercurial.\n" +" --config convert.hg.saverev=False (boolean)\n" +" store original revision ID in changeset (forces target IDs to " +"change)\n" +" --config convert.hg.startrev=0 (hg revision identifier)\n" +" convert start revision and its descendants\n" +"\n" +" CVS Source\n" +" ----------\n" +"\n" +" CVS source will use a sandbox (i.e. a checked-out copy) from CVS\n" +" to indicate the starting point of what will be converted. Direct\n" +" access to the repository files is not needed, unless of course\n" +" the repository is :local:. The conversion uses the top level\n" +" directory in the sandbox to find the CVS repository, and then uses\n" +" CVS rlog commands to find files to convert. This means that unless\n" +" a filemap is given, all files under the starting directory will be\n" +" converted, and that any directory reorganisation in the CVS\n" +" sandbox is ignored.\n" +"\n" +" Because CVS does not have changesets, it is necessary to collect\n" +" individual commits to CVS and merge them into changesets. CVS\n" +" source uses its internal changeset merging code by default but can\n" +" be configured to call the external 'cvsps' program by setting:\n" +" --config convert.cvsps='cvsps -A -u --cvs-direct -q'\n" +" This is a legacy option and may be removed in future.\n" +"\n" +" The options shown are the defaults.\n" +"\n" +" Internal cvsps is selected by setting\n" +" --config convert.cvsps=builtin\n" +" and has a few more configurable options:\n" +" --config convert.cvsps.fuzz=60 (integer)\n" +" Specify the maximum time (in seconds) that is allowed between\n" +" commits with identical user and log message in a single\n" +" changeset. When very large files were checked in as part\n" +" of a changeset then the default may not be long enough.\n" +" --config convert.cvsps.mergeto='{{mergetobranch ([-\\w]+)}}'\n" +" Specify a regular expression to which commit log messages are\n" +" matched. If a match occurs, then the conversion process will\n" +" insert a dummy revision merging the branch on which this log\n" +" message occurs to the branch indicated in the regex.\n" +" --config convert.cvsps.mergefrom='{{mergefrombranch ([-\\w]+)}}'\n" +" Specify a regular expression to which commit log messages are\n" +" matched. If a match occurs, then the conversion process will\n" +" add the most recent revision on the branch indicated in the\n" +" regex as the second parent of the changeset.\n" +"\n" +" The hgext/convert/cvsps wrapper script allows the builtin changeset\n" +" merging code to be run without doing a conversion. Its parameters and\n" +" output are similar to that of cvsps 2.1.\n" +"\n" +" Subversion Source\n" +" -----------------\n" +"\n" +" Subversion source detects classical trunk/branches/tags layouts.\n" +" By default, the supplied \"svn://repo/path/\" source URL is\n" +" converted as a single branch. If \"svn://repo/path/trunk\" exists\n" +" it replaces the default branch. If \"svn://repo/path/branches\"\n" +" exists, its subdirectories are listed as possible branches. If\n" +" \"svn://repo/path/tags\" exists, it is looked for tags referencing\n" +" converted branches. Default \"trunk\", \"branches\" and \"tags\" values\n" +" can be overriden with following options. Set them to paths\n" +" relative to the source URL, or leave them blank to disable\n" +" autodetection.\n" +"\n" +" --config convert.svn.branches=branches (directory name)\n" +" specify the directory containing branches\n" +" --config convert.svn.tags=tags (directory name)\n" +" specify the directory containing tags\n" +" --config convert.svn.trunk=trunk (directory name)\n" +" specify the name of the trunk branch\n" +"\n" +" Source history can be retrieved starting at a specific revision,\n" +" instead of being integrally converted. Only single branch\n" +" conversions are supported.\n" +"\n" +" --config convert.svn.startrev=0 (svn revision number)\n" +" specify start Subversion revision.\n" +"\n" +" Perforce Source\n" +" ---------------\n" +"\n" +" The Perforce (P4) importer can be given a p4 depot path or a client\n" +" specification as source. It will convert all files in the source to\n" +" a flat Mercurial repository, ignoring labels, branches and " +"integrations.\n" +" Note that when a depot path is given you then usually should specify a\n" +" target directory, because otherwise the target may be named ...-hg.\n" +"\n" +" It is possible to limit the amount of source history to be converted\n" +" by specifying an initial Perforce revision.\n" +"\n" +" --config convert.p4.startrev=0 (perforce changelist number)\n" +" specify initial Perforce revision.\n" +"\n" +"\n" +" Mercurial Destination\n" +" ---------------------\n" +"\n" +" --config convert.hg.clonebranches=False (boolean)\n" +" dispatch source branches in separate clones.\n" +" --config convert.hg.tagsbranch=default (branch name)\n" +" tag revisions branch name\n" +" --config convert.hg.usebranchnames=True (boolean)\n" +" preserve branch names\n" +"\n" +" " +msgstr "" + +msgid "" +"create changeset information from CVS\n" +"\n" +" This command is intended as a debugging tool for the CVS to Mercurial\n" +" converter, and can be used as a direct replacement for cvsps.\n" +"\n" +" Hg debugcvsps reads the CVS rlog for current directory (or any named\n" +" directory) in the CVS repository, and converts the log to a series of\n" +" changesets based on matching commit log entries and dates." +msgstr "" + +msgid "username mapping filename" +msgstr "" + +msgid "destination repository type" +msgstr "" + +msgid "remap file names using contents of file" +msgstr "" + +msgid "import up to target revision REV" +msgstr "" + +msgid "source repository type" +msgstr "" + +msgid "splice synthesized history into place" +msgstr "" + +msgid "try to sort changesets by date" +msgstr "" + +msgid "hg convert [OPTION]... SOURCE [DEST [REVMAP]]" +msgstr "" + +msgid "only return changes on specified branches" +msgstr "" + +msgid "prefix to remove from file names" +msgstr "" + +msgid "only return changes after or between specified tags" +msgstr "" + +msgid "update cvs log cache" +msgstr "" + +msgid "create new cvs log cache" +msgstr "" + +msgid "set commit time fuzz in seconds" +msgstr "" + +msgid "specify cvsroot" +msgstr "" + +msgid "show parent changesets" +msgstr "" + +msgid "show current changeset in ancestor branches" +msgstr "" + +msgid "ignored for compatibility" +msgstr "" + +msgid "hg debugcvsps [OPTION]... [PATH]..." +msgstr "" + +#, python-format +msgid "%s is not a valid revision in current branch" +msgstr "" + +#, python-format +msgid "%s is not available in %s anymore" +msgstr "" + +#, python-format +msgid "cannot find required \"%s\" tool" +msgstr "" + +#, python-format +msgid "running: %s\n" +msgstr "" + +#, python-format +msgid "%s error:\n" +msgstr "" + +#, python-format +msgid "%s %s" +msgstr "" + +#, python-format +msgid "could not open map file %r: %s" +msgstr "" + +#, python-format +msgid "%s: missing or unsupported repository" +msgstr "" + +#, python-format +msgid "convert: %s\n" +msgstr "" + +#, python-format +msgid "%s: unknown repository type" +msgstr "" + +#, python-format +msgid "cycle detected between %s and %s" +msgstr "" + +msgid "not all revisions were sorted" +msgstr "" + +#, python-format +msgid "Writing author map file %s\n" +msgstr "" + +#, python-format +msgid "Overriding mapping for author %s, was %s, will be %s\n" +msgstr "" + +#, python-format +msgid "mapping author %s to %s\n" +msgstr "" + +#, python-format +msgid "Ignoring bad line in author map file %s: %s\n" +msgstr "" + +#, python-format +msgid "spliced in %s as parents of %s\n" +msgstr "" + +msgid "scanning source...\n" +msgstr "" + +msgid "sorting...\n" +msgstr "" + +msgid "converting...\n" +msgstr "" + +#, python-format +msgid "source: %s\n" +msgstr "" + +#, python-format +msgid "assuming destination %s\n" +msgstr "" + +#, python-format +msgid "revision %s is not a patchset number or date" +msgstr "" + +msgid "using builtin cvsps\n" +msgstr "" + +#, python-format +msgid "connecting to %s\n" +msgstr "" + +msgid "CVS pserver authentication failed" +msgstr "" + +msgid "server sucks" +msgstr "" + +#, python-format +msgid "%d bytes missing from remote file" +msgstr "" + +#, python-format +msgid "cvs server: %s\n" +msgstr "" + +#, python-format +msgid "unknown CVS response: %s" +msgstr "" + +msgid "collecting CVS rlog\n" +msgstr "" + +#, python-format +msgid "reading cvs log cache %s\n" +msgstr "" + +#, python-format +msgid "cache has %d log entries\n" +msgstr "" + +#, python-format +msgid "error reading cache: %r\n" +msgstr "" + +#, python-format +msgid "running %s\n" +msgstr "" + +#, python-format +msgid "prefix=%r directory=%r root=%r\n" +msgstr "" + +msgid "RCS file must be followed by working file" +msgstr "" + +msgid "must have at least some revisions" +msgstr "" + +msgid "expected revision number" +msgstr "" + +msgid "revision must be followed by date line" +msgstr "" + +#, python-format +msgid "found synthetic rev in %s: %r\n" +msgstr "Synthetische Revision gefundein in %s: %r\n" + +#, python-format +msgid "writing cvs log cache %s\n" +msgstr "" + +#, python-format +msgid "%d log entries\n" +msgstr "" + +msgid "creating changesets\n" +msgstr "" + +msgid "synthetic changeset cannot have multiple parents" +msgstr "" + +#, python-format +msgid "%d changeset entries\n" +msgstr "" + +msgid "Python ElementTree module is not available" +msgstr "" + +#, python-format +msgid "cleaning up %s\n" +msgstr "" + +msgid "internal calling inconsistency" +msgstr "" + +msgid "errors in filemap" +msgstr "" + +#, python-format +msgid "%s:%d: %r already in %s list\n" +msgstr "" + +#, python-format +msgid "%s:%d: unknown directive %r\n" +msgstr "" + +msgid "source repository doesn't support --filemap" +msgstr "" + +#, python-format +msgid "%s does not look like a GNU Arch repo" +msgstr "" + +msgid "cannot find a GNU Arch tool" +msgstr "" + +#, python-format +msgid "analyzing tree version %s...\n" +msgstr "" + +#, python-format +msgid "" +"tree analysis stopped because it points to an unregistered archive %s...\n" +msgstr "" + +#, python-format +msgid "applying revision %s...\n" +msgstr "" + +#, python-format +msgid "computing changeset between %s and %s...\n" +msgstr "" + +#, python-format +msgid "obtaining revision %s...\n" +msgstr "" + +#, python-format +msgid "analysing revision %s...\n" +msgstr "" + +#, python-format +msgid "could not parse cat-log of %s" +msgstr "" + +#, python-format +msgid "%s is not a local Mercurial repo" +msgstr "" + +#, python-format +msgid "initializing destination %s repository\n" +msgstr "" + +msgid "run hg sink pre-conversion action\n" +msgstr "" + +msgid "run hg sink post-conversion action\n" +msgstr "" + +#, python-format +msgid "pulling from %s into %s\n" +msgstr "" + +msgid "updating tags\n" +msgstr "" + +#, python-format +msgid "%s is not a valid start revision" +msgstr "" + +#, python-format +msgid "ignoring: %s\n" +msgstr "" + +msgid "run hg source pre-conversion action\n" +msgstr "" + +msgid "run hg source post-conversion action\n" +msgstr "" + +#, python-format +msgid "%s does not look like a monotone repo" +msgstr "" + +#, python-format +msgid "copying file in renamed dir from '%s' to '%s'" +msgstr "" + +msgid "reading p4 views\n" +msgstr "" + +msgid "collecting p4 changelists\n" +msgstr "" + +msgid "Subversion python bindings could not be loaded" +msgstr "" + +#, python-format +msgid "Subversion python bindings %d.%d found, 1.4 or later required" +msgstr "" + +msgid "Subversion python bindings are too old, 1.4 or later required" +msgstr "" + +#, python-format +msgid "svn: revision %s is not an integer" +msgstr "" + +#, python-format +msgid "svn: start revision %s is not an integer" +msgstr "" + +#, python-format +msgid "no revision found in module %s" +msgstr "" + +#, python-format +msgid "expected %s to be at %r, but not found" +msgstr "" + +#, python-format +msgid "found %s at %r\n" +msgstr "" + +#, python-format +msgid "ignoring empty branch %s\n" +msgstr "" + +#, python-format +msgid "found branch %s at %d\n" +msgstr "" + +msgid "svn: start revision is not supported with with more than one branch" +msgstr "" + +#, python-format +msgid "svn: no revision found after start revision %d" +msgstr "" + +#, python-format +msgid "no tags found at revision %d\n" +msgstr "" + +#, python-format +msgid "ignoring foreign branch %r\n" +msgstr "" + +#, python-format +msgid "%s not found up to revision %d" +msgstr "" + +#, python-format +msgid "branch renamed from %s to %s at %d\n" +msgstr "" + +#, python-format +msgid "reparent to %s\n" +msgstr "" + +#, python-format +msgid "copied to %s from %s@%s\n" +msgstr "" + +#, python-format +msgid "gone from %s\n" +msgstr "" + +#, python-format +msgid "found parent directory %s\n" +msgstr "" + +#, python-format +msgid "base, entry %s %s\n" +msgstr "" + +msgid "munge-o-matic\n" +msgstr "" + +#, python-format +msgid "info: %s %s %s %s\n" +msgstr "" + +#, python-format +msgid "unknown path in revision %d: %s\n" +msgstr "" + +#, python-format +msgid "mark %s came from %s:%d\n" +msgstr "" + +#, python-format +msgid "parsing revision %d (%d changes)\n" +msgstr "" + +#, python-format +msgid "found parent of branch %s at %d: %s\n" +msgstr "" + +msgid "no copyfrom path, don't know what to do.\n" +msgstr "" + +#, python-format +msgid "fetching revision log for \"%s\" from %d to %d\n" +msgstr "" + +#, python-format +msgid "skipping blacklisted revision %d\n" +msgstr "" + +#, python-format +msgid "revision %d has no entries\n" +msgstr "" + +#, python-format +msgid "svn: branch has no revision %s" +msgstr "" + +#, python-format +msgid "%r is not under %r, ignoring\n" +msgstr "" + +#, python-format +msgid "initializing svn repo %r\n" +msgstr "" + +#, python-format +msgid "initializing svn wc %r\n" +msgstr "" + +msgid "unexpected svn output:\n" +msgstr "" + +msgid "unable to cope with svn output" +msgstr "" + +msgid "XXX TAGS NOT IMPLEMENTED YET\n" +msgstr "" + +msgid "" +"\n" +"The `extdiff' Mercurial extension allows you to use external programs\n" +"to compare revisions, or revision with working dir. The external diff\n" +"programs are called with a configurable set of options and two\n" +"non-option arguments: paths to directories containing snapshots of\n" +"files to compare.\n" +"\n" +"To enable this extension:\n" +"\n" +" [extensions]\n" +" hgext.extdiff =\n" +"\n" +"The `extdiff' extension also allows to configure new diff commands, so\n" +"you do not need to type \"hg extdiff -p kdiff3\" always.\n" +"\n" +" [extdiff]\n" +" # add new command that runs GNU diff(1) in 'context diff' mode\n" +" cdiff = gdiff -Nprc5\n" +" ## or the old way:\n" +" #cmd.cdiff = gdiff\n" +" #opts.cdiff = -Nprc5\n" +"\n" +" # add new command called vdiff, runs kdiff3\n" +" vdiff = kdiff3\n" +"\n" +" # add new command called meld, runs meld (no need to name twice)\n" +" meld =\n" +"\n" +" # add new command called vimdiff, runs gvimdiff with DirDiff plugin\n" +" #(see http://www.vim.org/scripts/script.php?script_id=102)\n" +" # Non english user, be sure to put \"let g:DirDiffDynamicDiffText = 1\" " +"in\n" +" # your .vimrc\n" +" vimdiff = gvim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)'\n" +"\n" +"You can use -I/-X and list of file or directory names like normal\n" +"\"hg diff\" command. The `extdiff' extension makes snapshots of only\n" +"needed files, so running the external diff program will actually be\n" +"pretty fast (at least faster than having to compare the entire tree).\n" +msgstr "" + +msgid "snapshot files as of some revision" +msgstr "" + +#, python-format +msgid "making snapshot of %d files from rev %s\n" +msgstr "" + +msgid "" +"snapshot files from working directory.\n" +" if not using snapshot, -I/-X does not work and recursive diff\n" +" in tools like kdiff3 and meld displays too many files." +msgstr "" + +#, python-format +msgid "making snapshot of %d files from working dir\n" +msgstr "" + +msgid "" +"Do the actuall diff:\n" +"\n" +" - copy to a temp structure if diffing 2 internal revisions\n" +" - copy to a temp structure if diffing working revision with\n" +" another one and more than 1 file is changed\n" +" - just invoke the diff for a single file in the working dir\n" +" " +msgstr "" + +msgid "cannot specify --rev and --change at the same time" +msgstr "--rev und --change können nicht gleichzeitig angegeben werden" + +#, python-format +msgid "running %r in %s\n" +msgstr "" + +#, python-format +msgid "file changed while diffing. Overwriting: %s (src: %s)\n" +msgstr "" + +msgid "cleaning up temp directory\n" +msgstr "" + +msgid "" +"use external program to diff repository (or selected files)\n" +"\n" +" Show differences between revisions for the specified files, using\n" +" an external program. The default program used is diff, with\n" +" default options \"-Npru\".\n" +"\n" +" To select a different program, use the -p option. The program\n" +" will be passed the names of two directories to compare. To pass\n" +" additional options to the program, use the -o option. These will\n" +" be passed before the names of the directories to compare.\n" +"\n" +" When two revision arguments are given, then changes are\n" +" shown between those revisions. If only one revision is\n" +" specified then that revision is compared to the working\n" +" directory, and, when no revisions are specified, the\n" +" working directory files are compared to its parent." +msgstr "" + +msgid "comparison program to run" +msgstr "" + +msgid "pass option to comparison program" +msgstr "" + +msgid "change made by revision" +msgstr "Von dieser Revision erzeugte Änderungen" + +msgid "hg extdiff [OPT]... [FILE]..." +msgstr "" + +msgid "use closure to save diff command to use" +msgstr "" + +#, python-format +msgid "hg %s [OPTION]... [FILE]..." +msgstr "" + +msgid "pulling, updating and merging in one command" +msgstr "Hole, aktualisiere und führe zusammen in einem Befehl" + +msgid "" +"pull changes from a remote repository, merge new changes if needed.\n" +"\n" +" This finds all changes from the repository at the specified path\n" +" or URL and adds them to the local repository.\n" +"\n" +" If the pulled changes add a new branch head, the head is automatically\n" +" merged, and the result of the merge is committed. Otherwise, the\n" +" working directory is updated to include the new changes.\n" +"\n" +" When a merge occurs, the newly pulled changes are assumed to be\n" +" \"authoritative\". The head of the new changes is used as the first\n" +" parent, with local changes as the second. To switch the merge\n" +" order, use --switch-parent.\n" +"\n" +" See 'hg help dates' for a list of formats valid for -d/--date.\n" +" " +msgstr "" +"Holt Änderungen aus einem entfernten Projektarchiv, führt neue Änderungen " +"zusammen wenn nötig.\n" +"\n" +" Dies selektiert alle Änderungen des Projektarchivs am angegebenen Pfad\n" +" oder der URL und fügt sie dem lokalen Projektarchiv hinzu.\n" +"\n" +" Wenn die geholten Änderungen einen neuen Zweigkopf erzeugen, wird " +"dieser\n" +" Kopf automatisch zusammengeführt, und das Resultat der Zusammenführung\n" +" wird eine neue Version. Andernfalls wird das Arbeitsverzeichnis mit den\n" +" geholten Änderungen aktualisiert.\n" +"\n" +" Sollte eine Zusammenführung ausgelöst werden, gelten die neu geholten\n" +" Änderungen als \"führend\"· Der Kopf der neuen Änderungen wird als\n" +" erste Vorgängerversion genutzt, die lokalen Änderungen darauffolgend.\n" +" Um die Reihenfolge der Zusammenführung zu ändern kann --switch-parent\n" +" genutzt werden.\n" +"\n" +" Siehe 'hg help dates' für eine Liste gültiger Datumsformate für -d/--" +"date.\n" +" " + +msgid "" +"working dir not at branch tip (use \"hg update\" to check out branch tip)" +msgstr "" +"Arbeitsverzeichnis ist nicht Spitze (tip) des Zweiges (nutze 'hg update' um\n" +"auf die Zweigspitze zu wechseln)" + +msgid "outstanding uncommitted merge" +msgstr "Ausstehende nicht versionierte Zusammenführung" + +msgid "outstanding uncommitted changes" +msgstr "Ausstehende nicht versionierte Änderungen" + +msgid "working directory is missing some files" +msgstr "Im Arbeitsverzeichnis fehlen Dateien" + +msgid "" +"multiple heads in this branch (use \"hg heads .\" and \"hg merge\" to merge)" +msgstr "" +"Mehrere Kopfversionen in diesem Zweig (Nutze \"hg heads .\" und \"hg merge" +"\"\n" +"um zusammenzuführen)" + +#, python-format +msgid "pulling from %s\n" +msgstr "Hole von %s\n" + +msgid "fetch -r doesn't work for remote repositories yet" +msgstr "fetch -r funktioniert noch nicht auf entfernten Archiven" + +#, python-format +msgid "" +"not merging with %d other new branch heads (use \"hg heads .\" and \"hg merge" +"\" to merge them)\n" +msgstr "" +"Führe %d andere neue Zweigköpfe nicht zusammen (Nutze \"hg heads .\" und " +"\"hg merge\" um sie zusammenzuführen)\n" + +#, python-format +msgid "updating to %d:%s\n" +msgstr "Aktualisiere auf %d:%s\n" + +#, python-format +msgid "merging with %d:%s\n" +msgstr "Führe zusammen mit %d:%s\n" + +#, python-format +msgid "Automated merge with %s" +msgstr "Automatisierte Zusammenführung mit %s" + +#, python-format +msgid "new changeset %d:%s merges remote changes with local\n" +msgstr "" +"Neuer Änderungssatz %d:%s führt entfernte Änderungen mit lokalen zusammen\n" + +msgid "a specific revision you would like to pull" +msgstr "Revision die geholt werden soll" + +msgid "edit commit message" +msgstr "Editiere Versionsmeldung" + +msgid "edit commit message (DEPRECATED)" +msgstr "Editiere Versionsmeldung (VERALTET)" + +msgid "switch parents when merging" +msgstr "Vertauscht Vorgänger bei Zusammenführung" + +msgid "hg fetch [SOURCE]" +msgstr "hg fetch [QUELLE]" + +msgid " returns of the good and bad signatures" +msgstr "" + +msgid "error while verifying signature" +msgstr "" + +msgid "create a new gpg instance" +msgstr "" + +msgid "" +"\n" +" walk over every sigs, yields a couple\n" +" ((node, version, sig), (filename, linenumber))\n" +" " +msgstr "" + +msgid "get the keys who signed a data" +msgstr "" + +#, python-format +msgid "%s Bad signature from \"%s\"\n" +msgstr "" + +#, python-format +msgid "%s Note: Signature has expired (signed by: \"%s\")\n" +msgstr "" + +#, python-format +msgid "%s Note: This key has expired (signed by: \"%s\")\n" +msgstr "" + +msgid "list signed changesets" +msgstr "" + +#, python-format +msgid "%s:%d node does not exist\n" +msgstr "" + +msgid "verify all the signatures there may be for a particular revision" +msgstr "" + +#, python-format +msgid "No valid signature for %s\n" +msgstr "" + +msgid "associate a string to a key (username, comment)" +msgstr "" + +msgid "" +"add a signature for the current or given revision\n" +"\n" +" If no revision is given, the parent of the working directory is used,\n" +" or tip if no revision is checked out.\n" +"\n" +" See 'hg help dates' for a list of formats valid for -d/--date.\n" +" " +msgstr "" + +msgid "uncommitted merge - please provide a specific revision" +msgstr "Nicht versionierte Zusammenführung - bitte gib eine Revision an" + +msgid "Error while signing" +msgstr "" + +msgid "" +"working copy of .hgsigs is changed (please commit .hgsigs manually or use --" +"force)" +msgstr "" + +#, python-format +msgid "Added signature for changeset %s" +msgstr "" + +msgid "map a manifest into some text" +msgstr "" + +msgid "unknown signature version" +msgstr "" + +msgid "make the signature local" +msgstr "" + +msgid "sign even if the sigfile is modified" +msgstr "" + +msgid "do not commit the sigfile after signing" +msgstr "" + +msgid "the key id to sign with" +msgstr "" + +msgid "commit message" +msgstr "" + +msgid "hg sign [OPTION]... [REVISION]..." +msgstr "" + +msgid "hg sigcheck REVISION" +msgstr "" + +msgid "hg sigs" +msgstr "" + +msgid "" +"show revision graphs in terminal windows\n" +"\n" +"This extension adds a --graph option to the incoming, outgoing and log\n" +"commands. When this options is given, an ascii representation of the\n" +"revision graph is also shown.\n" +msgstr "" + +msgid "" +"cset DAG generator yielding (rev, node, [parents]) tuples\n" +"\n" +" This generator function walks through the revision history from " +"revision\n" +" start to revision stop (which must be less than or equal to start).\n" +" " +msgstr "" + +msgid "" +"file cset DAG generator yielding (rev, node, [parents]) tuples\n" +"\n" +" This generator function walks through the revision history of a single\n" +" file from revision start to revision stop (which must be less than or\n" +" equal to start).\n" +" " +msgstr "" + +msgid "" +"grapher for asciigraph on a list of nodes and their parents\n" +"\n" +" nodes must generate tuples (node, parents, char, lines) where\n" +" - parents must generate the parents of node, in sorted order,\n" +" and max length 2,\n" +" - char is the char to print as the node symbol, and\n" +" - lines are the lines to display next to the node.\n" +" " +msgstr "" + +msgid "" +"prints an ASCII graph of the DAG returned by the grapher\n" +"\n" +" grapher is a generator that emits tuples with the following elements:\n" +"\n" +" - Character to use as node's symbol.\n" +" - List of lines to display as the node's text.\n" +" - Column of the current node in the set of ongoing edges.\n" +" - Edges; a list of (col, next_col) indicating the edges between\n" +" the current node and its parents.\n" +" - Number of columns (ongoing edges) in the current revision.\n" +" - The difference between the number of columns (ongoing edges)\n" +" in the next revision and the number of columns (ongoing edges)\n" +" in the current revision. That is: -1 means one column removed;\n" +" 0 means no columns added or removed; 1 means one column added.\n" +" " +msgstr "" + +#, python-format +msgid "--graph option is incompatible with --%s" +msgstr "" + +msgid "" +"show revision history alongside an ASCII revision graph\n" +"\n" +" Print a revision history alongside a revision graph drawn with\n" +" ASCII characters.\n" +"\n" +" Nodes printed as an @ character are parents of the working\n" +" directory.\n" +" " +msgstr "" + +msgid "" +"show the outgoing changesets alongside an ASCII revision graph\n" +"\n" +" Print the outgoing changesets alongside a revision graph drawn with\n" +" ASCII characters.\n" +"\n" +" Nodes printed as an @ character are parents of the working\n" +" directory.\n" +" " +msgstr "" + +#, python-format +msgid "comparing with %s\n" +msgstr "Vergleiche mit %s\n" + +msgid "no changes found\n" +msgstr "Keine Änderungen gefunden\n" + +msgid "" +"show the incoming changesets alongside an ASCII revision graph\n" +"\n" +" Print the incoming changesets alongside a revision graph drawn with\n" +" ASCII characters.\n" +"\n" +" Nodes printed as an @ character are parents of the working\n" +" directory.\n" +" " +msgstr "" + +msgid "wrap the command" +msgstr "" + +msgid "show the revision DAG" +msgstr "" + +msgid "limit number of changes displayed" +msgstr "Begrenzt die Anzahl der angezeigten Änderungen" + +msgid "show patch" +msgstr "Patch anzeigen" + +msgid "show the specified revision or range" +msgstr "Zeigt die angegebene Revision oder Revisionsfolge" + +msgid "hg glog [OPTION]... [FILE]" +msgstr "" + +msgid "" +"CIA notification\n" +"\n" +"This is meant to be run as a changegroup or incoming hook.\n" +"To configure it, set the following options in your hgrc:\n" +"\n" +"[cia]\n" +"# your registered CIA user name\n" +"user = foo\n" +"# the name of the project in CIA\n" +"project = foo\n" +"# the module (subproject) (optional)\n" +"#module = foo\n" +"# Append a diffstat to the log message (optional)\n" +"#diffstat = False\n" +"# Template to use for log messages (optional)\n" +"#template = {desc}\n" +"{baseurl}/rev/{node}-- {diffstat}\n" +"# Style to use (optional)\n" +"#style = foo\n" +"# The URL of the CIA notification service (optional)\n" +"# You can use mailto: URLs to send by email, eg\n" +"# mailto:cia@cia.vc\n" +"# Make sure to set email.from if you do this.\n" +"#url = http://cia.vc/\n" +"# print message instead of sending it (optional)\n" +"#test = False\n" +"\n" +"[hooks]\n" +"# one of these:\n" +"changegroup.cia = python:hgcia.hook\n" +"#incoming.cia = python:hgcia.hook\n" +"\n" +"[web]\n" +"# If you want hyperlinks (optional)\n" +"baseurl = http://server/path/to/repo\n" +msgstr "" + +msgid " A CIA message " +msgstr "" + +msgid " CIA notification class " +msgstr "" + +#, python-format +msgid "hgcia: sending update to %s\n" +msgstr "" + +msgid " send CIA notification " +msgstr "" + +msgid "email.from must be defined when sending by email" +msgstr "" + +msgid "cia: no user specified" +msgstr "" + +msgid "cia: no project specified" +msgstr "" + +msgid "" +"browsing the repository in a graphical way\n" +"\n" +"The hgk extension allows browsing the history of a repository in a\n" +"graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is\n" +"not distributed with Mercurial.)\n" +"\n" +"hgk consists of two parts: a Tcl script that does the displaying and\n" +"querying of information, and an extension to mercurial named hgk.py,\n" +"which provides hooks for hgk to get information. hgk can be found in\n" +"the contrib directory, and hgk.py can be found in the hgext directory.\n" +"\n" +"To load the hgext.py extension, add it to your .hgrc file (you have\n" +"to use your global $HOME/.hgrc file, not one in a repository). You\n" +"can specify an absolute path:\n" +"\n" +" [extensions]\n" +" hgk=/usr/local/lib/hgk.py\n" +"\n" +"Mercurial can also scan the default python library path for a file\n" +"named 'hgk.py' if you set hgk empty:\n" +"\n" +" [extensions]\n" +" hgk=\n" +"\n" +"The hg view command will launch the hgk Tcl script. For this command\n" +"to work, hgk must be in your search path. Alternately, you can\n" +"specify the path to hgk in your .hgrc file:\n" +"\n" +" [hgk]\n" +" path=/location/of/hgk\n" +"\n" +"hgk can make use of the extdiff extension to visualize revisions.\n" +"Assuming you had already configured extdiff vdiff command, just add:\n" +"\n" +" [hgk]\n" +" vdiff=vdiff\n" +"\n" +"Revisions context menu will now display additional entries to fire\n" +"vdiff on hovered and selected revisions." +msgstr "" + +msgid "diff trees from two commits" +msgstr "" + +msgid "output common ancestor information" +msgstr "" + +msgid "cat a specific revision" +msgstr "" + +msgid "cat-file: type or revision not supplied\n" +msgstr "" + +msgid "aborting hg cat-file only understands commits\n" +msgstr "" + +msgid "parse given revisions" +msgstr "" + +msgid "print revisions" +msgstr "" + +msgid "print extension options" +msgstr "" + +msgid "start interactive history viewer" +msgstr "" + +msgid "hg view [-l LIMIT] [REVRANGE]" +msgstr "" + +msgid "generate patch" +msgstr "" + +msgid "recursive" +msgstr "" + +msgid "pretty" +msgstr "" + +msgid "stdin" +msgstr "" + +msgid "detect copies" +msgstr "" + +msgid "search" +msgstr "" + +msgid "hg git-diff-tree [OPTION]... NODE1 NODE2 [FILE]..." +msgstr "" + +msgid "hg debug-cat-file [OPTION]... TYPE FILE" +msgstr "" + +msgid "hg debug-config" +msgstr "" + +msgid "hg debug-merge-base node node" +msgstr "" + +msgid "ignored" +msgstr "" + +msgid "hg debug-rev-parse REV" +msgstr "" + +msgid "header" +msgstr "" + +msgid "topo-order" +msgstr "" + +msgid "parents" +msgstr "" + +msgid "max-count" +msgstr "" + +msgid "hg debug-rev-list [options] revs" +msgstr "" + +msgid "" +"syntax highlighting in hgweb, based on Pygments\n" +"\n" +"It depends on the pygments syntax highlighting library:\n" +"http://pygments.org/\n" +"\n" +"To enable the extension add this to hgrc:\n" +"\n" +"[extensions]\n" +"hgext.highlight =\n" +"\n" +"There is a single configuration option:\n" +"\n" +"[web]\n" +"pygments_style =