50GhH s.KTR~a٣;Scݢdpkr=VqĐ+"($F!Nj}a`AcãdeVu'8V|tPL@
@ aaAA                                                     5ƱDJRc                           te %s, but not in either manifest\n") %
src, fn, util.pathto(cwd, fn)
n = None
            if update:
                if p1 != parentopts, default='relglob')
 p"):
    """rebuild the dirstate as it would look like for the given revision"""
    ctx =                if opts['port']:
                write = ui.status
            else:
                write = ui.   b            rst.append(doc[0])
        else:
            rs[-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]')),
    ", 'parent', '', _('parent to choose when backing out merge')),
 'verbose', None, _('enable additional output')),
    ('', 'conprefix:
                prefix = self.httpd.prefix.strip('/') + '/'
            else:
                prefix[r].node() for r in revs]
            olddata = repo._phasecache.getphaserevs(repo)[:]
 k# compute the approximate number of remaining tests
        tests, size = 0, 2
        while size <= changesets:
            tests, size = tests + 1, cmd(name, table, False)
  """output the latest or given revision of the project manifest

    Print a list of _('\nuse "hg help -c %s" to see help for '
  start = repo.lookup(opts['rev'])
    else:
        start = None  (self.httpd.fqaddr, port, prefix, self.httpd.addr, self.httpd not prompt, assume \'yes\' for any required answers')),
    ('  It is possible to specify an ssh:// URL as the destination.
  non-trivial parents, user, date and time, and a summary for eacide a lambda. python issue4617
            prefix = inst.args[0]
            select = lambda c: c.lstrip('^').st:"))
            rst.append(help.optrst(entry[1], ui.verbose))
 cwd']:
                try:
                    os.chdir(options['cwd'])
                except OSError, inst:
 , sys.stdin)
     cg = repo.getbundle('bundle', heads=heads, common=common)
e server logs accesses to stdout and errors to
    stderr. Use o = repo.findoutgoing(other, force=opts['force'])
 -s/--similarity option to detect renamed files. With a
    paramet.  The formatting rules are as follows:
     v                t += _(' (no revision checked out)')
        ui.write(_('parent: %d: -a/--all (or --base null).
  Hum:
                output.append("%s%s" %
                  ('   [                    return False
            repo.ui.warn("s = get(rev)
                if not df(changes[2][0]):
                    continue
 and _(" (default: %s)") % default
                                         or "")line, linenum, colstart, colend):
            self.line = line
            self.linenum = linenum
            self.colstart = colstart
            self.colend = colend

        ds'):
                format = "%%s%s" % end

 insecure', None,
     _('do not verify server certificate (ignoring web.cacerts config)')),
]

walkopts = [
    ('I', 'include', [],
     _('include namewrite(_(" (specify a commit editor in your .hgrc file)\n"))
 2, numdeltas))
            ui.write('deltas against if i[1]:
                option_lists.append((_("options:\n"), i[1]))
  or found
    return (not found and 1) or 0
             displayer.close()
 repo:
            raise error.RepoError(_("There is no Mercuriapushkey(ui, repopath, namespace, *keyinfo):
    '''access the pushkey key/value protocol

    With two args, list the keys in the given namespace.

    With rt:
        keyfunc = lambda x: (x[1][3], x[0]) # sort by mtime, then by filename
    else:
        keyfunc = None # sort by filenamorget[0])
        r = hg.revert(repo, node, update.has_key, wlock)
        repo.dirstate.update(add[0], 'a')
        repo.dirstate.update(undelete[0], 'n')
        repocertificate encoding")
 fsub):
                    subforget[subpath + '/' + fsub] = (fsub, sub)
        except error.LookupError:
            ui.staf no commit message is specified, the configured editor is started to
 doc = gettext(entry[0].__doc__)
  %s: %s\n" % (m.rel(path), msg))
 t

def log(ui, repo, *pats, **opts):
    """show revision history of entire repository or files

    Print the revision history o               for i in fl:
 rename', '', _('rename a given bookmark'), _('NAME')),
] FILE...')),
  to
    another candidate changeset or announce that it has foun stderr. Use the "-A" and "-E" options to log to files.
 bknown(ui, repopath, *ids, **opts):
    """test whether node ids are known to a repo

    Every ID must be a full-length hex node id s   if copy:
                        skip[copy] = True
ding the changesets
    twice if the incoming is followed by a pull.
 subrepos'))
  -f/--force is specified, branch will not let you set a
    branc   Ddef parents(ui, repo, file_=None, rev=None, branches=None, **opgiven. Unless options described
 """parse and apply a revision specification

    Use --verbose to print the parsed tree before and after aliases
    expansion.
    """
  %s %s %s\n" %
                             (hex(node), hex(p1), hex(p2),
                              hex(cs),       Using the -r/--rev option, revert the given files or directories
    to thbuiltin aliases and '
                            'global options') % (name and "'hg %s %s\n' % (aliases[0], entry[2]))
                 # py3k fix: except vars can't be used outside the scope of the
            # except block, nor can be used insobsstore.create(tr, parsenodeid(precursor), succs,
                                         opturls' for more information.
 edit'):
        editor = cmdutil.commitforceeditor

 [change] += 1
        return counts['+'], counts['-']
   _('FILE')),
    ('', 'ility
    if rev in "good bad reset init".split():
        ui.warn(_("(use of 'hg bisect <cmd>' is deprecated)\n"))
        cmd, rev, within the given named branch')),
 ' (inactive)')
            if ctx.branch() == repo.dirstate.branch():
                lab == (nullrev, nullrev) or
          len(cl.heads(cl.node(parents[0]))) > 1 and
          (parents[1] == nullrev or len(cl.heads(cl.node(parents[1]))) > 1)):
  dest, revs, checkout = hg.parseurl(
  similarity=sim / 100.0)
  considered active if it contains repository heads.
  G as the destination.
    See print a summary of the current state of the repo.

 _('number of lines of context to show'))
]

 , bundlepath, bundletype)
-v help %s" to show more info\n')
                           % scanning for duplicate grafts\n')

        for rev in repo.changelog.findmis"""commit the specified files or all outstanding changes

    Commit changes to the given files into the repository.
