Note:
This page is primarily intended for developers of Mercurial.
Merging Graphlog in Core
Contents
1. Done
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-March/038869.html
http://selenic.com/pipermail/mercurial-devel/2012-March/038869.html
- Improve --only-branch
- Support old-style --rev
1.3. http://selenic.com/pipermail/mercurial-devel/2012-April/039148.html
http://selenic.com/pipermail/mercurial-devel/2012-April/039148.html
- Refactor graphlog.revset() to return revisions
- Fix --follow/--follow-first again
- Fix --branch lookup
- Fix calls in subdirectories
- Fix performance regression related to the order of evaluation of changesets in revsets
1.4. Mercurial 2.3
- Implement --hidden. At this point, the revset version is feature complete and pass all tests.
- Move graphlog code in core, add default support for log --graph, leave almost empty graphlog extension.
- Support outgoing/incoming --graphlog by default.
2. To Do
2.1. log command
- Turn revset.match() into a generator. Otherwise the time to first byte with --limit queries is too large.
- Maybe invent something to handle multiple predicated like "--user foo --user bar" without scanning the changelog multiple times.
- 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