GSoC Project Ideas for 2014

Here are some ideas of possible 2014 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.

/!\ All potential GSoC candidates should visit our SummerOfCode/2014 page

1. Implement Consensus Merge

See ConsensusMerge. This project will require a candidate who's pre-demonstrated some ability with the merge code.

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:

5. Performance tuning

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

6. Improvement of the testing tool and testing annotation

Mercurial have very powerful testing tools. However as the amount of test grows bigger and bigger managing all those tests becomes hairy.

Every test-file usually holds multiple sections that each test a small set of features. If we had an official way to document and annotate those section the test-suite would be more easy to maintains. This project includes the following tasks:

7. obsolescence support in graphlog and hgweb

Recent version of Mercurial support the ChangesetEvolution feature. But neither log (including --graph) not hgweb show relation between precursors and successors changesets. The goal of this project is to add support to display information related to ChangesetEvolution those commands:

8. integrate in TortoiseHg tools to compare branches from different repos

Currently TortoiseHg can inspect only branches that belong to the same repository. For instance, it is not easy to tell at which changeset two branches have diverged, if those two are stored in two separate repos. Nonetheless it is not uncommon for a group of developers to wonder in what relation are their repositories/branches between each other. The version control system Bazaar have this feature, and it is very appealing: multiple branches are shown together in a single directed acyclic graph, possibly with multiple heads, no matter where the repository come from. This blog post gives an illustration of what a similar feature can look like:

This project aims to provide TortoiseHg with the aforementioned capability. This changeset provides already a possible starting point:

9. Other ideas?

Come talk to us on IRC.


SummerOfCode/Ideas2014 (last edited 2014-04-29 11:19:56 by gidyn)