Differences between revisions 2 and 8 (spanning 6 versions)
Revision 2 as of 2012-02-28 14:20:50
Size: 898
Comment: Fill "Work in Progress"
Revision 8 as of 2012-11-06 23:07:02
Size: 2600
Editor: abuehl
Comment: fix category
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

<<Include(A:dev)>>
Line 5: Line 7:
A brief description.
Line 9: Line 9:
== Work in Progress == == Done ==
Line 11: Line 11:
With these submitted patch series, graphlog supports the same options than log command, and we can consider merging boths: With these submitted patches, graphlog supports the same options as log command, and we can consider merging boths:
Line 14: Line 14:

[[http://selenic.com/pipermail/mercurial-devel/2012-February/038269.html]]
Line 23: Line 25:
=== http://selenic.com/pipermail/mercurial-devel/2012-February/038322.html === === http://selenic.com/pipermail/mercurial-devel/2012-March/038869.html ===
Line 25: Line 27:
 * revset: add hidden() revset, undocumented
 * graphlog: support --hidden
[[http://selenic.com/pipermail/mercurial-devel/2012-March/038869.html]]

 * Improve --only-branch
 * Support old-style --rev

=== 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

=== 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.
Line 30: Line 50:
coming soon === log command ===

 1. Turn revset.match() into a generator. Otherwise the time to first byte with --limit queries is too large.
 1. Maybe invent something to handle multiple predicated like "--user foo --user bar" without scanning the changelog multiple times.
 1. Profit!

=== incoming/outgoing commands ===

 1. Decide what to do about --newest-first
 1. ? Look at hg._incoming()/_outgoing() (recurse in subrepos ?)

=== random improvements ===

 1. Improve the error message on --follow FILE --removed, [[http://mercurial.selenic.com/bts/issue2139|issue2139]]
 1. Document that "hg log 'set:added()'" is not the same than "hg log -r 'file("set:added()")'"
 1. Mention filesets in "hg help patterns" before the last line
 1. Display renames correctly with "hg log --follow file", see the second part of this [[http://selenic.com/pipermail/mercurial-devel/2012-February/038275.html|changelog]] for details
Line 33: Line 69:
CategoryAudit CategoryDeveloper

Note:

This page is primarily intended for developers of Mercurial.

Merging Graphlog in Core

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

  1. Turn revset.match() into a generator. Otherwise the time to first byte with --limit queries is too large.
  2. Maybe invent something to handle multiple predicated like "--user foo --user bar" without scanning the changelog multiple times.
  3. Profit!

2.2. incoming/outgoing commands

  1. Decide what to do about --newest-first
  2. ? Look at hg._incoming()/_outgoing() (recurse in subrepos ?)

2.3. random improvements

  1. Improve the error message on --follow FILE --removed, issue2139

  2. Document that "hg log 'set:added()'" is not the same than "hg log -r 'file("set:added()")'"
  3. Mention filesets in "hg help patterns" before the last line
  4. Display renames correctly with "hg log --follow file", see the second part of this changelog for details


CategoryDeveloper

MergingGraphlogInCorePlan (last edited 2012-11-06 23:07:02 by abuehl)