pulkit created this revision.
Herald added a reviewer: durin42.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Recently we introduced narrow capabilities for the server. So we can check
  whether a server has narrow clone support or not before doing anything. This 
is
  BC because new clients won't be able to extend from old narrow-enabled 
servers.
  I *think* narrow is not used much (maybe just inside Google), also it's
  experimental so I think we can change this. We will need to this someday 
anyway.
  
  The "doesn't" in error is changed to "does not" because I think that's we do 
in
  core and also thats what I typed while writing the error message.
  I am fine with that being dropped too.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4789

AFFECTED FILES
  hgext/narrow/narrowcommands.py
  tests/test-narrow-clone-non-narrow-server.t

CHANGE DETAILS

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
@@ -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/hgext/narrow/narrowcommands.py b/hgext/narrow/narrowcommands.py
--- a/hgext/narrow/narrowcommands.py
+++ b/hgext/narrow/narrowcommands.py
@@ -407,6 +407,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 narrowwirepeer.NARROWCAP not in remote.capabilities():
+            raise error.Abort(_("server does not support narrow clones"))
+
         commoninc = discovery.findcommonincoming(repo, remote)
 
         oldincludes, oldexcludes = repo.narrowpats



To: pulkit, durin42, #hg-reviewers
Cc: mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to