# HG changeset patch # User Patrick Mezard # Date 2012-02-26 16:10:57 # Node ID 6863caf01daa754fc1fc9b2d6d769c6edc8d951c # Parent 112a70c56d6a3b4e22cd5b39cc148208642bb68a 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. diff --git a/hgext/graphlog.py b/hgext/graphlog.py --- a/hgext/graphlog.py +++ b/hgext/graphlog.py @@ -250,7 +250,6 @@ def revset(repo, pats, opts): '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 '), diff --git a/tests/test-glog.t b/tests/test-glog.t --- a/tests/test-glog.t +++ b/tests/test-glog.t @@ -1454,8 +1454,6 @@ glog always reorders nodes which explain ('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 @@ Test "set:..." and parent revision ('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