mercurial/commands.py
changeset 35888 c8e2d6ed1f9e
parent 35859 1bf5263fe5cc
child 36002 f8ad57d24252
equal deleted inserted replaced
35887:572f36e9a780 35888:c8e2d6ed1f9e
    39     graphmod,
    39     graphmod,
    40     hbisect,
    40     hbisect,
    41     help,
    41     help,
    42     hg,
    42     hg,
    43     lock as lockmod,
    43     lock as lockmod,
       
    44     logcmdutil,
    44     merge as mergemod,
    45     merge as mergemod,
    45     obsolete,
    46     obsolete,
    46     obsutil,
    47     obsutil,
    47     patch,
    48     patch,
    48     phases,
    49     phases,
   821             return
   822             return
   822         cmdutil.checkunfinished(repo)
   823         cmdutil.checkunfinished(repo)
   823         cmdutil.bailifchanged(repo)
   824         cmdutil.bailifchanged(repo)
   824         return hg.clean(repo, node, show_stats=show_stats)
   825         return hg.clean(repo, node, show_stats=show_stats)
   825 
   826 
   826     displayer = cmdutil.show_changeset(ui, repo, {})
   827     displayer = logcmdutil.changesetdisplayer(ui, repo, {})
   827 
   828 
   828     if command:
   829     if command:
   829         changesets = 1
   830         changesets = 1
   830         if noupdate:
   831         if noupdate:
   831             try:
   832             try:
  1871         node1, node2 = node2, node1
  1872         node1, node2 = node2, node1
  1872 
  1873 
  1873     diffopts = patch.diffallopts(ui, opts)
  1874     diffopts = patch.diffallopts(ui, opts)
  1874     m = scmutil.match(repo[node2], pats, opts)
  1875     m = scmutil.match(repo[node2], pats, opts)
  1875     ui.pager('diff')
  1876     ui.pager('diff')
  1876     cmdutil.diffordiffstat(ui, repo, diffopts, node1, node2, m, stat=stat,
  1877     logcmdutil.diffordiffstat(ui, repo, diffopts, node1, node2, m, stat=stat,
  1877                            listsubrepos=opts.get('subrepos'),
  1878                               listsubrepos=opts.get('subrepos'),
  1878                            root=opts.get('root'))
  1879                               root=opts.get('root'))
  1879 
  1880 
  1880 @command('^export',
  1881 @command('^export',
  1881     [('o', 'output', '',
  1882     [('o', 'output', '',
  1882      _('print output to file with formatted name'), _('FORMAT')),
  1883      _('print output to file with formatted name'), _('FORMAT')),
  1883     ('', 'switch-parent', None, _('diff against the second parent')),
  1884     ('', 'switch-parent', None, _('diff against the second parent')),
  2645     if not heads:
  2646     if not heads:
  2646         return 1
  2647         return 1
  2647 
  2648 
  2648     ui.pager('heads')
  2649     ui.pager('heads')
  2649     heads = sorted(heads, key=lambda x: -x.rev())
  2650     heads = sorted(heads, key=lambda x: -x.rev())
  2650     displayer = cmdutil.show_changeset(ui, repo, opts)
  2651     displayer = logcmdutil.changesetdisplayer(ui, repo, opts)
  2651     for ctx in heads:
  2652     for ctx in heads:
  2652         displayer.show(ctx)
  2653         displayer.show(ctx)
  2653     displayer.close()
  2654     displayer.close()
  2654 
  2655 
  2655 @command('help',
  2656 @command('help',
  3153 
  3154 
  3154     Returns 0 if there are incoming changes, 1 otherwise.
  3155     Returns 0 if there are incoming changes, 1 otherwise.
  3155     """
  3156     """
  3156     opts = pycompat.byteskwargs(opts)
  3157     opts = pycompat.byteskwargs(opts)
  3157     if opts.get('graph'):
  3158     if opts.get('graph'):
  3158         cmdutil.checkunsupportedgraphflags([], opts)
  3159         logcmdutil.checkunsupportedgraphflags([], opts)
  3159         def display(other, chlist, displayer):
  3160         def display(other, chlist, displayer):
  3160             revdag = cmdutil.graphrevs(other, chlist, opts)
  3161             revdag = logcmdutil.graphrevs(other, chlist, opts)
  3161             cmdutil.displaygraph(ui, repo, revdag, displayer,
  3162             logcmdutil.displaygraph(ui, repo, revdag, displayer,
  3162                                  graphmod.asciiedges)
  3163                                     graphmod.asciiedges)
  3163 
  3164 
  3164         hg._incoming(display, lambda: 1, ui, repo, source, opts, buffered=True)
  3165         hg._incoming(display, lambda: 1, ui, repo, source, opts, buffered=True)
  3165         return 0
  3166         return 0
  3166 
  3167 
  3167     if opts.get('bundle') and opts.get('subrepos'):
  3168     if opts.get('bundle') and opts.get('subrepos'):
  3416         raise error.Abort(
  3417         raise error.Abort(
  3417             _('FILE arguments are not compatible with --line-range option')
  3418             _('FILE arguments are not compatible with --line-range option')
  3418         )
  3419         )
  3419 
  3420 
  3420     repo = scmutil.unhidehashlikerevs(repo, opts.get('rev'), 'nowarn')
  3421     repo = scmutil.unhidehashlikerevs(repo, opts.get('rev'), 'nowarn')
  3421     revs, filematcher = cmdutil.getlogrevs(repo, pats, opts)
  3422     revs, filematcher = logcmdutil.getrevs(repo, pats, opts)
  3422     hunksfilter = None
  3423     hunksfilter = None
  3423 
  3424 
  3424     if opts.get('graph'):
  3425     if opts.get('graph'):
  3425         if linerange:
  3426         if linerange:
  3426             raise error.Abort(_('graph not supported with line range patterns'))
  3427             raise error.Abort(_('graph not supported with line range patterns'))
  3427         return cmdutil.graphlog(ui, repo, revs, filematcher, opts)
  3428         return logcmdutil.graphlog(ui, repo, revs, filematcher, opts)
  3428 
  3429 
  3429     if linerange:
  3430     if linerange:
  3430         revs, lrfilematcher, hunksfilter = cmdutil.getloglinerangerevs(
  3431         revs, lrfilematcher, hunksfilter = logcmdutil.getlinerangerevs(
  3431             repo, revs, opts)
  3432             repo, revs, opts)
  3432 
  3433 
  3433         if filematcher is not None and lrfilematcher is not None:
  3434         if filematcher is not None and lrfilematcher is not None:
  3434             basefilematcher = filematcher
  3435             basefilematcher = filematcher
  3435 
  3436 
  3447         if opts.get('rev'):
  3448         if opts.get('rev'):
  3448             endrev = scmutil.revrange(repo, opts.get('rev')).max() + 1
  3449             endrev = scmutil.revrange(repo, opts.get('rev')).max() + 1
  3449         getrenamed = templatekw.getrenamedfn(repo, endrev=endrev)
  3450         getrenamed = templatekw.getrenamedfn(repo, endrev=endrev)
  3450 
  3451 
  3451     ui.pager('log')
  3452     ui.pager('log')
  3452     displayer = cmdutil.show_changeset(ui, repo, opts, buffered=True)
  3453     displayer = logcmdutil.changesetdisplayer(ui, repo, opts, buffered=True)
  3453     for rev in revs:
  3454     for rev in revs:
  3454         ctx = repo[rev]
  3455         ctx = repo[rev]
  3455         copies = None
  3456         copies = None
  3456         if getrenamed is not None and rev:
  3457         if getrenamed is not None and rev:
  3457             copies = []
  3458             copies = []
  3601         # find nodes that are ancestors of p2 but not of p1
  3602         # find nodes that are ancestors of p2 but not of p1
  3602         p1 = repo.lookup('.')
  3603         p1 = repo.lookup('.')
  3603         p2 = repo.lookup(node)
  3604         p2 = repo.lookup(node)
  3604         nodes = repo.changelog.findmissing(common=[p1], heads=[p2])
  3605         nodes = repo.changelog.findmissing(common=[p1], heads=[p2])
  3605 
  3606 
  3606         displayer = cmdutil.show_changeset(ui, repo, opts)
  3607         displayer = logcmdutil.changesetdisplayer(ui, repo, opts)
  3607         for node in nodes:
  3608         for node in nodes:
  3608             displayer.show(repo[node])
  3609             displayer.show(repo[node])
  3609         displayer.close()
  3610         displayer.close()
  3610         return 0
  3611         return 0
  3611 
  3612 
  3665 
  3666 
  3666     Returns 0 if there are outgoing changes, 1 otherwise.
  3667     Returns 0 if there are outgoing changes, 1 otherwise.
  3667     """
  3668     """
  3668     opts = pycompat.byteskwargs(opts)
  3669     opts = pycompat.byteskwargs(opts)
  3669     if opts.get('graph'):
  3670     if opts.get('graph'):
  3670         cmdutil.checkunsupportedgraphflags([], opts)
  3671         logcmdutil.checkunsupportedgraphflags([], opts)
  3671         o, other = hg._outgoing(ui, repo, dest, opts)
  3672         o, other = hg._outgoing(ui, repo, dest, opts)
  3672         if not o:
  3673         if not o:
  3673             cmdutil.outgoinghooks(ui, repo, other, opts, o)
  3674             cmdutil.outgoinghooks(ui, repo, other, opts, o)
  3674             return
  3675             return
  3675 
  3676 
  3676         revdag = cmdutil.graphrevs(repo, o, opts)
  3677         revdag = logcmdutil.graphrevs(repo, o, opts)
  3677         ui.pager('outgoing')
  3678         ui.pager('outgoing')
  3678         displayer = cmdutil.show_changeset(ui, repo, opts, buffered=True)
  3679         displayer = logcmdutil.changesetdisplayer(ui, repo, opts, buffered=True)
  3679         cmdutil.displaygraph(ui, repo, revdag, displayer, graphmod.asciiedges)
  3680         logcmdutil.displaygraph(ui, repo, revdag, displayer,
       
  3681                                 graphmod.asciiedges)
  3680         cmdutil.outgoinghooks(ui, repo, other, opts, o)
  3682         cmdutil.outgoinghooks(ui, repo, other, opts, o)
  3681         return 0
  3683         return 0
  3682 
  3684 
  3683     if opts.get('bookmarks'):
  3685     if opts.get('bookmarks'):
  3684         dest = ui.expandpath(dest or 'default-push', dest or 'default')
  3686         dest = ui.expandpath(dest or 'default-push', dest or 'default')
  3749             fctx = repo.filectx(file_, fileid=fn)
  3751             fctx = repo.filectx(file_, fileid=fn)
  3750             p.append(fctx.node())
  3752             p.append(fctx.node())
  3751     else:
  3753     else:
  3752         p = [cp.node() for cp in ctx.parents()]
  3754         p = [cp.node() for cp in ctx.parents()]
  3753 
  3755 
  3754     displayer = cmdutil.show_changeset(ui, repo, opts)
  3756     displayer = logcmdutil.changesetdisplayer(ui, repo, opts)
  3755     for n in p:
  3757     for n in p:
  3756         if n != nullid:
  3758         if n != nullid:
  3757             displayer.show(repo[n])
  3759             displayer.show(repo[n])
  3758     displayer.close()
  3760     displayer.close()
  3759 
  3761 
  4981     for p in parents:
  4983     for p in parents:
  4982         # label with log.changeset (instead of log.parent) since this
  4984         # label with log.changeset (instead of log.parent) since this
  4983         # shows a working directory parent *changeset*:
  4985         # shows a working directory parent *changeset*:
  4984         # i18n: column positioning for "hg summary"
  4986         # i18n: column positioning for "hg summary"
  4985         ui.write(_('parent: %d:%s ') % (p.rev(), p),
  4987         ui.write(_('parent: %d:%s ') % (p.rev(), p),
  4986                  label=cmdutil._changesetlabels(p))
  4988                  label=logcmdutil.changesetlabels(p))
  4987         ui.write(' '.join(p.tags()), label='log.tag')
  4989         ui.write(' '.join(p.tags()), label='log.tag')
  4988         if p.bookmarks():
  4990         if p.bookmarks():
  4989             marks.extend(p.bookmarks())
  4991             marks.extend(p.bookmarks())
  4990         if p.rev() == -1:
  4992         if p.rev() == -1:
  4991             if not len(repo):
  4993             if not len(repo):
  5403     This command is deprecated, please use :hg:`heads` instead.
  5405     This command is deprecated, please use :hg:`heads` instead.
  5404 
  5406 
  5405     Returns 0 on success.
  5407     Returns 0 on success.
  5406     """
  5408     """
  5407     opts = pycompat.byteskwargs(opts)
  5409     opts = pycompat.byteskwargs(opts)
  5408     displayer = cmdutil.show_changeset(ui, repo, opts)
  5410     displayer = logcmdutil.changesetdisplayer(ui, repo, opts)
  5409     displayer.show(repo['tip'])
  5411     displayer.show(repo['tip'])
  5410     displayer.close()
  5412     displayer.close()
  5411 
  5413 
  5412 @command('unbundle',
  5414 @command('unbundle',
  5413     [('u', 'update', None,
  5415     [('u', 'update', None,