changeset 16184:6863caf01daa

graphlog: fix --removed "hg log --removed FILE" does not return changesets where FILE was removed, but ones where FILE was changed and possibly removed. The flag is really here to disable walkchangerevs() fast path, which cannot see file removals by scanning filelogs.
author Patrick Mezard <patrick@mezard.eu>
date Sun, 26 Feb 2012 17:10:57 +0100
parents 112a70c56d6a
children 352053e6cd8e
files hgext/graphlog.py tests/test-glog.t
diffstat 2 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/graphlog.py	Sun Feb 26 17:10:56 2012 +0100
+++ b/hgext/graphlog.py	Sun Feb 26 17:10:57 2012 +0100
@@ -250,7 +250,6 @@
         'follow_first':     ('_followfirst()', None),
         'no_merges':        ('not merge()', None),
         'only_merges':      ('merge()', None),
-        'removed':          ('removes("*")', None),
         'date':             ('date(%(val)r)', None),
         'branch':           ('branch(%(val)r)', ' or '),
         '_patslog':         ('filelog(%(val)r)', ' or '),
--- a/tests/test-glog.t	Sun Feb 26 17:10:56 2012 +0100
+++ b/tests/test-glog.t	Sun Feb 26 17:10:57 2012 +0100
@@ -1454,8 +1454,6 @@
   ('group', ('group', ('or', ('or', ('func', ('symbol', 'branch'), ('string', 'default')), ('func', ('symbol', 'branch'), ('string', 'branch'))), ('func', ('symbol', 'branch'), ('string', 'branch')))))
   $ testlog -k expand -k merge
   ('group', ('group', ('or', ('func', ('symbol', 'keyword'), ('string', 'expand')), ('func', ('symbol', 'keyword'), ('string', 'merge')))))
-  $ hg log -G --removed --template 'nodetag {rev}\n' | grep nodetag | wc -l
-  \s*0 (re)
   $ testlog --only-merges
   ('group', ('func', ('symbol', 'merge'), None))
   $ testlog --no-merges
@@ -1646,3 +1644,14 @@
   ('group', ('group', ('func', ('symbol', '_matchfiles'), ('list', ('string', 'r:'), ('string', 'i:set:copied()')))))
   $ testlog -r "sort(file('set:copied()'), -rev)"
   ('group', ('group', ('func', ('symbol', 'sort'), ('list', ('func', ('symbol', 'file'), ('string', 'set:copied()')), ('negate', ('symbol', 'rev'))))))
+
+Test --removed
+
+  $ testlog --removed
+  ('func', ('symbol', 'all'), None)
+  $ testlog --removed a
+  ('group', ('group', ('func', ('symbol', '_matchfiles'), ('list', ('string', 'r:'), ('string', 'p:a')))))
+  $ testlog --removed --follow a
+  abort: can only follow copies/renames for explicit filenames
+  abort: can only follow copies/renames for explicit filenames
+  abort: can only follow copies/renames for explicit filenames