diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -1875,7 +1875,10 @@ def incoming(ui, repo, source="default", # use the created uncompressed bundlerepo other = bundlerepo.bundlerepository(ui, repo.root, fname) - o = other.changelog.nodesbetween(incoming)[0] + revs = None + if opts['rev']: + revs = [other.lookup(rev) for rev in opts['rev']] + o = other.changelog.nodesbetween(incoming, revs)[0] if opts['newest_first']: o.reverse() displayer = show_changeset(ui, other, opts) @@ -2085,13 +2088,16 @@ def outgoing(ui, repo, dest=None, **opts ui.setconfig("ui", "ssh", opts['ssh']) if opts['remotecmd']: ui.setconfig("ui", "remotecmd", opts['remotecmd']) + revs = None + if opts['rev']: + revs = [repo.lookup(rev) for rev in opts['rev']] other = hg.repository(ui, dest) o = repo.findoutgoing(other, force=opts['force']) if not o: ui.status(_("no changes found\n")) return - o = repo.changelog.nodesbetween(o)[0] + o = repo.changelog.nodesbetween(o, revs)[0] if opts['newest_first']: o.reverse() displayer = show_changeset(ui, repo, opts) @@ -3022,11 +3028,13 @@ table = { ('n', 'newest-first', None, _('show newest record first')), ('', 'bundle', '', _('file to store the bundles into')), ('p', 'patch', None, _('show patch')), + ('r', 'rev', [], _('a specific revision you would like to pull')), ('', 'template', '', _('display with template')), ('e', 'ssh', '', _('specify ssh command to use')), ('', 'remotecmd', '', _('specify hg command to run on the remote side'))], - _('hg incoming [-p] [-n] [-M] [--bundle FILENAME] [SOURCE]')), + _('hg incoming [-p] [-n] [-M] [-r REV]...' + '[--bundle FILENAME] [SOURCE]')), "^init": (init, [], _('hg init [DEST]')), "locate": (locate, @@ -3064,12 +3072,13 @@ table = { _('run even when remote repository is unrelated')), ('p', 'patch', None, _('show patch')), ('', 'style', '', _('display using template map file')), + ('r', 'rev', [], _('a specific revision you would like to push')), ('n', 'newest-first', None, _('show newest record first')), ('', 'template', '', _('display with template')), ('e', 'ssh', '', _('specify ssh command to use')), ('', 'remotecmd', '', _('specify hg command to run on the remote side'))], - _('hg outgoing [-M] [-p] [-n] [DEST]')), + _('hg outgoing [-M] [-p] [-n] [-r REV]... [DEST]')), "^parents": (parents, [('b', 'branches', None, _('show branches')),