diff --git a/hgext/narrow/narrowcommands.py b/hgext/narrow/narrowcommands.py --- a/hgext/narrow/narrowcommands.py +++ b/hgext/narrow/narrowcommands.py @@ -134,7 +134,7 @@ return orig(pullop, kwargs) if wireprotoserver.NARROWCAP not in pullop.remote.capabilities(): - raise error.Abort(_("server doesn't support narrow clones")) + raise error.Abort(_("server does not support narrow clones")) orig(pullop, kwargs) kwargs['narrow'] = True include, exclude = repo.narrowpats @@ -408,6 +408,13 @@ url, branches = hg.parseurl(remotepath) ui.status(_('comparing with %s\n') % util.hidepassword(url)) remote = hg.peer(repo, opts, url) + + # check narrow support before doing anything if widening needs to be + # performed. In future we should also abort if client is ellipses and + # server does not support ellipses + if widening and wireprotoserver.NARROWCAP not in remote.capabilities(): + raise error.Abort(_("server does not support narrow clones")) + commoninc = discovery.findcommonincoming(repo, remote) oldincludes, oldexcludes = repo.narrowpats diff --git a/tests/test-narrow-clone-non-narrow-server.t b/tests/test-narrow-clone-non-narrow-server.t --- a/tests/test-narrow-clone-non-narrow-server.t +++ b/tests/test-narrow-clone-non-narrow-server.t @@ -39,7 +39,7 @@ $ hg clone --narrow --include f1 http://localhost:$HGPORT1/ narrowclone requesting all changes - abort: server doesn't support narrow clones + abort: server does not support narrow clones [255] Make a narrow clone (via HGPORT2), then try to narrow and widen @@ -60,7 +60,5 @@ looking for local changes to affected paths $ hg tracked --addinclude f1 http://localhost:$HGPORT1/ comparing with http://localhost:$HGPORT1/ - searching for changes - no changes found - abort: server doesn't support narrow clones + abort: server does not support narrow clones [255] diff --git a/tests/test-narrow-clone.t b/tests/test-narrow-clone.t --- a/tests/test-narrow-clone.t +++ b/tests/test-narrow-clone.t @@ -65,7 +65,7 @@ $ hg clone --narrow master narrow-via-localpeer --noupdate --include "dir/src/f10" requesting all changes - abort: server doesn't support narrow clones + abort: server does not support narrow clones [255] $ hg tracked -R narrow-via-localpeer abort: repository narrow-via-localpeer not found!