GSoC Student Guidance and Project Ideas for 2019

/!\ Please see also our SummerOfCode/2019 page, which contains additional information for GSoC for this year.

1. About Mercurial

2. Contacting the Mercurial developers

The following channels are used by default for communication. Please use them to introduce yourself!

If you don't have a persistent internet connection, it is advised to email the developer list instead of IRC because it may take time to get a reply.

3. Getting started/Candidate checklist

All candidates should do the following before completing their application:

  1. Check the SummerOfCode/Ideas2019 page

  2. Subscribe to this page to get email when it changes

  3. Introduce yourself on IRC

  4. Introduce yourself on the mailing list

  5. Read the ContributingChanges pages.

  6. Look at the easy bugs list and contribute a patch. Feel free to ask questions on IRC or the mailing list while getting started!

  7. Follow the steps to apply: check the application checklist and submit your application.

4. Things we look for in a candidate

5. GSoC ideas

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

5.1. Example Project

5.3. Add functionality to store an unresolved merge-state

5.3.1. Project description

Merge conflicts are painful. How about having a functionality where we can store an unresolved merge state? This will help us in doing other tasks if required at the moment in the same repository and also get back to the same merge state and resume resolving conflicts.

This project involves developing a functionality where an unresolved state can be stored in some way and can be restored in future. The commands which perform merge between two revisions like merge, graft, rebase, histedit, shelve can result in merge conflicts. For commands like rebase, histedit, we might need to store their state files too.

Also, pijul version control already does that. It let's you commit conflicts as conflicts and then you can solve them later or have someone else do that.

To get to this stage, following are the tasks which needs to be done in order:

Although this will take good amount of time but in-case this turns out be easier, other small tasks related to merge state and related things can be added.

5.3.2. Project properties

5.4. Implement continue and abort command

5.4.1. Project description

Commands like rebase, histedit, shelve etc. can lead to a conflicted state and requires user intervention. The user need to remember the original operation to continue or abort the operation. This project is about implementing generic hg continue and hg abort commands.

The implementation should have functionality for extensions to plug in their logic. For example, commands introduced by out of core extensions can use hg continue and hg abort functionality.

To get to this stage, following are the tasks which needs to be done in order:

Although this will take good amount of time but in-case this turns out be easier, other tasks like implementing hg update --abort and hg stop should we worked on.

5.4.2. Project properties

6. Other ideas?

There are more things on WeShouldDoThat which we will like someone to work on. You can pick an idea from there too.

Come talk to us on IRC.

CategoryGsoc CategoryGsoc

SummerOfCode/Ideas2019 (last edited 2019-05-14 11:14:03 by Pierre-YvesDavid)