Differences between revisions 11 and 12
Revision 11 as of 2013-03-19 18:12:39
Size: 2355
Editor: mpm
Comment:
Revision 12 as of 2013-03-19 18:15:48
Size: 2772
Editor: mpm
Comment:
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:

== Advanced revset optimization ==

[[topic:Revsets]] are a powerful built-in query language for looking at changesets. We even have an optimizing engine to reorder queries for performance. But there are several areas where things could be improved:

 * incremental, generator-style evaluation
 * cache/avoid repeated evaluation of common subexpressions
 * efficient handling of very large contiguous ranges

GSoC Project Ideas for 2013

Here are some ideas of possible 2013 summer project ideas for Mercurial. Your own ideas are welcome. You may decide to work on these ideas or use them as a starting point for your own. Either way, come talk to us in #mercurial in Freenode or on the mercurial-devel@selenic.com mailing list.

1. Advanced revset optimization

topic:Revsets are a powerful built-in query language for looking at changesets. We even have an optimizing engine to reorder queries for performance. But there are several areas where things could be improved:

  • incremental, generator-style evaluation
  • cache/avoid repeated evaluation of common subexpressions
  • efficient handling of very large contiguous ranges

2. Unicode filename support on Windows

While Mercurial users on Linux and Mac can happily exchange repositories with filenames in Unicode and even legacy encodings, Windows presents some extra challenges for using non-ASCII filenames portably. We'd like to address this by introducing an automatic UTF-8 translation layer on Windows systems.

See WindowsUTF8Plan

3. Generic templating support

Mercurial has a powerful templating engine, but on the command line it's only available for log-like commands. We'd like to extend its power and flexibility to the rest of Mercurial's command-line interface, in addition to adding built-in support for standard formats like XML, JSON, etc.

See GenericTemplatingPlan

4. Improved built-in help

Mercurial's built-in help is quite good, but could be better. Here are some things that could be done:

  • improve crosslinking between help topics
  • migrate remaining contents from manpages into built-in help
  • add example usage to verbose sections in help
  • improve the glossary

5. Advanced Hgweb support

Our web interface is very handy, but there are a number of features that could be improved:

  • Add functions and conditionals to the templating language
  • Add basic AJAX functionality to make history browsing more dynamic
  • Add some basic web admin functionality

6. Performance tuning

Mercurial is fast but could always be faster. Possible areas include:

  • Optimizing startup performance
  • Optimizing performance on Windows

7. C implementation of command server API

See CommandServer.

8. Improvement of record API and User Interface

To be expended

9. Improvement of the testing tool and testing annotation

To be expended

10. obsolescence support in graphlog and hgweb

Thiis about displaying relation from ChangesetEvolution in graphlog (to be expended)

11. Other ideas?

Come talk to us on IRC.


CategoryGsoc

SummerOfCode/Ideas2013 (last edited 2013-04-15 22:31:05 by Pierre-YvesDavid)