4921 ), |
4921 ), |
4922 ] |
4922 ] |
4923 + logopts |
4923 + logopts |
4924 + remoteopts |
4924 + remoteopts |
4925 + subrepoopts, |
4925 + subrepoopts, |
4926 _(b'[-M] [-p] [-n] [-f] [-r REV]... [DEST]'), |
4926 _(b'[-M] [-p] [-n] [-f] [-r REV]... [DEST]...'), |
4927 helpcategory=command.CATEGORY_REMOTE_REPO_MANAGEMENT, |
4927 helpcategory=command.CATEGORY_REMOTE_REPO_MANAGEMENT, |
4928 ) |
4928 ) |
4929 def outgoing(ui, repo, dest=None, **opts): |
4929 def outgoing(ui, repo, *dests, **opts): |
4930 """show changesets not found in the destination |
4930 """show changesets not found in the destination |
4931 |
4931 |
4932 Show changesets not found in the specified destination repository |
4932 Show changesets not found in the specified destination repository |
4933 or the default push location. These are the changesets that would |
4933 or the default push location. These are the changesets that would |
4934 be pushed if a push was requested. |
4934 be pushed if a push was requested. |
4960 existing only in the remote repository are treated as |
4960 existing only in the remote repository are treated as |
4961 ``deleted``, even if it is in fact added remotely. |
4961 ``deleted``, even if it is in fact added remotely. |
4962 |
4962 |
4963 Returns 0 if there are outgoing changes, 1 otherwise. |
4963 Returns 0 if there are outgoing changes, 1 otherwise. |
4964 """ |
4964 """ |
4965 # hg._outgoing() needs to re-resolve the path in order to handle #branch |
|
4966 # style URLs, so don't overwrite dest. |
|
4967 path = ui.getpath(dest, default=(b'default-push', b'default')) |
|
4968 if not path: |
|
4969 raise error.ConfigError( |
|
4970 _(b'default repository not configured!'), |
|
4971 hint=_(b"see 'hg help config.paths'"), |
|
4972 ) |
|
4973 |
|
4974 opts = pycompat.byteskwargs(opts) |
4965 opts = pycompat.byteskwargs(opts) |
4975 if opts.get(b'bookmarks'): |
4966 if opts.get(b'bookmarks'): |
4976 dest = path.pushloc or path.loc |
4967 for path in urlutil.get_push_paths(repo, ui, dests): |
4977 other = hg.peer(repo, opts, dest) |
4968 dest = path.pushloc or path.loc |
4978 try: |
4969 other = hg.peer(repo, opts, dest) |
4979 if b'bookmarks' not in other.listkeys(b'namespaces'): |
4970 try: |
4980 ui.warn(_(b"remote doesn't support bookmarks\n")) |
4971 if b'bookmarks' not in other.listkeys(b'namespaces'): |
4981 return 0 |
4972 ui.warn(_(b"remote doesn't support bookmarks\n")) |
4982 ui.status(_(b'comparing with %s\n') % urlutil.hidepassword(dest)) |
4973 return 0 |
4983 ui.pager(b'outgoing') |
4974 ui.status( |
4984 return bookmarks.outgoing(ui, repo, other) |
4975 _(b'comparing with %s\n') % urlutil.hidepassword(dest) |
4985 finally: |
4976 ) |
4986 other.close() |
4977 ui.pager(b'outgoing') |
4987 |
4978 return bookmarks.outgoing(ui, repo, other) |
4988 return hg.outgoing(ui, repo, dest, opts) |
4979 finally: |
|
4980 other.close() |
|
4981 |
|
4982 return hg.outgoing(ui, repo, dests, opts) |
4989 |
4983 |
4990 |
4984 |
4991 @command( |
4985 @command( |
4992 b'parents', |
4986 b'parents', |
4993 [ |
4987 [ |