An optional identifier after # indicates a particular branch, tag,
    or changeset to pull.
       parameters. To create a bundle containing all changesets, use
    --all . It can be useful to review a merge.
  rb = other.listkeys('bookmarks')
        for b in opts['bookmark']:
            # explicit pud --record-parents on '
                                             'unknown change[node2].parents()[0].node()
 ')),
  C   t
            s = get_times()
            def print_time():
                t = get_times()
                u.warn(_("Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n") %
 ].node()
   ssh://[user@]host[:port]/[path]
      http://[user@]host[:port]   P
        def __hash__(self):
            return hash((self.linenum, self.line))
 abs)

        # rest of the third row
        elif after and not """dump the contents of an data file revision"""
    r = revlog.revcommit')
  /\n') % httpd.addr)

        def run(self):
            self.httpd.serve_forever()

    service = service()

    cmdutil.service(o in changes[1].lower() or
                            k in chand = mdiff.unidiff(a, None, b, None, os.path.basename(fa))
'bundle', heads=heads, common=common,
 rt the given files or directories to their
    contents as of alist branches which have
    been marked closed (see hg commit --close-branch).
  Amess up the stream for the next command
    res1 = repo.debugwireargs(*vals, **args)
    res2 = repo.debugwireargs(*vals, **args)
    ui.w          Ģ     :            if r.closesbranch() and r.branch() == branch:
       |                yield 'n', (r, list(set(p restore = repo.dirstate[abstarget] == 'r'
 nodes=nodes))
            markers.sort(key=lambda x: x._data)
        else:
            markers = obsolete.getmarkers(repo)

        for m in markers:
 a = rev, extra, None
        if cmd == "good":
            good = True
        elif cmd == "bad":
            bad = True
        else:
            reset = True
    elif extra or good + bad + skip + reset as changed for the nextIf a conflict is resolved manually, please note that the changes
    will be overwritten if the merge is retried with resolve. The
    -m/--mark switch should be used to mark the file as resolved.
  + subrepoopts,
    _('[OPTION]... 2 = cmdutil.revpair(repo, opts.get('rev'))
 tags.local'
            tagtype = 'local'

        fm.startitem()
        fm.write('tag', '%s', t, label=label)
        fmt = " " * (30 - encoding.colwidth(t)) + ' %5d:%s'
        fm.condwrite(not ui.quiet, 'rev id', fmt,
                     repo.changelog.rev(n), hnhg, util, revlog, bundlerepo, extensions
  # i18n: column positioning for "hg summary"
 s are the same as
 y changesets within the given named branch (DEPRECATED)'),
 s s   |    If --log is specified, log messages will have a comment appended
    of the form::

      (grafted from = origin of the previous file listed as A (added)
 # don't mutate while iterating, create a copy
    for rev in list(revs):
 _('list the changed files of a revision')),
 
    m       The archive type is automatically detected based on file
    extension (or override using -t/--type).

    Valid types are:
  files)
                n = repo.commit(files, message, user, d                  files = patch.updatedir(ui, repo, files, wlock=wlock)
            n = repo.commit(fil(name)
                i = None
                break
            except    Rdef rollback(ui, repo, **opts):
    """roll back the last transaction (dangerous)
 % m.rel(f))
            errs = 1
 bphases', 'new-commit', 'secret', 'commit')

                editform = (branch, len(bheads)))

    m                ui.note(msg)
        else:
            ui.wd import demandload
  4  e  zfrom i18n import gettext as _
d))

def debugcomplete(ui, cmd='', **opts):
    """returns the com   date = opts.get('date')
                    if date:
                        datrepo[None].parents()[0].branch()
]')),
 no patterns are given to match, this command prints the names
 _('a remote changeset intended to be added'), _('REV')),
    ('B', 'bookmarkatch=util.always,
                                             defau              _('skip check for outstanding uncommitted changes')),
          ('', 'eck the last transaction in this repository
d] [-i] [-m NAME] [-r REV] [NAME]'))
def bookmark(ui, repo, mark=None, rev=None, force=False, delete, to go back to significant
    earlier versions or to mark branch points as releases, etc.

    If n rawcommit [OPTION]... [FILE]...')),
  to mark this branch as closed.
  Arev=None, clean=False, date=None, check=False   
    To have the server choose a free port number to listen on, specify
    a port number of 0; in this case, the server will print the port
    number it uses.
 b = encoding.tolocal(ctx.branch())
 ('commands', _('Commands')),
                         ('extensions', _('Extensions')),
                         ('extel in repo.branchtags():
  Gadd the specified files on the next commit

    Schedule files to be version controlled and added to th; see 'hg help export' for details.
  centralized RCS, this operation is a local operation. See hg push
    for a way to actively distribute your changes.
files(repo, names)
        changes = repo.status(match=m)[:4]
 CMD] [--remotecmd CMD] [DEST]')),
    "decode, encode = encoding.fromlocal, encoding.tolocal
        branches = set(repo[decode(br)].branch() for br in branchrevs)
 "debugcheckstate": (debugcheckstate, [], _('debugcheckstate')),
    "debug  " or misconfigured. Please check your configuration"
                       " file)\n"))
        else:
            ui.write(_(" Internal patcher failure, please report this error"
                       " to http://mercurial.selenic.com/wiki/BugTracker\n"))
_('file not managed: %s\n') % rel)
                break
 [-o] CMD')),
    "debugdate":
        (debugdate,
         [('e', 'extended', None, _('try extended date formats'))],
         _(', label='log.bookmark')
 []

            if 'bookmarks' in repo.listkeys('namespaces'):
                hexremoterev = hex(remoterev)
                bms = [bm for bm, bmr in Transactions are used to encapsulate the effects of all commands
    that create new changesets or mctx = wctx.parents()[-1]
                ms.resolve(f, wctx, mctx)
 'continue', False, _('resume interrupted graft')),
 p p   ?     ('', 'log', None, _('append graft info to log message')),
    1        sim = float(opts.get('similarity') or 0)
    :      def guess_type():httpd = hgweb.server.create_server(parentui, repo)
            excepout.flush()
        sys.stderr.flush()
        fd = os.open(util.nulldev, os.O_RDWR)
        if fd != 0: os.dup2(fd, 0)
        if fd != 1: os.dup2(fd, 1)
        if fd != 2:keep = ui.verbose and ['verbose'] or []
        formatted, pruned =a:
                    break
                node = chunkdata['   Look at the help text for the pull command for important details
    about ssh:// URLs.
one.

    By default, push will refuse to run if it detects the result would
    increase the number of remote heads. This generally indicates the
 s nothing to merge')
            if parent != repo.lookup(repo[None]. nodeid, p1, p2 = patch.extract(ui, file(pf))
   cmd = cmd.split('|')[0].strip('^')
        opts = ', '.join([i[1] for i in vals[1]])
        ui.write('%s: %s\n' % (cmd, opts))
ime"]:
            def get_times():
                t = os.times()
                if t[4] == 0.0: # Windows leaves this as zero, so use time.cloc')],
         'hg cropagate existing changesets into a
    repository. For example, the following commands are transactional,
    and       if (opts['all'] or opts['copies']) and not opts['no_status']:
        ctxn = repo[nullid]
        ctx1 = repo[node1]
        ctx2 = repo[node2]
        added = stat[1]
 ms = mergemod.mergestate(repo)
    ^            copies = []
            getrenamed = templatekw.getrenamedfn(repo, endrev=endrev)
 )if pieces:
            for p, l in zip(zip(*pieces), lines):
                ui.write("%s: %s" % (" ".join(p), l[1]))
   text = help.listexts(_('enabled extensions:'), extensions.enablutil.setremoteconfig(ui, opts)
   8    With --graph the revisions are shown as an ASCII art DAG with the most
    recent change node and repo._bookmarkcurrent:
        bmheads = repo.bookmark   S            ui.write('deltas against other : ' + fmt % pcfm   "^status|st":
        (status,
         [('A', 'all', None, _('show status of all files')),
          ('m', 'mog):
            r = filelog
    if not r:
        r = revlog.rems

    os.unlink(fa)
    os.unlink(fd)
      labels = [ui.label(_('%d modified'), 'status.modified'),
              ui.label(_('%d added'), 'status.adde-i (ignored), -C (copies) or -A is given.  Unless options described
 [rev]

        # If linkrev != rev (i.e. rev not found in rcache) fallback to
        # filectx logic.

        try:
            return repo[rev][fn], node1, node2, match=m, opts=diffopts)
 p()
                else:
                    # launch the edits = set()
                    try:
                        patch"""show changesets not found in destinationand its
    subdirectories.  To search an entire repository, move to the root
    of the repository.
 When the -v/--verbose switch is used, the list of changed  B    If --exact is specified, import will set the working directory to
    the parent of eactx()
            copy, diverge = copies.copies(repo, ctx1, ctx2, ctxn)
            for k, v iif i >= len(slist) or not slist[i].startswith(name):
                        raise util.Abort(_("no match und_('message:\n%s\n') % message)

                wp = repo.workingctx().parents()
 revs.remove(rev)
 lis performed.
 [rev].walk(m):
        if not rev and abs not in repo.dirstate:
  If two revisions are given, the differences between them are
    shown.nodes=nodes))
            markers.sort(key=lambda x: x._data)
        else:
            markers = obsolete.getmarkers(repo)

        for m in markers:
  foo.c
             $ hg status
             ! foobar.c
             ? known(ui, repopath, *ids, **opts):
    """test whether node ids are known to a repo

    Every ID must be a full-length hex node id string. Returwith undesirable results.
  '))],
 striplen = len(abspfx)
                if striplen:
                    stripl   commit_opts['message'] = "Backed out changeset %s" % short(node)
text') % name
                else:
                    msg = _('use "hg -emon', None, _('run server in background')),
          ('', 'daemon-pipefds', '', _('used internally by daemon mode')),
blo, bhi):
                    yield ('+', b[i])
 _('hg debugrawcommit [OPTION]... [FILE]...')),
 in paths:
            if os.path.exists(f):
                break
        else:
            f = paths[0]
            fp = open(f, "w")
            fp.write(
                '# example config available names.
 s = None
    if opts['rev']:
        revs = [repo.lookup(rev) f[]

            if 'bookmarks' in repo.listkeys('namespaces'):
                hexremoterev = hex(remoterev)
                bms = [bm for bm, bmr in  head,
    the other head is merged with by default.  Otherwise, an explicit
 'hide status prefix')),
          ('C', 'copies', None, _('show source of copied files')),
          ('0'If there are outstanding changes in the working directory, import
    will abort unless given the -f/--force flag.
del marks[mark]
        bookmarks.write(repo)
        return

 ui.geteditor()
        util.system("%s \"%s\"" % (editor, f),
                    onerr=util.Abort, errprefix=_("edit failed"),
                    out=ui.fout)
        return

 , or the
    tip of the current branch if none is specified.
 rev]
            n = ctx.extra().get('source')
            if n in ids:
    
    Returns 0 on success.
                    return False
 (m.rel(f)):
                ui.warn(_('not removing %s: file is alreaList the repository's named branches, indicating which ones are
    inactive. If -c/--closed is specified, also list branserver.create_server(ui, app)

            if opts['port'] and not ui.verbose:
 """search for a pattern in specified files and revisions

    Search revisions of files for a regular expression.

    This command behaves differently than Unix grep. on, outheads = discovery.findcommonoutgoing(repo, other,
 ut:
            if second:
                ui.write(" %-*s  %s\n" % (opts_len, first, second))
            else:
                ui.write("%s\n                   rst = f(name)
  + dryrunopts,
         _('[OPTION]... ["""search for a pattern in specified files and revisions

    Search revisions of files for a regular expression.

    This command behaves differently than Unix grep. skipped would not have been filtered out, and if they hadn't been applied
    # already, they'd have been in the graftstate.
    if not (cont or opts.get('force')):
 'resolve.' +
                             {'u': 'unresolved', 'r': 'resolved'}[ms[f]])
 (ids[n], rev, r))
                    revs.remove(ids[n])
            elif ctb = ctx.branch()
            if b != 'default':
                output.appenopts["bundle"])
        except:
            pass
  emon', None, _('run server in background')),
          ('', 'daemon-pipefds', '', _('used internally by daemon mode')),
   _                ui.restoreconfig(backup)
                re_("\naliases: %s\n") % ', '.join(aliases[1:]))

 wlock)
                repo.dirstate.setparents(p1, p2)
 warn(added, _('has been marked for add'))
 isinstance(default, bool):
                lo += " %s" % optlabel

            data.ap           return 1
  ctx.rev())
 a branch of the same name already exists'
                                   ' (use --force to override)'))
 d for
    the next commit and a commit must be performed before any further
    updates to thshort help.

    Given a command name, print help for that command.

    Given an extension name, print help for that extension, and the
 state = repo.dirstate[f]
    r            elif name and not full:
                msg = _('use "hg help %s" to show the ful actions are Warn, Remove (from branch) and Delete (from disk).
parent')),
          ('r', 'rev', [], _('revisions to export')),
 Add all new files and remove all missing files from the repository.
et path contains the last
                # component of the source path or it does not.
                def evalpath(striplen):
                    score = 0
                    for s in srcs:
                        t = os.path.join(dest, a = "1\n2\n3\n4\n"
    b = "1\n2\n3\ninsert\n4\n"
    fa = writetemp(a)
    d = mdiff.unidiff(a, None, b, None, os.path.basename(fa, '%s ', char, label=label)
                fm.write('path', fmt, repo.pathto(f, cwd), label=label)
c:
                    ui.et path contains the last
                # component of the source path or it does not.
                def evalpath(striplen):
                    score = 0
                    for s in srcs:
                        t = os.path.join(dest,    ('t', 'templates', "", 'template map')   T                if dobackup and not opts.get('no_backup') a error = _("Other repository doesn't support revision lookup, so a rev cannot be specified.")
            raise util.Abort(error)
source)
  s": (debugsetparents, [], _('debugsetparents REV1 [REV2]')),
    "debugstate": (debugstate, [], _('debugstate')),
um or branch or tags:
            raise util.Abort(
                _("can't query remote revision number, branch, or tags"))
   As a shortcut, you can also use the revision argument to mark a
    revision as good or bad without checking it out first.
  )gen = changegroup.readbundle(f, bundlepath)
        if all:
            ui.write("format: id, p1, p2, cset,  new = len(repo.changelog.findmissing([ctx.node() for ctx in parents],
('M', 'no-merges', None, _('do not show merges')),
          ('_('committed changeset %d:%s\n') % (rev, hex(node)))
  eShow changesets not found in the specified destination repository orr.node(i)
        pp = r.parents(node)
        ui.write("\t%d -> %d\n" % (r.rev(pp[0]), i))
        if pp[1] != nullid:
            ui.write("\t%d -> %d\n" % (r.rev(pp[1]%%   literal "%" character
    %H   changeset hash (40 bytes of hexadecimal)
    %N   number of patches being generated
    %R char, files in changestates:
        if state in show:
            format = "%s %%s%s" % (char, end)
            if opts['no_status']:
                format = will only show
    ancestors or descendants of the starting revision. --follow-first
    only foptionalrepo = ("identify paths serve showconfig debugancestor debugdag"
  ~  Generate a compressed changegroup file collecting changesets not
    known to be in another repository.
  Gime"]:
            def get_times():
                t = os.times()
                if t[4] == 0.0: # Windows leaves this as zero, so use time.cloc mercurial patch'))
                p1 = repo.lookup(p1)
                p] + remoteopts,
         _('[-f] [-fm.startitem()
            fm.write("path", '%s\n', f)
        fm.end()
 u.updateopts(options["verbose"], options["debug"], options["quiet"],
                         not options["noninteractive"], options["traceback"],
 # otarget: ossep
    def copy(origsrc, abssrc, relsrc, otarget, exact):
        abstarget = util.canonpath(repo.root, cwd, otargeTo read a patch from standard input, use "-" as the patch name. If
    a  -    
    def guess_type():
        exttypes = {
            'tar': ['.tar'],
            'tbz2': ['.tbz2', ' also be used as a shortcut to list
    the changed files of a revision from its first parent.
 y state using one or two parent
    hash identifiers, followed by a "+" if there are uncommitted changes
    in the working directo.rjust(31 - encoding.colwidth(tag))
                rev = ui.latipmost revision matching date')),
          ('r', 'rev', '', _('rprobably with undesirable results.
  unrelated')),
          ('r', 'rev', [],
           _('a changese'phase, use --force\n') % len(rejected))
                ret = 1
 Z" debugdate debuginstall debugfsinfo debugpushkey debugwireargs"
          " debugknown debuggetbundle debugbundle")
 _('name of the hgweb config file (see "hg help hgweb")'),tgt = cur
            if rev:
                tgt = scmutil.revsingle(repo, rev).nodemark
            if inactive and mark == repo._bookmarkcurrent:
                b problems += 1

    # c(the branch will not exist
    in the repository until the next commit). Standard practice
    recommends that primary development take place on the 'default'
    branch.
)[0]
        ui.write("\n%s\n" % ' ')
                ui.write(hex(repl))
            ui.write(' %X ' % m._data[2])
            ui.write('{%s}' % (', '.join('%r: %r' % t for t in
 branch=None):
 lect=None):
        h = {}
        cmds = {}
        for c, e in table.items():
            f = c.split("|", 1)[0]
            if select and not select(f):
                continue
            i   R                 "     size " + basehdr + "   link     p1     p2       nodeid\n")
 """import an ordered set of patches

    Import a list of patches and commit them individually.

    I       The current working directory is updated with all changes made in
    the requested revision since the last common predecessor revision.
 files.append(fn)
                    fctxs[fn] = context.memfilectx(fn, "r%i % ((pats and rel) or abs))
  ([abstarget], wlock)
  > 0, this compares every removed file with every added
    file and records those similar enough as renames. This option
    takes a For efficiency, hardlinks are used for cloning whenever the source
    and destination are on the same filesystem (> >2   9            mode = '%3o' % (ent[1] & 0777 & ~util.umask)
 ^= ^k   >    wctx = repo[None]
    m = scmutil.match(wctx, pats, opts)
 ^ ^       subforget = {}
 ^ ^      for subpath in wctx.substate:
        sub = wctx.sub(subpath)
 ncommands', _('Extension Commands'))):
            if matches[t]:
                rst.append('%s:\n\n' % title)
                rst.extend(minirst.maketable(matches[t], 1). These are the changesets that would be pushed
    if a push was requested.
'%s:%s' % (rev, hexfunc(hn)), 'log.changeset')
                tag = ui.label(tag, label)
   val = opts.get(o, '')
        if val in (None, ''): # should check against default options instead
            cont Files that are clean or ignored or
                        repo.baseui.setconfig('phases', 'new-commit', 'secret',
  4  `   d    r1 = cmdutil.revsingle(repo, rev1).node()
    r2 = cmdutil.revsingle(repo, rev2, 'null').node()
       )        repo.dirstate.setparents(r1, r2)
    o   [    ctx = cmdutil.revsingle(repo, rev, Noneutil.hidepassword(dest))
 str(e))
                    memctx = context.makememctx(repo, (p1.node(), p2.node()),
                                                message,
 num=None, id=None, branch=None, tags=None, bookmarks=None, **opts):
  the "-A" and "-E" options to log to files.
 f, cwd = matchpats(repo, pats, opts)
 ome
    filesystems, such as AFS, implement hardlinking incorrectly, but
    do not report errors.  In these cases, use th   ,def merge(ui, repo, node=None, force=None):
  text/x-patch to be used).  From and Subject headers of email
    message are used as defdoc = (mod.__doc__ or _('No help text available')).splitlines(0)
        ui.write(_('%s extension - %s\n') % (name.split('.')[-1], doc[0]))
        for d in doc[1:]:
            ui.write(d, '\n')
..')),
  [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]')),
if pats:
        status = repo.status(files=fns, match=match)
        modified, added, removed, deleted, unknown = st  ('n', 'newest-first', None, _('show newest record first')),
          ('', 'bund('6', 'ipv6', None, _('use IPv6 in addition to IPv4')),
          ('', 'certificate',   	    hn = hexfunc(n)
 ]func=showfunc, ignorews=ignorews,
                               ignorewsamount=ignorewsamount,
                               ignoreblanklinesline-number', None, _('print matching line numbers')),
          ('r' If the executable
 -c/--continue option does not reapply earlier options, except
      for --force.
 "This is free software; see the source for copying conditions. "
        "There is NO\nwarranty; "
        "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
o = fctx.filelog().renamed(fctx.filenode())
        rel = m.rel(abs)
        if o:
            ui.write(_("%s renam ``default`` and ``default-push`` apply to all inbound (e.g.
    :hg:`incoming`) and outbound (e.g. :hg:`outgoing`, :hg:`email` and
    :hg:`bundle`) operations.
 ctx in repo.set('%ld and merge()', revs):
        ui.warn(_('skipping  pointers to certain commits that move when committing.
    Bookmarks are local. They can be renamed, copied and deleted. It is
    possible to use :hg:`merge NAME` to merge from a gipieces.append(["%*s" % (m, x) for x in l])
  the default push location. These are the changesets that would
"This is free software; see the source for copying conditions. "
        "There is NO\nwarranty; "
        "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
there can only be one source.

    By default, this command copies the contents of files a abort the bisection, and any other
    non-zero exit status means the revision is bad.
  Oe all changesets in the repository')),
          ('t', 'type', ' - encoding.colwidth(t))

        if ui.verbose:
            if  @command('showconfig|debugconfig',
    [('u', 'untrusted', None, _('show untrusted configurati 4  `   d    r1 = cmdutil.revsingle(repo, rev1).node()
    r2 = cmdutil.revsingle(repo, rev2, 'null').node()
       )        repo.dirstate.setparents(r1, r2)
    o   [    ctx = cmdutil.revsingle(repo, rev, Nonesafely clone repositories and checked out files using full
    hardlinks with
  Ks.
    """
    citer, getchange, matchfn = walkchangerevs(ui, repo, pats, opts)
 ]

commitopts = [
    ('m', 'message', '',
     _('use text as commit message'), _('TEXT')),
    ('l', 'logfile', '',
     _('read commit message from file'), _('FILE')),
]

commitopts2  location. These are the changesets that would be pushedctx:
        raise util.Abort(_('repository has no revisions'))
    node = ctx.node()
  }  }>   A        (fd, name) = tempfile.mkstemp(prefix="hg-debuginstall-")
 ('i', 'ignore-case', None, _('ignore case when matching')),
          ('l', 'files-with-matches', None,
           _('print only filename)')
                else:
                    label = 'branches F  G+   d            editform = 'backout'
            e = cmdutil.getcommiteditor(editform=editrealparents(rev):
                    if (ui):
    """output version and copyright information"""
    ui.write(_("Mercurial Distributed SCM (version %s)\n")
             % version.get_version())
    ui.status(_(
        "\nCopyright (C) 2005 If active is specified, only show active branches.
  ;ries to fix the repository status after an interrupted
    operation. It should only be necessary when Mercurial suggests it.
supply a command, it will be used for automatic bisection.
    Its exit status will '%s' already exists "
                               "(use -f to force)") % mark)
 For remote repository, using --bundle avoids downloading the
    changesets twice if the incoming is followe# pat: ossep
    # dest ossep
    # srcs: list of (hgsep, hgsep, ossep, bool)
    # return: function that takes hgsep and returns ossep
    def targetpath F{ F               ui.write('deltas against other : ' + fmt % pcfmt(numother,
 If a list of files is omitted, all changes reported by "hg status"
    will be committed.
  `(already grafted to %s)\n')
                            % (r, rev))
                    revs.remove(r)
   self.roots.append(rev)
 f parent != repo.lookup(repo[None].branch()):
 follow', None,
 # enter the debugger before command execution
        if options['debugger']:
            pdb.set_trace()

  To change the compression method applied,
    use the -t option (by default, bundles are compressed using bz2).
  output = [hexfunc(repo.lookup(rev))]
    elif not rev:
        ctx = repo.close()
 5grevs(revs, [crev]):
        ctx = repo[rev]
        n = ctx.extra().get('source')
        if n in ids:
 aved with a .orig suffix before reverting.
    To disable these backups, use --no-backup.
 'cannot use --exact with --edit'))
 With the --switch-parent option, the diff will be against the second
    parent. It can be useful to review a merge.
                type = m.execf(f) and "*" or m.linkf(f) and "@" or " "
            perm = m.execf(f) and "755" or "644"
            ui.write("%3s %1s " % (perm, type))
 tracked files, as well as the
    integrity of their crosslinks and indices.
    """
       for ctx in repo.set('::. and %ld', revs):
        ui.warn(_('skipping ancestor revision %s\n')   $                wp = repo.parents()
 .remove(rev)
 . Use -f/--follow with a file name to follow history across
 util.commiteditor
        if  that contains a change in match status ("-" for a match that
    becomes a non-match,, clean=False, date=None):
 c, revs = cmdutil.parseurl(
        ui.expandpath(dest or 'default-push', de   4                writefile("af", "r%i\n" % id, "ab")
 g/--git option to generate diffs in the git extended diff
    formaif (dobackup and not opts.get('no_backup') and
                    os.path.lexists(target)):
 )

@command('debugsu", globalopts))

    # list all option lists
    opt_output = []
    for title, options in option_lists:
        opt_outperror.Abort(_('cannot use --exact with -l']:
            a, b, r = prevstates, states, rev
        If you have just made a commit, that commit will be the tip. If
    you have just pulled changes from another repository, the tip of
    that repository becomesopts=patch.diffopts(ui, opts))
     )                rst += "%s\n" % entry[2]
 d merge this
  m         changeset afterwards. This saves y > 0, this compares every removed file with every added
    file and records those similar enough as renames. This option
    takes a s (use "hg help -v" '
                        'to show aliases and global options):\n\n'))

        helplist()
]

commitopts = [
    ('m', 'message', '',
     _('use text as commit message'), _('TEXT')),
    ('l', 'logfile', '',
     _('read commit message from file'), _('FILE')),
]

commitopts2    other = hg.repository(ui, source)
             [('b', 'branch', '', _('merge with head of a specific branch (DEPRECATED)')),
 s. That's because without --force, any revisions we decided to
    # skip would have been filtered out here, so they wouldn't have made their
    # way to the graftstate. With --force, any revisions we would have otherwise
 ific revision up to which you would like to pull')),
    show_changeset(ui, repo, changenode=n)
 The information shown in the changeset header is: author,
    changeset hash, parent(s) and commit comment.
  tag, heads in repo.branchmap().iteritems():
        for h in reversed(heads):
            ctx = repo[h]
            isopen = not ctx.closesbranch()
            if isopen:
                tip = ctx
                break
        else:
            tip =" accesslog errorlog webdir_conf certificate")
  phases.advanceboundary(repo, targetphase, nodes)
 Path names are defined in the [paths] section of /etc/mercurial/hgrc
    and $HOME/.hgrc. If        The tip revision (usually just called the tip) is the changeset
    most recently added to the repository (and therefore the most
    recently changed head).
KeyError:
            r = "    ?:?"
 If one or more REV is given, the "branch heads" will be shown for
    the named branch associated with that revision. The name of the
 ts) > 1:
                side = good and state['bad'] or state['good']
                num = len(set(i.node() for ior URL and adds them to a local repository (the current one unless
    -R is specified). By default, this does not update the copy of the
    project in the working diopts['message'] = "Backed out changeset %s" % short(node)
            e = cmdutil.miss = 0
                for k in .. container:: verbose

      Examples:

      - commit all e).replace('\n', '\\n')
        sectname = section + '.' + name
        if values:
            for v in values:
                if v =   -                bookmarks.unsetcurrent(repo)
 repo.remove(names, True, wlock=wlock)
    return errs
 nodeid or not p1:
                    raise util.Abort(_('not aWith -s/--similarity, hg will attempt to discover renames and
    copies in the patch in the same way as 'addremove'.
 Print files under Mercurial control in the working directory whose
    names match the given patterns.
o subsequent revisions (including subsequent tags) will be
    present in the cloned repository. This option implies --pull, even
    on local reuser', '', _('record user as commiter')),
          ('if revs:
        revs = [repo.lookup(rev) for rev in revs]
        The tip revision (usually just called the tip) is the changeset
    most recently added to the repository (and therefore the most
    recently changed head).
will perform an extensive check of the repository's
    integrity, validating the hashes and checksums of each entry in
    the changelog, manifes"),
                                 hint=_("run 'hg heads' to file can then be transferred using conventional means and
    applied to another repository with the unbundle or pull command.The following table details the behavior of remove for different
    file states (columns) and option combinations (rows). The file
    states are Added               message = ctx.description()
            if opts.get('log'):
                message += '\n(grafted from %s)' % ctx.hex()
            node = repo.commit(text=message, user=user,
 0 (disabled) and 100 (files must be
    identical) as its parameter. Detecting renamed files this way can
    be expensive.
 saves you from doing the merge by
    hand.  The result of this merge is not committed, t repository to a different one. If the destination is
    local this is identical to a pull in that directory from the
    current one.
 if ui.quiet:
            ui.write("%s\n" % t)
            conti1s indicating unknown/known.
 D E              ui.write('    where prev = p1  : ' + fmt2 % pcfmt(nump1prev,
 , opts, node=node,
 It will also
    restore the dirstate at the time of the last transaction, losing
    any dirstate "grep":
        (grep,
         [('0', 'print0', None, _('end fields with NUL')),
          ('', 'all', None, _('print all revisions that match')),
          ('f', 'follow', None,
 just one revision"))

    if not rev:
        rev = node

    if st)
                p = None
        else:
            ui.writedoc = _('alias for: hg %s\n\n%s') % (entry[0].definition, doc)
 )

def debugindex(ui, file_):
  SOURCE [DEST]')),
    "^commit|ci":
        (commit,
         [('A', 'addremove', None,
           _('mark new/missing files as added/removed before committing')),
 t)

            # multiple bookmarks for a single parent separated by '/'
            bm = '/'.join(ctx.bookmarks())
            if bm:
                output.append(bm)
        else:
            if branch:
                outputopts['parent']:
            raise util.Abort(_('cannot back out a merge changeset without '
 , 'type', 'bzip2', _('bundle compression type to use'), _('TYPE')),
    7                e = cmdutil.getcommiteditor(edit=True)
  and '
                        'global options') % (name and " " + name or "")
            else:
                msg = _('use "hg -v he   /                    repo.undelete([abstarget])
                message = ctx.description()
            if opts.get('log'):
                message += '\n(grafted from %s)' % ctx.hex()
            node = repo.commit(text=message, user=user,
    You can import a patch straight from a mail message. Even patches
 l:
                    m = max(map(len, l))
 = modheads:
            ui.status(_("(run 'hg heads' to see heads, 'hg merge' to merge)\n"))
        elif currentbrelif ui.verbose:
            ui.status(_('list of commands:\n\n'))
        else:
            ui.status(_            [('b', 'branches', None, _('show branches (DEPRECA       opmap = [['user', lambda x: ui.shortuser(x.user())],
             ['number', lambda x: str(x.rev())],
             ['changeset', lambda x: short(x.node())],
             ['date'ids[n])
        elif ctx.hex() in ids:
            r = ids[ctx.hex()]
            ui.warn(_('skipping already grafted revit')
                repo.baseui.setconfig('phases', 'new-commit %s" to show the full help text\n')
 ctx = scmutil.revsingle(repo, rev)
 Repository "heads" are changesets that don't have child
    changesets. They are where development generally takes place and
    are the usual targets for update and merge operations.
fm = ui.formatter('status', opts)
    format = '%s %s' + end
    if opts.get('no_status'):
        format = '%.0s%s' + end

 [:pass]@]host[:port]/[path]
      https://[user[:pass]@]host[:pcleanup = None
            if not other.local():
                # use the created uncompressed bundlerepo
                other = bundlerepo.bundlerepository(ui, repo.root, fname)

        o0)))
                timestr = 'unset'
                timestr = (timestr[:locale_len] +
                           ' ' * (locale_len - len(timestr)))
            else:
                timestr = time.strftime("%Y-%m-%d %H:%M:%S ",
  mfentry:
                        handle(revert, False)
 Use bisect --extend to continue the '
                           'bisection from\nthe common ancestor, %s.\n')
                         % s' +
                                           ' or loses information'))
    *                    repo.add([abstarget])
    L                    raise util.Abort(hg command to run on the remote side'))],
 file in which it finds a match. To get it to print every revision
   name == 'shortlist':
                    msg = _('use "hg help" for the M = modified
      A = added
      R = removed
      C = clean
      ! = missing (deleted by non-hg command, but still tracked)
      ? = not tracked
      I = ignored
        = origin of the previous file listed as A (log',
    [('c', 'changelog', False, _('open changelog')),
     ('m', 'man   (            if  (but tracked) files')),
          ('c', 'clean', None, _('show only files without changes')),
          ('u', 'unknown', None, _('show on()):
                msg = _('%s - use "hg update" instead') % msg
            raise util.Abort(msg)
('0', 'print0', None, _('end filenames with NUL, for use with xargs')stat = repo.status(node1, node2, cmdutil.match(repo, pats, opts),
  'added', None, _('show only added files')),
          ('r', 'removed', None, _('show only removed files')),
          ('d', 'dret = hg.update(repo, rev)
 debugindexdot debugdate debuginstall debugfsinfo")
'--parent'))
        p = repo.lookup(opts['parent'])
        if p not in (p1, p2):
            raise util.Abort(_('%s is not a parent of %s' %
                               (shoull', None, _('use pull protocol to copy metadata')),
          ('', 'uncompressed', None,
           _('use uncompressed transfer (fast over LAN)')),
 (abs)
                if origsrc is not None:
 'only one config item permitted'))
    for section, name, value in ui.walkconfig(untru Use the -s option to detect renamed files.  With a parameter > 0,
    /   E    those similar enough a 'hg update' to switch to an existing branch. Use
    'hg commit --close-branch' to mark this branch as cloNOTE: diff may generate unexpected results for merges, as it will
    default to comparing against the working directory's first parent
    changeset hadows an existing branch'))],
                _('hg branch [NAME]')),
 ; use -r/--rev to specify a different revision.
   = states, prevstates, prev.get(fn, -1)
        for change, l in difflinestates(a, b):
  r(templater.templatepath("map-cmdline.default"))
    except Exception, inst:
        ui.write(" %s\n" % ins _('a specific branch you would like to pull'), _('BRANCH')),
  When
    the requested revision is on a different branch, the working dir'no files to copy'))

    for targetpath, srcs in copylist:
        for origsrc, abssrc, relsrc, exact in srcs:
            copy(origsrc, abssrc, relsrc, targetpath(abssrc), exact)

    if errors:
       Its exit status will be used to mark revisions as good or bad:
    status 0 means good, 125 means to skip the revision, 127
    (command not found) wilpatch.diff(repo, node1, node2, match=m, opts=diffopts)
  and destination are on the same filesystem (note this applies only
    to the repository data, not to the checked out filclist = cmdutil.findpossible(ui, cmd, table).keys()
    clist.sort()
    ui.write("%s\n" % "\n".join(clist))
  pointers to certain commits that move when committing.
    Bookmarks are local. They can be renamed, copied and deleted. It is
    possible to use :hg:`merge NAME` to merge from a given bookmark, and
    :hg:`update NAME`   5                rst.append(" :%s: %s\n" % (t, desc))
 e, table)
        except cmdutil.AmbiguousCommand, inst:
            select = lambda c: c.lstrip('^').startswith(inst.args[0])
            helplist(_('list of c states are Added [A], Clean [C], Modified [M] and Missing [!]
    (as reported by hg status). The actions are Warn, Remove (from
    branch) and Delete (from disk).
 (changenode)))
  -To specify the type of archive to create, use "-t".  Valid
   local"
                else:
                    tagtype = ""
            ui.write("%s%s %s%s\n" % (t, spaces, r, tagtymarks:
                ui.write(' *' + current, label='bookmarks.current')
    parents = [p for p in repo.changelog.parents(n) if p != nullid]
        if in items]))
    for abs in items:
        line = fmt % (abs, m.rel(abs), m.exact(abs) and 'exact' or '')
 heads:
            raise util.Abort(_('working dir not at a head rev - '
                               'use "hg update" or merge with an explicit rev'))
        node = parent == head numprev))
            ui.write('    other            : ' + fmt2 % pcfimported patch was generated by hg export, user and description
   logfile = opts['logfile']

    if message and logfile:
        raise util.Abort(_('options --message and --logfile are mutually '
                           'exclusive'))
    if not message and logfile:
        try:
 -1

        # analyze revs for earlier grafts
        ids = {}
        for ctx in repo.set("%ld", revs):
            idn a new directory.

    If no destination directory name is specified, it defaults to the
    basename of the source.

    The location of the source is added to the new repository's
    .hg/hgrc file, as the defaufmt = '%%s  %%-%ds  %%-%ds  %%s' % (
        max([len(abs) for (src, abs, rel, exact) in items]),
        m annotate [-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FILE...')),
 they had in the parent of the working directory.
    This restores the contents of the affected files to an unmodified
    state and unschedules adds, removes, copies, a                        return True
 ('deltas against p1    : ' + fmt % pcfmt(nump1, numdeltas))
            ui.write( If invoked with --after, the
 7 compare the merge changeset against its
    first parent only.Applying bundles preserves all changeset contents including
    permissions, copy/rename information, and revision history.
  R  http://[user@]host[:port]/[path]
      https://[user@]host[:port]/[path]
      ssh://[user@]host[:portNOTE: diff may generate unexpected results for merges, as it will
    default to comparing against the working directory's first parent
    changeset setremoteconfig(ui, opts)
 = \
            patch.extract(ui, hunk)

        if not tmpname:
            return (None, None)
        msg = _('applied to working directory')

        try:
            cmdline_messagees)
                finally:
                    files = patch.f branch in br[x]:
                found.append(x)
        if led, the new clone will contain only a repository
    (.hg) and no working copy (the working copy parent is the null revision).
["optimize"]:
            weight, optimizedtree = revset.optimize(newtree, True)
            ui.note("* optimized:\n", revset.prettyformat(optimizedtree), "\n")
 v           overrides = [cmd for cmd in cmdtable if cmd in table]
        if overrides:
            ui.hash identifiers, followed by a "+" if there are
    uncommitted changes in the working directory, a list of tags for
    this revision and a branch name for non-default branches.
 e [-e] DATE [RANGE]')),
    "debugdata": (debugdata, [], _('This is the fastest way to clone, but it is not always safe. The
    if rev in ancestors:
            ui.warn(_('skipping ancestor revisioNew files are ignored if they match any of the patterns in .hgignore. As
    with add, these changes take effect at the next commit.
 0)))
                timestr = 'unset'
                timestr = (timestr[:locale_len] +
                           ' ' * (locale_len - len(timestr)))
            else:
                timestr = time.strftime("%Y-%m-%d %H:%M:%S ",
 on, _anyinc, _heads = discovery.findcommonincoming(repo, other)
 get = util.cachefunc(lambda r: repo[r].changeset())
 [p1]
                    p2 = repo[p2]
                    # Without any options, consider p2 only if the
                    # patch is being applied on top of the recorded
                    # first parent.
                    if d(ctx.branch())

            if tags:
                output.extend(ctx.tags())

            if bookmarks:
                output.extend(ctx.bookmarks())
       This command helps to find changesets which introduce problems. To
    use, mark the earliest changeset you know exhibits the problem as
    ba do not report errors. In these cases, use the --pull option to
 if patchproblems:
        if ui.config('ui', 'patch'):
            ui.write(_(" (Current patch tool may be incompatible with patch,"
                       " or misconfigured. Please check yourmf.has_key):
            names[abs] = (rel, exact)
            if src != 'b':
                files.append(abs)
                       fuzz = patch.patch(tmpname, ui, strip=strip, cwd=repo.root,
                                       files=fways):
        if exact:
       2                ui.status(_('adding %s\n') % rel)
  B  w   .            ui.status(_('adding %s\n') % rel)
  _     Foldcommitphase,
                                      'commit')
 ('exec: %s\n' % (util.checkexec(path) and 'yes' or 'no'))
    ui.write('symlink: %s\n' % (util.checklink(path) and 'yes' or 'no'))
    ui.write('case-sensitive: %s\n' % (util.chelo = '--' + longopt
            if default:
                desc += _(" (default: %s)") % default

            if isinstance(default, list):
                lo += " %s [+]" % optlabel
                multioccur = True
            elif (defmodheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname)
  should be used with care. There is only one level of
    rollback, and there is no way tnullid]
            if opts['no_merges'] and len(parents) == 2:
                continue
 ctx:
        raise util.Abort(_('repository has no revisions'))
    node = ctx.node()
  }  }>   A        (fd, name) = tempfile.mkstemp(prefix="hg-debuginstall-")
 he contents of a data file revision"""
    r = revlog.revlog(util.opener(os.getcwd(),up to which you would like to pull')),
  detects as binary. With -a, annotate will annotate the file
    anyway, although the results will probably be neither useful
    nor desirable.
  t branch name even if it shadows an existing branch'))],
 and you have to make sure your editor breaks hardlinks
    (Emacs and most Li  &    else:
        endrev = len(repo)
    rcache = {}
    ncache = {}
    def getrenamed(fn, rev):
        '''looks up all renames for a file (up to endrev) the first
        time the file is given. It indexes on the changerev and only
        parses the manifest if linkrev != changerev.
        Returns rename info for fn at changerev dest = ui.expandpath(dest or 'default-push', dest or 'default')
    dest, branches = hg.parseurl(dest, opnot ui.quiet:
                    ui.warn(_("%s has not been committed yet, so no copy "
 lect=None):
        h = {}
        cmds = {}
        for c, e in table.items():
            f = c.split("|", 1)[0]
            if select and not select(f):
                continue
            if name == "shortlist                   if incrementing or not opts['all'] or fstate[fn]:
                    pos, neg = display(fn, revs('%ld and merge()', revs):
        ui.warn(_('skipping ungraftable merge revisio Use null as the changeset to remove the working directory (like
    :hg:`clone -U`).

    If you want to update just one file to an older changesutil.system(command,
                                     environ={'HG_NODE': hex(node)},
                                     out=ui.fout)
  ]X  ]   9                ctx = scmutil.revsing 'template', '', _('display with template'))],
 , changesets, good = hbisect.bisect(repo.changelog, state)
    if changesets == 0:
 , it is restored. If the executable mode
    of a file was changed, it is reset.
 Initialize a new repository in the given directory. If the given
  cwd = repo.getcwd()
    if not pats and cwd:
        opts['include'] = [os.path.join(cwd, i) for i in opts['include']]
        opts['exclude'] = [os.path.join(cwd, x) for x in opts['exclude']]
           if len(nbhs) == 1:
            if len(bheads) > 1:
                raise util.Abort(_("heads are bookmarke       Tags are used to name particular revisions of the repository and are
    very useful to compare different revisions, to go back to significant
    earlier veu, path=path)
                    u = repo.ui
  rev.'''
        if fn not in rcache:
            rcache[fn] = {}
            ncache[fn] = {}
            fl = repo.file(fn)
            for i in fl:
                nod- "
                                   "please merge with an ext this command prints revision number and changeset id,
    tags, non-trivial parents, user, date and time, and a summary for
    each commit. When the -v/--verbose switch is used, the list of
    changed(format % repo.pathto(f, cwd))
                if f in copy:
 fctx = ctx.filectx(abs)
        m = fctx.filelog().renamed(fctx.filenode())
        if m:
            ui.write(_("%s renamed from %s:%s\n") % (rel, m[0], hex(m[1])))
   },  }E           if not names:
  }  }           elif len(names) > 1:
            raise util.Abort(_("only one new bookmark name allowed"))
        mark = checkformat(names[0])
  ~        elif names:
        newact = None
        for mark in names:
            mark = checkformat(mark)
            if newact is None:
 ='', **opts):
    """returns the completion list associated with the given command"""

    if opts.get('options'):
        options = []
        o  source, revs, checkout = hg.parseurl(ui.expandpath(source), obehaves differently than Unix grep.  It only accepts
    Python/Perl regexps.  It searches repository histolog.parents(n) if p != nullid]
        if opts['no_merges'] and len(parents)p.description().splitlines()[0].strip() + '\n')
 ('B', 'bookmarks', None, _('show bookmarks'))],
    '                ui.write("%s\n" % tag)
 fm = ui.formatter('status', opts)
    format = '%s %s' + end
    if opts.get('no_status'):
        format = '%.0s%s' + end

 The result of this merge is not committed, as for a normal
  5  6   A    inactive. If active is specified, only show active branches.
 err.write(_("abort: %s\n") % inst)
        return -1
's working directory to the specified revision,
    or the tip of the current branch if none is specified.
  in patches:
            pf = os.path.join(d, p)

            if pf == '-':
                ui.status(_("applying patch from stdin\n"))
                data = patch.extract(ui, sys.stdin)
  = copy = repo.dirstate.copies().copy()
        else:
            ctxn = repo.changectx(nullid)
            ctx1 = repo.changectx(node1)
            ctx2 = repo.changectx(node2)
            if node2 is None:
                ctx2 = rep if the resulting changeset has a different ID than the one
    recorded in the patch. This may happen due to character set
    problems or other deficiencies in the text patch format.

 # Cannot use x.remove(y) on smart set, this has to be a list.
        # XXX make this lazy in the future
        revs = list(revs)
        # don't mutate while iterating, create a copy
        for rev in list(revs):
            if rev in ancess\n")
                         % (short(node), branch))
        else:
            raise util.Abort(_("').

    If you want to update just one file to an older changeset, use 'hg revert'.
   =                    ui.write("%s %s\n" % (ms[f].upper(), f) _('NUM')),
    ('', 'stat', None, _('output diffstat-style summary of changes')),
]

similarityopts = [
    ('s', 'similarity', '',
     _('guess renamed files by similarity (0<=s<=100)'), _('SIMILARI= \
            patch.extract(ui, hunk)

        if not tmpname:
            return (None, None)
        msg = _('applied to working directory')

        try:
            cmdline_messagebundle compression type to use'), _('TYPE')),
         ][striplen:])
                        if os.path.exists(t):
                            score += 1
                    return score

 lo = '--' + longopt
            if default:
                desc += _(" (default: %s)") % default

            if isinstance(default, list):
                lo += " %s [+]" % optlabel
                multioccur = True
            elif (def   2                                   editor=editor,
     ?                                             head='(?:.*/|)'):
 '  %s%s' % (repo.pathto(copy[f], cwd), end))
 ulabel)
                ui.write("%s %s%s\n" % (encodedtag, rev, notice))
  Tk, v in copies.copies(repo, ctx1, ctx2, ctxn)[0].items():
            if k in added:
                copy[k] = v
            elif v in added:
 def help_(ui, name=None, with_version=False, unknowncmd=False, full=True, **opts):
     ,    textwidth = min(ui.termwidth(), 80) - 2
 revs = [repo.lookup(rev) for rev in revs]
 --rev and --change at the same time')
        raise util.Abort(msg)
    elif change:
        node2 = repo.lookup(change)
        node1 = repo[node2].parents()[0].node()
    els  *            rejected = [n for n in nodes
                        if newdata[repo[n].rev()] < targetphase]
            if rejected:
                ui.warn(_('cannot move %i changesets to a more permissive '
 . However, the operation is not
    atomic (making sure REPO is not modified during the operation ('F', 'files', '', _('file list'))
          ] + commitopts + commitopts2,
         _('hg debugrawcommit [OPTION]... [FILE].'] and not opts['daemon_pipefds']:
        rfd, wfd = os.pipe()
        args = sys.argv[:]
        args.append('--daemon-pipefds=%d,%d' % (rfd, wfd))
        pid = os.spawnvp(os.P_NOWAIT | getattr(os, 'P_DETACH', 0),
    before that, see hg revert.
  one of -n/-c is required for -l'))

    funcmap = [func for op, func in opmap if opts.get(op)]
    if linenumber:
        lastfunc = funcmap[-1]
        funcmap[-1] = lambda x: "%s:%s" % (lastfunc) == 1:
            node = found[0]
            repo.ui.warn(_(      activebranches = [repo[n].branch() for n in repo.heads()]
    def testactive(tag, node):
        realhead = tag in activebranches
        open = node in repo.branch('p', 'patch', None, _('show patch')),
          ('   +                rst.append('\n%s\n' % msg)
  u.warn(_("abort: %s\n") % inst.strerror)
 list(files)
                if opts.get('no_commit'):
                    if message:
                        msgs.append(message)
  for more information.
 m1 = repo.changectx(parent1).manifest()
    m2 = repo.changectx(parent2).manifest()
         Show new changesets found in the specified path/URL or the default
    pull location. These are the changesets tha'not removing %s: file %s\n') % (rel, reason))
        elif ui.verbose or not exact:
            ui.statustions:
                rst += "\n"
                rst += optrst(options)
                rst += '\n'

        return '\n' + minirst.format(rst, width)

    def addglobalopts(optlist, aliases):
        if ui.quiet:
 Show definition of symbolic path name NAME. If no name is given, show
    definition of available names.
v in sorted(ctx.substate.items()):
       3    ctx = cmdutil.revsingle(repo, opts.get('rev'))
    Use -C/--clean to reset the working directory branch to that of
    the parent of the working directory, negating a previous branch
    change.
 Every ID must be a full-length hex node id string. Returns a list of 0s and 1s
    indicating unknown/known.
 3] == -1:
                # Pad or slice to locale representation
                locale_len = len(time.strftime("%Y-%m-%d %H:%M:%S ",
                                               time.localtimif before is not None:
                ui.write(sep + before)
                ui.write(match, label='grep.match')
                ui.write(after)
            ui.write(eol)
   In some cases, you can clone repositories and checked out files
    using full hardlinks with
  J   to "roll back" some or all of an earlier change. See 'hg help
    dates' for a list of formats "global options:"), globalopts))
            if name == 'shortlist':
                optlist--rev and --change at the same time')
        raise util.Abort(msg)
    elif change:
        node2 = repo.lookup(change)
        node1 = repo[node2].parents()[0].node()
    elsull', None, _('use pull protocol to copy metadata')),
          ('', 'uncompressed', None,
           _('use uncompressed transfer (fast over LAN)')),
 LookupError:
            r = "    ?:%s" % hn
 `have all the nodes specified by one or more --base
    parameters.  To create a bundle containing all changesets, use
    --all (or --base null).
   msg = _('use "hg help %s" to show the full help text') % name
 p2:
                        # If you got here, you either use -mardu = map(dict.fromkeys, repo.status(files=files, match=matchfn))[:5]
    modified, added, removed, deletck)
                    raise util.Abort(_('patch is damaged or If -r/--rev is used, the named revision and all its ancestors will
    be pushed to the remote repository.
-parent', None, _('diff against the second parent'))
          ] + diffopts,
 table: continue
                # file has changed in dirstate
                if mfentry:
                    handle(hitlist, backuphit)
                elif misslist is not None:
 d in the working directory.  If invoked with --after, the
                if entry[0].definition.startswith('!'):  # shell alias
                doc = _('shell alias for::\n\n    %s') % entry[0].definition[1:]
            else:
                doc = _('alias for: hg %st this command prints revision number and changeset id,
    tags, non-trivial parents, user, date and time, and a summary for
    each commit. When the -v/--verbose switch is used, the list of
    changed   H                if "(DEPRECATED)" in o[3]:
                    continue
 =None,
               noupdate=None):
  /S  /S      def extendbisectrange(nodes, good):
        # bisect is incomplete when it ends on a merge node and
        # one of the parent was not checked.
        parents = repo[nodes[0]].parents()
        if len(parents) > 1:
            si   and $HOME/.hgrc. If run inside a repository, .hg/hgrc is used, too.
 _lookup(repo, node, branch)
    else:
 nodates', None, _("don't include dates in diff headers")),
          ('', 'switch-parent', None, _('diff against the str(p.rev()) for p in parents]),
                                    (changed) anm = scmutil.match(repo[None], pats, opts)
 _ (bisect,
         [('r', 'reset', False, _('reset bisect state')),
          ('g', 'good', False, _('mark changeset good')),
          ('b', 'bad', False, _('mark changeset bad')),
          ('s', 'skip', False, _('skip testing changeset')),
          (', opts['rev'])
 elif repo.dirstate.state(abs) == '?':
 To facilitate version control, distribution, and merging of tags,
    they are stored as a file named ".hgtags" which is managed
    similarly to other project files and can be hand-edited if
    necessary.    marks[mark] = tgt
        if not inactive and cur == marks[newact] and not rev:
            bookmarks.setcurrent(repo, newact)
        elif cur != tgt and newact == repo._bookmarkcurrent:
 feed the output of this command into the "xargs"
    command, use the -0 option to both this command and "xargs". This
    will avoid the problem of "xargs" treating single filenames that
    contain whitespace as multiple filenames.
When two revision arguments are given, then changes are shown
    between those revisions. If only one revision is specified then
    that revision is compared to the working directory, and, when nostate and unschedules adds, removes, copies, and renames. If the
    working directory has two parents, you must explicitly specify the
    revision to revert to.
  Please see 'hg help urls' for important details about ssh:// URLs.
  Z"debugdata": (debugdata, [], _('debugdata FILE REV')),
    "debugindex": (debugindex, [], _('debugindex FILE')),
    "debugindexdot": (debugindexdot, [], _('debugindex   branch = repo.changectx(None).branch()
        bheads = repo.branchheads(branch)
        if len(bheads) > 2:
 When two revision arguments are given, then changes are shown
    between those revisions. If only one revision is specified then
    that revision is compared to the working directory, and, when nolast update or merge command. This will use the local file
    revision preserved at the last update or merge to cleanly retry
    the file merge attempt. With no file or options specifie  &    showcopy = {}
    if ((all or opts.get('copies')) and not opts.get('no_status')):
        if opts.get('rev') == []:
            # fast path, more correct with merge parents
if renamed:
                    ncache[fn][node] = renamed
                if lr >= endrev:
                    break
        if rev in rcache[fn]:
    from patch override values from message headers and body. Values
 rst.append('\n')
 _('only follow the first parent of merge changesets')),
 dstate(ui, repo, rev=""):
  f  f       if rev == "":
  f  g\   9    ctx = repo.changectx(rev)
    files = ctx.manifest()
  h~  i   X    m1 = repo.changectx(parent1).man   J                    ui.write('  %s%s' % (repo.pathto(copy[fUse hg incoming if you want to see what would have been added by a
    pull at the time you issued this command. If you then decide to
    added those changes to the repository, you should use pull -r X
    where X is the last changeset listed by hg incoming.
  += len(os.sep)
                if os.path.isdir(os.path.join(dest, os.path.split(abspfx)[1])):
                    score = evalpath(striplen)
                    striplen1 = len(os.path.split(abspfx)[0])
                    if striplen1:
 rindex = r.index

        def chainbaseandlen(rev):
            clen = 0
            base = rindex[rev][3]
            while base != rev:
                clen += 1
                rev = base
                base = rindex[rev][3]
            return base, clen
k, v in copies.copies(repo, ctx1, ctx2, ctxn)[0].items():
            if k in added:
                copy[k] = v
            elif v in added:
 Print the revision history of the specified files or the entire
    project.

    File history is shown without following rename or copy history of
    files., 125
    means to skip the revision, 127 (command not found) will abort the
    bisection, and any other non-zero exit status means the revision
    is bad.
  O  O         - see the changeset currently being bisected (, annotate will avoid processing files it
    detects as binary. With -a, annotate will generate an annotation
    anyway, probably with undesirable results.
  M    This only removes files from the current branch, not from the
    entire project history. -A/--after can be used to remove only
    fis that match are shown.  Files that are clean or ignored or
 # check for ancestors of dest branch
    crev = repo['.'].rev()
    ancestors = repo.changelog.ancestors([crev], inclusive=True)
    # Cannot use x.remove(y)               if entry[0].definition.startswith('!'):  # shell alias
                doc = _('shell alias for::\n\n    %s') % entry[0].definition[1:]
            else:
                doc = _('alias for: hg %sis lists both regular and local tags. When the -v/--verbose switch
    is used, a third column "local" is printed for local tags.
 ] + walkopts + commitopts + commitopts2,
  ui.quiet:
                ui.write("%s\n" %  (bisect,
         [('r', 'reset', False, _('reset bisect state')),
          ('g', 'good', False, _('mark changeset good')),
          ('b', 'bad', False, _('mark changeset bad')),
          ('s', 'skip', False, _('skip testing changeset')),
          (' or 'default')

                files = set()
                patch.patch(uand will abort if the
    resulting changeset has a different ID than the one recorded in
    the patch. This may happen due to character set problems or other
    deficiencies in the text pa[1]:
                option_lists.append((_("options:\n"), entry[1]))
                    msg = _('phase changed for %i changesets\n') % changes
                if ret:
                    ui.status(msg)
                else:
                    ui.note(msg)
 rev1, rev2=None):
    """manually set the parents of the current working directory

    This is useful for writing repository conversion tools, but should
    be used with care.

    Returns 0 on success.
    """

    r1 =    G                    r   y        for t in cmdtable:
            if t in table:
                ui.warn(_("module %s overrides %s\n") % (name, t))
        +import demandimport; demandimport.enable()
  +  # check for ancestors of dest branch
    crev = repo['.'].rev()
    ancestors = repo.changelog.ancestors([crev], inclusive=True)
    # Cannot use x.remove(y)%s: "
                                       "unsupported file type!") % rf)
                elif    K                                   editor=cmdutil.getcommit_("Mercurial Distributed SCM\n"))
        ui.status('\n')

        # list of commands
        if name == "shortlist":
            ui.status(_('basic commands (use "hg help" '
                        'for the full list or option "-v" for details):\n\n'))
 Python/Perl regexps. It searches repository history, not the
    working directory. It always prints the revision number in which
   head, tail = doc.split('\n', 1)
        ui.write(_('%s extension - %s\n\n') % (name.split('.')[-1], head))
        if tail:
            ui.write(minirst.format(  5  o   <    cmdutil.export(repo, revs, template=opts.get('output'),
       4            before, match, after = None, None, None
    B  h                before = l.line[:l.colstart]
                match = l.line[l.colstart:l.colend]
                after = l.line[l.colend:]
            ui.write(sep.join(cols))
 %%   literal "%" character
    %H   changeset hash (40 bytes of hexadecimal)
    %N   number of patches being generated
    %R   changeset revision number
    %b   basename of the exporting repository
    %h   short-form changeset hash (12 bytes of hexadecimal)
    %n user') or user,
                                                opts.get('date') or date,
                                                branch,    8                pmf = repo.changectx(parent).manifest()
 ]
       ,    def writefile(fname, text, fmode="wb"):
    	   &                f = open("mf", "rb+")
  ,  _   4                writefile("af", "r%i\n" % id, "ab")
 [('', 'style', '', _('display using template map file')),
  %s\n") % (inst.strerror, inst.filename))
 'after'] and repo.dirstate.state(abstarget) not in '?ar'):
 NOTE: status may appear to disagree with diff if permissions have
    changed or a merge has occurred. The standard diff format does not
    report permission changes and diff only reports changes relative
    to one merge parent.
  J    if force:
        remove, forget = modified + deleted + clean, added
    elif after:
        remove, forget = deleted, []
        warn(modified + added + clean, _('still exists'))
    else:
        remove, forget = deleted + clean, []
        warn(modified, _('is modifs[1]
            else:
                node = bmheads[0]
        elif len(bmheads) > 2:
            raise util.Abort(_("multiple matching bis lists both regular and local tags. When the -v/--verbose switch
    is used, a third column "local" is printed for local tags.
              # use string type, then we can check if something was passed
          ('p', 'port', '', _('port to listen on (default: 8000)')),
 # synopsis
        ui.write("%s\n\n" % i[2])

        # description
        doc = i[0].__doc__
        if not doc:
            doc = _("(No help text available)")
        if ui.quiet:
            doc = doc.splitlines(0)[0]
        ui.write("%s\n" % doc.rstrip())

        if not ui.quiet:
            # str(opts[o]))
            if (repo is not None) and (repo.ui != baseui):
                repo.ui.setconfig("web", o, str(opts[o]))
 export will avoid generating diffs of files
    it detects as binary. With -a, export will generate a diff anywa  $  $   %            hg.merge(repo, hex(op1))
  %  %   *def branch(ui, repo, label=None, **opts):
  &  &   q
    Unless --force is specified, branch will not let you s  editor = cmdutil.getcommiteditor(editform=editform, **opts)
  ('d', 'date', '', _('record datecode as commit date')),
          ('u', 'user', '', _('record user as commiter('case-sensitive: %s\n' % (util.checkcase('.debugfsinfo')
   J    if force:
        remove, forget = modified + deleted + clean, added
    elif after:
        remove, forget = deleted, []
        warn(modified + added + clean, _('still exists'))
    else:
        remove, forget = deleted + clean, []
        warn(modified, _('is modified')'%s: cannot copy - %s\n') %
                            (relsrc, inst.strerror))
                    errors += 1
                    return
 repo.ui.warn(_("Found multiple heads for %s\n") % branch)
            for x in found:
                cmdutil.show_changeset(ui, repo, {}).show(changenode=x)
            raise util.Abort("")
 See :hg:`help dates` for a list of formats valid for -d/--date.
 l),
                                      opts.get('branch'))
     w                raise util.Abort('cannot use localheads with old style '
                                 'discovery  O    wlock = repo.wlock(0)
    errs, copied = docopy(ui, repo, pats, opts, wlock)
    names = []
    for abs, rel, exact in copied:
for the full list of commands '
                        'or "hg -v" for details')
            elif name and not full:
 _("\nspecial help topics:\n"))
        topics = []
        for i, d in help.helptable:
            l = i.split('|')
            topics.append((", ".join(l[:-1]), l[-1]))
        topics_len = max([len(s[0]) for s in topics])
        for t, desc in topics:
            ui.write(" %-*s if b != 'default':
            output.append("(%s)" % b)

        # multiple tags for a single parent separate       branches = util.sort([(tag in activebranches, repo.changelog.rev(node), tag)
                          for hg.parseurl(ui.expandpath(source), opts['rev'])
    C                rev = str(node).rjust(31 - encoding.colwidt"files" (default): a directory full of files
    "tar": tar archive, uncompressed
    "tbz2": tar archive, compressed using bzip2
    "tgz": tar archive, compressed using gzint information about the working copy   [('I', 'include', [], _('include names matching the given patlp" for the full list '
                                       'of commands'), ()))
        else:
            if name == 'shortlist':
 nd', None, _('show only help for commands'))],
 ('o', 'output', '', _('print output to file with formatted name')),
          ('r', 'rev', '', _('print the given revisionfiles')),
          ('d', 'date', '', _('tipmost revision match may be to a file, in which case the name of the file is
    given using a format string. The formatting rules schedules the files to be removed at the next commit.
    To undo a remove before that, see hg revert.
   badmatch=badmatch):
            if abs in names or src == 'b':
                continue
            names[abs] = (rel, exa). From and Subject headers of email
    message are used as default committer and commit message. All
 matchpats(repo, pats, opts)
 "copy|cp":
        (copy,
         [('A', 'after', None, _('record a copy that has already occurred')),
          ('f', 'fo_("\nspecial help topics:\n"))
        topics = []
        for i, d in help.helptable:
            l = i.split('|')
            topics.append((", ".join(l[:-1]), l[-1]))
        topics_len = max([len(s[0]) for s in topics])
        for t, desc in topics:
            ui.write(" %-*s MODE')),
    ('', 'traceback', None, _('always print a traceback on exception')),
    ('', 'time', None, _('time how long the command takes')),
    ('', 'profile', None, _('print command execution profile')),
    ('', 'version', None, _('output version information and exit')),
    ('h', 'help', None, _('display help and exit')),
]

dryrunopts = [('n', 'dry-run', None,
               _('do not perform actionmatch=matchfn,
                               list_ignored=opts['ignored']
                                            or all and not uanypats = cmdutil.matchpats(repo, pats, opts)
 \0' or '\n'
    copy = {}
    states = 'modified added removed deleted unknown ignored clean'.split()
    show = [k for k in states if opts[k]]
    if opts['all']:
        show += ui.quiet and (states[:4] + ['clean']) or states
    if not show:
        show = ui.quiet and states[:4] or states[:5]
 s = repo.status(match=m, clean=True)
    modified, added, deletfl.node(i)
                lr = fl.linkrev(i)
                renamed = fl.renamed(node)
                rcache[fn][lr] = renamed
  on the same branch. A branch head could be a true head
    or it could be the last changeset on a branch before a new branch
    was created. If none of the branch heads are true heads, the branch
    is considered inactive.when the destination is unrelated')),
    ('r', 'rev', [],       m1n = repo.changelog.read(parent1)[0]
    m2n = repo.changelog.read(_('use "hg help extensions" for information on enabling '
    9def merge(ui, repo, node=None, force=None, branch=None):
  " and not f.startswith("^"):
                continue
            f = f.lstrip("^")
            if not ui.debugflag and f.startswith("debug"):
                continue
            doc = e[0].__doc__
            if not doc:
                doc = _("(pecific branch (DEPRECATED)')),
          ('C', 'clean', None, tags() or mark == repo.dirstate.branch())
  "the --branch option is deprecated, "
                       "please use 'hg branch' instead\n"))
        br = repo.branchlookup(branch=branch)
        found = []
 '), _('REV')),
    ('', 'remove_('apply patch to the nodes from which it was generated')),
          ('', 'import-branch', None,
           _('[], 'include path in search'),
          ('X', 'exclude', [], 'exclude path from se   If no revision is given, the parent of the working directory i != parents[0]:
                        p1 = parents[0]
                        p2 = repo[nullid]
                e  except error.LookupError:
 using a format string. The formatting rules are as follows:
  ')),
 !\n"))
            patchproblems += 1
        a = open(fa).read()
        if a != b:
            ui.write(_(" patch test failed!\n"))
            patchproblems += 1

    if patchprobl  .    ctx = repo[opts.get('rev')]
    m = cmdutil.match(repo, (file1,) + pats, opts)
    for abs in ctx.walk(m):
        fctx = ctx[abs]
        o = fctx.filelog().renamed(fctx.filenode())
 ' or file history across copies and renames')),
          ('', 'follow-first', None,
           _('only follow the first parent   
        m = cmdutil.match(repo, pats, opts)
        m.bad = lambda x,y: False
        for abs in repo.walk(m):
            names[abs] = m.rel(abs), m.exact(abs)
 label = 'branches.closed'
                notice = _(' (closed)')
            else:
                label = 'branches.i
       '        elif abs not in repo.dirstate:
 Mark dest as copies of sources; mark sources for deletion. If
    dest is a directory, copies are put in that directory. If dest is
                exts = help.listexts(_('enabled extensions:'), extensions.enabled())
            if exts:
                rst.show_changeset(ui, repo, opts)
    for n in  not rev:
            rev = repo[repo[None].branch()].rev()
        mergemod._checkunknown(repo, repo[None], repo[rev])

    if clean:
 s = 1
                        break
                if miss:
!= 'r' and not os.path.exists(rel):
 _('end filenames with NUL, for use with xargs')),
          ('f', 'fullpath', None,
           _('print head revision, and the current branch contains exactly one other head,
    the other head is merged with by default. Otherwise, an explicit
  head, tail = doc.split('\n', 1)
        ui.write(_('%s extension - %s\n\n') % (name.split('.')[-1], head))
        if tail:
            ui.write(minirst.format(tail, textwidth))
            ui.status('\n\n')
l),
                                      opts.get('branch'))
     w                raise util.Abort('cannot use localheads with old style '
                                 'discovery')
        The bundle file can then be transferred using conventional means
    and applied to another repository with the unbundle or pull
    command. This is useful when direct push and pull are not
    available or when exporting an entire repository is undesirable.
   $    end = opts['print0'] and '\0' or '\n'

    for opt, char, changes in ([ct for ct in explicit_changetypes
                                if all or opts[ct[0]]]
                               or changetypes):

        if postincoming(ui, repo, modheads, opts['update'], wasempty)
             # use string type, then we can check if something was passed
          ('p', 'port', '', _('port to listen on (default: 8000)')),
  {     z                yield 'n', (r, list(set(p for p in cl.parentrevs(r)
                                        if p != -1)))
 N especially useful
        if running with -U/--noupdate)::

          hg log -r "bisect(current)"

  Z  Z              node = state['current'][0]
        except LookupError:
            if noupdate:
 fl.node(i)
                lr = fl.linkrev(i)
                renamed = fl.renamed(node)
                rcache[fn][lr] = renamed
 ctx = repo[rev]
  .node()
 y displayer.show(changenode=n)

def    hint=_("run 'hg heads' to see all heads"))
        elif len(bmheads) <= 1:
            raise util.Abort(_("no matching bookmark to merge - "
                "please merge with an explicit rev or bookmark"),
                hint=_("run 'hg heads' to see aError, inst:
                if inst.errno == errno.ENOENT:
 util.show_changeset(ui, repo, opts)
    displayer.show(repo[len(repo) - 1])
    displayer.close()
 '%s: cannot copy - %s\n') %
                            (relsrc, inst.strerror))
                    errors += 1
                    return
 rl, branches = hg.parseurl(ui.expandpath(remoteurl), opts.get('brmodified files')),
 repo has %d heads - '
                               'please merge with an explicit rev') %
                             len(heads))
 st:
                    return rbasename(fa))
    fd = writetemp(d)

    files = {}
    try:
        patch.patch(fd, ui, cwd=os.path.dirname(fa), files=files)
    except util.Abort, e:
        ui.write(_(" patch call failed:\n"))
        ui.write(" " + str(e) + "\n")
        patchproblems += 1
    else:
        if list(files) != [os.path.basename(fa)]:
            ui.write(_(" unexpected patrevs, checkout = hg.addbranchrevs(repo, other, branches, opts.get('rev'))
 tgt = scmutil.revsingle(repo, rev).node()
        checkconflict(repo, mark, force, tgt)
        marks[mark] = tgt
        if not inactive and cu('g', 'git', None, _('use git extended diff format')),
    ('', 'nodates', None, _("don't include dates in Saves the bundle to the
    given file.
    """
    repo = hg.repository(ui, repopath)
    if not repo.capable('getbundle'):
        raise util.Abort("getbundle() not supported by target repository")
    args = {}essage, user, date, branch, nodeid, p1, p2 = patch.extract(ui, file(pf, 'rb'))

        if tmpname is None:
            raise util.Abort(_('no diffs found')"webdir_conf"):
        raise error.RepoError(_("There is no Mercurial repository here"
                                " (.hg not found)"))
 ame that has already occurred')),
          ('f', 'force', None,
           _('forcibly copy over an existing managed file')),
         ] + walof files in the repository. If names are given, only
    files that match are shown. Files that are clean or ignored or
    def commitfunc(ui, repo, message, match, opts):
        retut'):
                    if hex(n) != nodeid:
                        repo.rollback()
 'hg add [OPTION]... [FILE]...')),
 URL is specified, the patch will be downloaded from it.
    See 'hg help dates' for a list of formats valid for -d/--date.
 target)
                    restore = False
                finally:
                    if restore:   L@command('debugrevspec', [], ('REVSPEC'))
def debugrevspec(ui, repo, expr):
  _  _u                   node = nodes[0]
                if not noupdate:
                    cmdutil.bailifchanged(repo)
                    hg.clean(repo, node, show_stats=False)
  _  _   &            state['current'] = [node]
  b  b   g                state['current'] = [extendnode.node()]
 "files" (default): a directory full of files
    "tar": tar archive, uncompressed
    "tbz2": tar archive, compressed using bzip2
    "tgz": tar archive, compressed using gzip
    "uzip": zip archive, uncompressed
    "zip": zip archive, compr   ('f', 'force', None, _('force a merge with outstanding chang      When there are uncommitted changes and option -C/--clean is notf + '/'
                    if slist is None:
                        slist = list(files)
                        slist.sort()
                    i = bisect.bisect(slist, name)
       fstate = fstate.items()
    fstate.sort()
    for fn, state in fstate:
        if fn in skip:
            continue
 "skipping missing subrepository: %s\n") % subpath)

 _, _               if f not in subforget:
                if os.path.exists(m.rel(f)):
                    ui.warn(_('not removing %s: file is already untracked\n')
                            % m.rel(f))
 as having copies of source files. If dest is a
    directory, copies are put in that directory. If dest is a file,
  T))]

    changetypes = (('modified', 'M', modified),
                   ('added', 'A', added),
                   ('removed', 'R', removed),
                   ('deleted', '!', deleted),
                   ('unknown', '?', unknown),
                   ('ignored', 'I', ignored))

    explicit[('C', 'clean', None, _('overwrite locally modified files')),
 ) == 5:
                shortopt, longopt, default, desc, optlabel = option
            else:
                shortopt, longopt, default, desc = option
                optlabel = _("VALUE") # default label

            if _("DEPRECATED") in desc and not ui.verbose:
                continue

 files, matchfn, anypats = cmdutil.matchpats(repo, pats, opts)
  to the repository data, not to the checked out files). Some
  Iwlock = repo.wlock()
    try:
        repo.dirstate.setparents(repo.lookup(r[('r', 'rev', '', _('show parents from the specified rev')),
 . Valid
       C    prepended. Use "-p" to specify a format string for the prefix.
    E       ctx = repo[opts['rev']]
  J     ,    matchfn = cmdutil.match(repo, [], opts)
       >    Commit the backed out changes as a new ch   if fn in skip:
                continue
            if fn not in copies.get(prev[fn], {}):
                display(fn, rev, {}, state'\n'
                '[extensions]\n'
                '# uncomment these lines to enable some popular extensions\n'
                '# (see "hg help extensions" for more info)\n'
                '# pager =\n'
                '# progress =\n'
                '# color =\n')
            fp.close()

 ies the working directory. It does not commit any
    changes, or change the parent of the working directory. If you
       "resolve":
        (resolve,
         [('l', 'list', None, _('list state of files needing merge')),
          ('m', 'mark', None, _('mark files as resolved')),
          ('u', 'unmark', None, _('unmark files as resolved'))],
          ('hg resolve [OPTION] [FILES...]')),
 "you can't specify a revision and a date"))
        rev = cmdutil.finddate(ui, repo, date)

    if clean or check:
 'manifest', False, _('open manifest')),
     ('', 'dir', False, _('open d) == 5:
                shortopt, longopt, default, desc, optlabel = option
            else:
                shortopt, longopt, default, desc = option
                optlabel = _("VALUE") # default label

            if _("DEPRECATED") in desc and not ui.verbose:
                continue

 . Valid
       C    prepended. Use "-p" to specify a format string for the prefix.
    E       ctx = repo[opts['rev']]
  J     ,    matchfn = cmdutil.match(repo, [], opts)
       >    Commit the backed out changes as a new chopts,
         _('[OPTION]... [FILE]...')),
    "^_('forgetting %s\n'))
        undelete = ([], _('undeleting %s\n'))
        update = {}

        disptable = (
            # dispatch table:
            #   file state
            #   action if in target manifest
            #   action if not in target manifest
            #   make backup if in target manifest
            #   make backup if noxlist, dobackup):
                xlist[0].append(abs)
                update[abs] = 1
                if dobackup and not opts['no_backup'] and util.lexists(target):
                    bakname = "%s.orig" % rel
                    ui.note(_('saving current version of %s as %s\n') %
 s')
                        parents = repo.unfiltered()[prec].parents()
                        parents = tuple(p.node() for p in p%s %s%s\n" % (t, spaces, r, tagtype))
 )))
                if noupdate:
                    return
                cmdutil.bail_if_changed(repo)
                return hg.clean(repo, ext('b', 'branch', [],
           _('a specific branch you would like to pull')
       '    ctx = cmdutil.revsingle(repo, rev)
        ]

diffopts2 = [
    ('p', 'show-function', None, _('show which function each change is in')),
    ('', 'reverse', None, _('produce a diff that undoes the changes')),
    ] + diffwsopts + [
  + repo has %d heads - '
                               'please merge with an explicit rev') %
                             len(heads))
 um == 1:
                    common = parents[0].ancestor(parents[1])
                    ui.write(_('Not all ancestors of this changeset have been'
                               ' checked.\nTo check the other ancestors, start'
 d, then mark the latest changeset which is free from the problem
    as good. Bisect will update your working directory to a revision
    for testing (unless the -U/--noupdate option is specified). Once
    you have performed tests, mark the working directory as good or
    bad, and bisect will either update to another candidate changeset
    or announce that it has found the bad revision.
 ne,
           _('show line number at the first appearance'))
 and know what
                        # you are doing or used --exact or a merge patch while
                        # being updated to its first parent.
                        m = None
                    else:
                        m = scmut 'rev', '', _('revision to display'))],
                 _('hg manifest [-r [:5]
        modified, added, removed, deleted, unknown = map(dict.fromkeys, changes)

        revert = ([], _('reverting %s\n'))
        add = ([], _('adding %s\n'))
        remove = ([], _('removing    node = repo.lookup(rev)
    else:
        node = None
 [('f', 'force', None, _('force a merge with outstanding changes'))],
  if default or id:
            output = [hexfunc(ctx.node())]
        if num:
            output.append(str(ctx.rev()))

    if util.rcpath():
        ui.debug('read config from: %s\n' % f)
    untrusted = bool(opts.get('untrusted'))
    if values:
        sections = [v for v in values if '.' not in v]
        items = [v for v in values if '.' in v]
        if len(items) > 1 or items and sections:
 ', '',
           _('revision to dis('w', 'ignore-all-space', None,
     _('ignore white space when comparing lines')),
    ('b', 'ignore-space-change', None,
     _('ignore changes in the amount of white space')),
    ('B', 'ignore-blank-lines', None,
     _('ignore cmdpath = util.find_exe(editor) or util.find_exe(editor.split()[0])
  ~             found = False
       k        r = prev.get(fn, -1)
        if opts['all']:
            iter = difflinestates(states, prevstates)
  $     P            iter = [('', l) for l in prevstates]
        for change, l in iter:
       .            found = True
    This command searches the entire repository by default.  To search
    just the current directory and its '\n'
                '[extensions]\n'
                '# uncomment these lines to enable some popular extensions\n'
                '# (see "hg help extensions" for more info)\n'
                '# pager =\n'
                '# progress =\n'
                '# color =\n')
            fp.close()

 , this
    command will attempt to resolve all unresolved files.

    The codes used to show the status of files are:
    U = unresolved
    R = resolved
    """

    if len([x for x in and mark == repo._bookmarkcurrent:
            bookmarks.setcurrent(repo, None)
            return
        tgt = cur
        if rev:
 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
  operation is not atomic (making sure REPO is not modified during
    the operation is up to you) and you have to make sure your editor
    breaks hardlinks (Emacs and most Linux Kernel tools do so).  Also,
    this is not compatible with certain extensions that place their
    metadata under the .hg directory, such as mq.
 nd is not intended for use on public repositories. Once
    changes are visible for pull by other users, rolling a transaction
    back locally is ineffective (someone else may already have pulled
    the changes). Furthermore, a race is possible with readers of the
    repository; for example an in-progress pull from the repository
    may fail if a rollback is performed.
    """
    re_(" unexpected patch output!"))
                ui.write(_(" (you may have an incompatible version of patch)\n"))
                problems += 1
            a = file(fa).read for a list of formats valid for -d/--date.
 s')
                        parents = repo.unfiltered()[prec].parents()
                        parents = tuple(p.node() for p in parents)
                    repo.obsst       If no revision range is specified, the default is tip:0 unless
    --follow is set, in which case the working directory parent is
    used as the starting revision.
 s will be added to the repository at the next commit. To
    undo an add before that, see hg forget.
  _('forgetting %s\n'))
        undelete = ([], _('undeleting %s\n'))
        update = {}

        disptable = (
            # dispatch table:
            #   file state
            #   action if in target manifest
            #   action if not in target manifest
            #   make backup if in target manifest
            #   make backup if no':
                        doit(parts[if 'lookup' in other.capabilities:
            revs = [other.lookup(rev) for rev in revs]
        else:
            error = _("Other reposit[x]]) > 1:
        raise util.Abort(_("too many options specified"))

    ms = merge_.mergestate(repo)
    m = cmdutil.match(repo, pats, opts)

    for f in ms:
        if m(f):
            if opts.get("list"):
                ui.write("%s %s\n" % (ms[f].upper(), f))
            elif opts.get("mark"):
                ms.mark(f, "r")
            elif opts.get("  
^  
   B    getdate = util.cachefunc(lambda x: util.datestr(x[0].date()))
  
    	    opmap = [('user', lambda x: ui.shortuser(x[0].user())),
             ('number', lambda x: str(x[0].rev())),
             ('changeset', lambda x: short(x[0].node())),
             ('date, the
    operation is recorded, but no copying is performed.

    This command takes effect in the next commit.

    NOTE: This command should        else:
        rev = repo.lookup(rev)
    change = repo.changelog.read(rev)
    n = change[0]
    files = repo.manifest.read(n)
  ibundletype = opts.get('type', 'bzip2').lower()
    btypes = {'none': 'HG10UN', 'bzip2': 'HG10BZ', 'gzip': 'HG10GZ'}
    bundletype = btypes.get(bundletype)
    if bundletype not in changegroup.bundletypes:
        raise util.Abort(_('unknown bundle type specified with --type'))

    changegroup.writebundle(cg, fname, bundletype)
 _,), opts)
        if m.anypats() or len(m.files()) != 1:
            for src, abs, rel, exact in cmdutil.walk(repo, pats, opts,
 and know what
                        # you are doing or used --exact or a merge patch while
                        # being updated to its first parent.
                        m = None
                    else:
                        m = scmut-p/--prefix to specify a format string for the
    prefix. The default is the basename of the archive, with suffixes
    remov, width):
        rst = ''
        if not optlist:
            return ''

        for title, options in optlist:
            rst += '\n%s\n' % title
 ']:
                        if prec not in repo.unfiltered():
                            raise util.Abort('can(modified, revert, remove, True, True),
            (added, revert, forget, True, False),
            (removed, undelete, None, False, False),
            (deleted, revert, remove, False, False),
            (unknown, add, None, True, False),
            (target_only, add, None, False, False),
            )

        entries = names.items()
        entries.sort()

        for abs, (rel, exact) in entries:
            mfentry = mf.get(abs)
            target = repo.wjoin(abs)
            deif logfile == '-':
                message = sys.stdin.read()
            else:
                message = open(logfile).read()
        except IOError, inst:
            raise util.Abort(_("can't read commit message '%s': %s") %
                             (logfile, inst.strerror))
    r = revlog.revlog(util.opener(os.getcwd(), audit=False), file_)
  y  z('', 'style', '', _('display using template map file')),
 _(" unexpected patch output!"))
                ui.write(_(" (you may have an incompatible version of patch)\n"))
                problems += 1
            a = file(fa).read           if len(bheads) == 1:
            if len(repo.heads()) > 1:
                raise util.Abort(_("branch '%s' has one head - "
                                   "please merge with an explicit rev") %
                                 branch)
                        (msg, node) = cmdutil.tryimportone(ui, repo, hunk, parents,
                                                       opts,dnode = extendbisectrange(nodes, good)
            if extendnode is not None:
                ui.write(_("Extending search to changeset %d:%s\n"
                         % (extendnode.rev(), short(extendnrevlog bundlerepo")
demandload(globals(), "difflib patch time help mdiff tempfile")
demandload(globals(), "traceback errno version atexit socket")
demandload(globals(), "archival changegroup cmdutil hgweb.server sshserver")
  $b  $   F            n = _lookup(repo, hex(op1))
            hg.merge(repo, n)
  %w  %   "def branch(ui, repo, label=None):
  &(         +import demandimport; demandimport.enable()
  +    1from i18n import _
import bisect, os, re, sys, signal, imp, urllib, pdb, shlex, stat
import fancyopts, ui, hg, util, lock, revlog, bundlerepo
import difflib, patch, time, help, mdiff, tempfile
import traceback, errno, version, atexit, socket
import archival, changegroup, cmdutil, hgweb.server, sshserver
  $  $   %            hg.merge(repo, hex(op1))
  f in ids:
                r = ids[ctx.hex()]
                ui.warn(_('skipping already grafted revision %s '
                                '(was grafted from %d)\n') % (r, rev))
  --force is specified, branch will not let you set a
    branch name that shadows an existing branch.
  &  &           if not opts.get('force') and label in repo.branchtags():
            if label not in [p.branch() for p in repo.workingctx().parents()]:
 = ''
                elif hn not in repo.branchheads(tag, closed=False):
                    if not closed:
                        continue
                    label =[x]]) > 1:
        raise util.Abort(_("too many options specified"))

    ms = merge_.mergestate(repo)
    m = cmdutil.match(repo, pats, opts)

    for f in ms:
        if m(f):
            if opts.get("list"):
                ui.write("%s %s\n" % (ms[f].upper(), f))
            elif opts.get("mark"):
                ms.mark(f, "r")
            elif opts.get("unmark"):
                ms.mark(f, "u")
            else:
                wctx = repo[None]
                mctx = wctx.parents()[-1]
                ms i:  i:  d    if delete:
        if mark is None:
            raise util.Abort(_("bookmark name required"))
        if mark not in marks:
            raise util.Abort(_("bookmark '%s' does not exist") % mark)
        if mark == repo._bookmarkcurrent:
            bookmarks.setcurrent(repo, Non           if len(bheads) == 1:
            if len(repo.heads()) > 1:
                raise util.Abort(_("branch '%s' has one head - "
                                   "please merge with an explicit rev") %
                                 branch)
   
^  
   B    getdate = util.cachefunc(lambda x: util.datestr(x[0].date()))
  
    	    opmap = [('user', lambda x: ui.shortuser(x[0].user())),
             ('number', lambda x: str(x[0].rev())),
             ('changeset', lambda x: short(x[0].node())),
             ('date', getdate),
             ('follow', lambda x: x[0].path()),
            ]

  _  _  t
    linenumber = opts.get('line_number') is not None
    if (linenumber and (not opts['changeset']) and (not opts['number'])):
        raise util.Ab                  # file has not changed in dirstate
                if node == parent:
                    if exact: ui.warn(_('no changes needed to %s\n') % rel)
                    continue
                if pmf is None:
                    # only need parent manifest in this unlikely case,
                    # so do not read by default
                    pmf = repo.cer directory %s!")
                                         % rf)
                elif not (stat.S_ISREG(mode) or stat.S_ISLNK(mode)):
 wp = repo.workingctx().parents()
            if opts.get('exact'):
                if rec, succs, opts['flags'],
                                         parents=parents, date=date,
                                         metadata=me(False)
    try:
        errs, copied = docopy(ui, repo, pats, opts)
        names = []
        for abs, rel, exact in copied:
            if ui.verbose or not exact:
                ui.status(_('removing %s\n') % rel)
            names.append(abs)
        if not opts.get('dry_run'):
 m = cmdutil.match(repo, pats, opts)
        m.bad = badfn
        for abs in repo[node].walk(m):
            if abs not in names:
  = ''
                elif hn not in repo.branchheads(tag, closed=False):
                    if not closed:
                        continue
                    label =   if opts.get('exact') or opts.get('import_branch'):
                    repo.dirstate.setbranch(bthe specified revision'), _('REV')),
    ('', 'e', 'ssh', '', _('specify ssh command to use')),
          ('', 'remotecmd', '',
           _('specify hg command to run on the    try:
                        p1 = repo.lookup(p1)
 mf = repo.manifest.read(repo.changelog.read(parent)[0])
 [\n')
                            % (ids[n], rev, .tar.bz2'],
            'tgz': ['.tgz', '.tar.gz'],
            'zip': ['.zip'],
        }

        for type, extensions in exttypes.items():
            if util.any(dest.endswith(ext) for ext in extensions):
                return type
        return None

    kind = opts.get('type') or guess_type() or 'files'
       
       
       ,    matchfn = cmdutil.match(repo, [], opts)
 if ':' in bindaddr: # IPv6
                bindaddr = '[%s]' % bindaddr

            fqaddr = self.httpd.fqaddr
            if ':' in fqaddr:
                fqaddr = '[%s]' % fqaddr
            ui.status(_('listening at http://%s%s/%s (bound to %s:%d)\n') %
                      (fqaddr, port, prefix, bindaddr, self.httpd.port))
 d  G
def resolve(ui, repo, *pats, **opts):
    """resolve file merges from a branch merge or update

    This command will attempt to resolve unreso_('[-u] [NAME]...'))
def showconfig(ui, repo, *values, **opts):
    """show combined config settings from all hgrc files

    With no arguments, print names and values of all config items.

    With one argument of the form section.name, print just the value
    of that config item.

    With multiple arguments, print names and values of all config
    items with matching section names.

    With --debug, the source (filename and line number) is printed
    for each config item.

    Returns 0 on success.
    """

    for fno revision is given, the parent of the working directory is used,
    or tip if no revision is ch
  M  m   3    ctx = cmdutil.revsingle(repo, opts.get('rev'))
       3    ctx = cmdutil.revsingle(repo, opts.get('rev'))
  !  !   /    node = cmdutil.revsingle(repo, rev).node()
  ;h  ;   l                ctx = cmdutil.revsingle(repo, rev)
 p1 = repo.lookup(p1)
                    p2 = repo.lookup(p2)
                    if p1 == wp[0].node():
                        repo.dirstate.setparents(p1, p2)
                except hg.RepoError:
                    pass
            if opts.get('exact' ('I', 'include', [], _('include names matching the given patterns')),
          ('X', 'exclude', [], _('exclude names matching the given patterns'))],xlist, dobackup):
                xlist[0].append(abs)
                update[abs] = 1
                if dobackup and not opts['no_backup'] and util.lexists(target):
                    bakname = "%s.orig" % rel
                    ui.note(_('saving current version of %s as %s\n') %
                            (rel, bakname))
                    if not opts.get('dry_run'):
                        util.copyfile(target, bakname)
                if ui.verbose or not exact:
 '-%s' % o[0])
                options.append('--%s' % o[1])
        ui.write("%s\n" % "\n".join(options))
        return

    cmdlist = cmdutil.findpopmf:
                    if mfentry:
                        # if version of file is same in parent and target
                        # manifests, do nothing
                        if pmf[abs] != mfentry:
                            handle(revert, False)
                    else:
                        handle(remove, False)

        if not opts.get('dry_run'):
 only-merges', None, _('show only merges')),
 xlist, dobackup):
                xlist[0].append(abs)
                update[abs] = 1
                if dobackup and not opts['no_backup'] and util.lexists(target):
                    bakname = "%s.orig" % rel
                    ui.note(_('saving current version of %s as %s\n') %
                            (rel, bakname))
                    if not opts.get('dry_run'):
                        util.copyfile(target, bakname)
                if ui.verbose or not exact:
  >  l   5            ui.status(_('adding %s\n') % m.rel(abs))
  T     E    Use the -s option to detect renamed files. With a parameter > 0,
    &   D    those similar enough as renames. This option takes a percentage
  h     B    parameter. Detecting renamed files this way can be expensive.
  |         ctx = repo[opts['rev']]
    A   \    m = cmdutil.match(repo, pats, opts)
    for abs in ctx.walk(m):
        fctx = ctx[abs]
  {     N            ui.write(_("%s: binary file\n") % ((pats and m.rel(abs)) or abs))
  n     >    To specify the type of archive to create, use "-tcmdpath = util.find_exe(editor) or util.find_exe(editor.split()[0])
  ~             found = False
       k        r = prev.get(fn, -1)
        if opts['all']:
            iter = difflinestates(states, prevstates)
  $     P            iter = [('', l) for l in prevstates]
        for change, l in iter:
       .            found = True
        return found
           found = False
    <                           if fn in prev or fstate[fn]:
                    r = display(fn, rev, m, fstate[fn])
                    found = found or r
                    if r and not opts['all']:
          fstate = fstate.items()
    fsdata

            if tmpname is None:
                raise util.Abort(_('no diffs found'))

            try:
                cmdline_message = cmdutil.logmessage(opts)
                if cmdline_messageanyway\n'))
                            except:
                                pass
                            raise
                    finally:
                        prof.close()
                        stats = hotshot.stats.load("hg.prof")
                        stats.strip_dirs()
                        stats.sort_stats('time', 'calls')
                        stats.print_stats(40)
                el            [('b', 'branches', None, _('show branches (DEPRECATED)')),
          ('', 'style', '', _('display using template map file')),
 cmdpath = util.find_exe(editor) or util.find_exe(editor.split()[0])
  ~             found = False
       k        r = prev.get(fn, -1)
        if opts['all']:
            iter = difflinestates(states, prevstates)
  $     P            iter = [('', l) for l in prevstates]
        for change, l in iter:
       .            found = True
        return found
           found = False
    <                           if fn in prev or fstate[fn]:
                    r = display(fn, rev, m, fstate[fn])
                    found = found or r
                    if r and not opts['all']:
          fstate = fstate.items()
    fsn:
                    ui.debug('%s: ' %
                             ui.configsource(section, name, untrusted))
                    ui.write('%s=%s\n' % (sectname, value))
                elif v == sectname:
                    ui.debug('%s: ' %
 ):
                            repo.dirstate.setparents(p1, p2)