Merging Graphlog in Core
Contents
1. Work in Progress
With these submitted patches, graphlog supports the same options as log command, and we can consider merging boths:
1.1. http://selenic.com/pipermail/mercurial-devel/2012-February/038269.html
http://selenic.com/pipermail/mercurial-devel/2012-February/038269.html
- graphlog: implement --copies
- graphlog: evaluate FILE/-I/-X filesets on the working dir
- match: consider filesets as "anypats"
- test-glog: rewrite more tests using testlog() function
- graphlog: fix --removed
- context: add followfirst arg to filectx and workingfilectx
- graphlog: apply file filters --patch/--stat output
1.2. http://selenic.com/pipermail/mercurial-devel/2012-February/038322.html
http://selenic.com/pipermail/mercurial-devel/2012-February/038322.html
- revset: add hidden() revset, undocumented
- graphlog: support --hidden
2. To Do
2.1. log command
- Make "pats" unique after their expansion if they are not already. They are used to generate follow()/file() expressions in the fast path
- Check escaping/injection issues. We already have a test for --branch and I am not sure there are more issues with regular options, but we certainly want to parse the --rev expressions before adding them to the synthetic revset (like revset.formatspec() does).
- Replace commands.log() and cmdutil.walkchangerevs() with graphlog.graphlog(). Run the tests and see what was missed. Make it feature complete.
- Profile the revsets. Most of them are single functions. There are 2 or 3 "not something()" and --prune is a bit more complicated. Note sure there is much to do except tweak the expression weights.
- Think a bit about killing hgext/graphlog.py, compatibility and perhaps leaving stubs here.
- Profit!
2.2. incoming/outgoing commands
- Decide what to do about --newest-first
- ? Look at hg._incoming()/_outgoing() (recurse in subrepos ?)
2.3. random improvements
Improve the error message on --follow FILE --removed, issue2139
- Document that "hg log 'set:added()'" is not the same than "hg log -r 'file("set:added()")'"
- Mention filesets in "hg help patterns" before the last line
Display renames correctly with "hg log --follow file", see the second part of this changelog for details