diff -r ef1032c223e7 -r 6ca49c5fe268 mercurial/commands.py --- a/mercurial/commands.py Sat Sep 09 18:25:06 2006 -0700 +++ b/mercurial/commands.py Sat Sep 09 18:25:07 2006 -0700 @@ -2105,10 +2105,12 @@ other = hg.repository(ui, source) ui.status(_('pulling from %s\n') % (source)) revs = None - if opts['rev'] and not other.local(): - raise util.Abort(_("pull -r doesn't work for remote repositories yet")) - elif opts['rev']: - revs = [other.lookup(rev) for rev in opts['rev']] + if opts['rev']: + if 'lookup' in other.capabilities: + revs = [other.lookup(rev) for rev in opts['rev']] + else: + error = _("Other repository doesn't support revision lookup, so a rev cannot be specified.") + raise util.Abort(error) modheads = repo.pull(other, heads=revs, force=opts['force']) return postincoming(ui, repo, modheads, opts['update'])