[PATCH] context.status: restrict reversed deleted/unknown/ignored fields even more
Martin von Zweigbergk
martinvonz at google.com
Fri Nov 14 17:00:00 CST 2014
# HG changeset patch
# User Martin von Zweigbergk <martinvonz at google.com>
# Date 1416005592 28800
# Fri Nov 14 14:53:12 2014 -0800
# Node ID c43495015e452cba1223fadf2958b4d1f00898fa
# Parent dd3f857598a0625305b106323544df425efeaf84
context.status: restrict reversed deleted/unknown/ignored fields even more
In c10dc5568069 (context.status: wipe deleted/unknown/ignored fields
when reversed, 2014-11-12), we set these fields to []. Let's take it
one step further and set them to None so we prevent iteration over
them and make any confused callers fail fast.
diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -306,9 +306,9 @@
listunknown)
if reversed:
- # Reverse added and removed. Clear deleted, unknown and ignored as
- # these make no sense to reverse.
- r = scmutil.status(r.modified, r.removed, r.added, [], [], [],
+ # Reverse added and removed. Deleted, unknown and ignored make no
+ # sense to reverse; use None to prevent users from iterating..
+ r = scmutil.status(r.modified, r.removed, r.added, None, None, None,
r.clean)
if listsubrepos:
@@ -326,7 +326,8 @@
"subrepository: %s\n") % subpath)
for l in r:
- l.sort()
+ if l is not None:
+ l.sort()
return r
diff --git a/tests/test-context.py.out b/tests/test-context.py.out
--- a/tests/test-context.py.out
+++ b/tests/test-context.py.out
@@ -2,7 +2,7 @@
ASCII : Gr?ezi!
Latin-1 : Grüezi!
UTF-8 : Grüezi!
-<status modified=['foo'], added=[], removed=[], deleted=[], unknown=[], ignored=[], clean=[]>
+<status modified=['foo'], added=[], removed=[], deleted=None, unknown=None, ignored=None, clean=[]>
diff --git a/foo b/foo
--- a/foo
More information about the Mercurial-devel
mailing list