D5183: narrow: rework logic to check whether we need to widen and narrow
pulkit (Pulkit Goyal)
phabricator at mercurial-scm.org
Tue Oct 23 16:07:43 UTC 2018
pulkit updated this revision to Diff 12325.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D5183?vs=12321&id=12325
REVISION DETAIL
https://phab.mercurial-scm.org/D5183
AFFECTED FILES
hgext/narrow/narrowcommands.py
tests/test-narrow-clone-non-narrow-server.t
tests/test-narrow-widen-no-ellipsis.t
CHANGE DETAILS
diff --git a/tests/test-narrow-widen-no-ellipsis.t b/tests/test-narrow-widen-no-ellipsis.t
--- a/tests/test-narrow-widen-no-ellipsis.t
+++ b/tests/test-narrow-widen-no-ellipsis.t
@@ -144,12 +144,7 @@
wireprotocol command
$ hg tracked --addinclude widest/f
- comparing with ssh://user@dummy/master
- searching for changes
- adding changesets
- adding manifests
- adding file changes
- added 0 changesets with 0 changes to 0 files
+ nothing to widen or narrow
Pull down the newly added upstream revision.
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
@@ -58,7 +58,11 @@
comparing with http://localhost:$HGPORT1/
searching for changes
looking for local changes to affected paths
+
$ hg tracked --addinclude f1 http://localhost:$HGPORT1/
+ nothing to widen or narrow
+
+ $ hg tracked --addinclude f9 http://localhost:$HGPORT1/
comparing with http://localhost:$HGPORT1/
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
@@ -392,9 +392,21 @@
removedincludes = narrowspec.parsepatterns(opts['removeinclude'])
addedexcludes = narrowspec.parsepatterns(opts['addexclude'])
removedexcludes = narrowspec.parsepatterns(opts['removeexclude'])
+
+ only_show = not (addedincludes or removedincludes or addedexcludes or
+ removedexcludes or newrules)
+
+ oldincludes, oldexcludes = repo.narrowpats
+
+ # filter the user passed additions and deletions into actual additions and
+ # deletions of excludes and includes
+ addedincludes = set([i for i in addedincludes if i not in oldincludes])
+ removedincludes = set([i for i in removedincludes if i in oldincludes])
+ addedexcludes = set([i for i in addedexcludes if i not in oldexcludes])
+ removedexcludes = set([i for i in removedexcludes if i in oldexcludes])
+
widening = addedincludes or removedexcludes
narrowing = removedincludes or addedexcludes
- only_show = not widening and not narrowing
# Only print the current narrowspec.
if only_show:
@@ -413,6 +425,10 @@
fm.end()
return 0
+ if not widening and not narrowing:
+ ui.status(_("nothing to widen or narrow\n"))
+ return 0
+
with repo.wlock(), repo.lock():
cmdutil.bailifchanged(repo)
@@ -432,7 +448,6 @@
commoninc = discovery.findcommonincoming(repo, remote)
- oldincludes, oldexcludes = repo.narrowpats
if narrowing:
newincludes = oldincludes - removedincludes
newexcludes = oldexcludes | addedexcludes
To: pulkit, durin42, martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list