The goal of this project is to increase the functionality of Darcsden. Darcsden is an open source repository hosting platform for darcs, written in Haskell. The main features are authentication from Github/OpenID, Password Recovery, Editing repository files online, and Comparison between a repository and its forks.

Many open source projects expect a good hosting platform for the VCS they pick. Darcsden is a repository hosting platform for darcs, hosted at darcs.net. However, it is missing many of the features that some of the more sophisticated platforms offer. This project would hopefully increase the attractiveness of using darcs as a vcs.

Change password: Give user the option to change password by sending email to the user to reset their password. This is one of the most requested features for darcs hub.

File edit: File edit: Add an option to edit a file on the repository through the web, and then record the changes. This is especially useful for quick or casual edits. This feature mirrors github’s Online Editing feature.

Comparing a repository with one of its forks: Show how many patches each of the fork is ahead/behind by wrt the repository, and a further option to display the patches by which the repositories differ. Darcs has an inbuilt function, which finds the uncommon patches between the patch sets of two repositories. This is useful for identifying the relationship between the two repositories. This feature mirrors github’s analyze branches feature.

These are the nice to have features:

Packs support: Give options to create/remove packs. Packs lead to faster repository get for large repos. One of the problems with packs is that if n patches are applied onto the repository after packs was built, then during get all those patches are then applied to the pack, which makes get slower. Hence, packs has to be synchronized with the repository every so often. Ideally darcsden would do this automatically.

Patch bundles: Lets users upload patches to a repository, which the repository owner can then decide to apply or reject. The bundles could also be received using darcs send. darcs send supports sending to http urls via post, and thus darcsden also can recive patches this way. This feature is an equivalent for github’s pull requests. Patch bundles simplifies the process of sending, and applying patches to a repository.

Changes and Annotate on files: Give options to view changes and annotate of a file. Changes and annotate are basic features of darcs, and thus darcsden can support them. This feature is in the equivalent of changes and blame view in Github.

Website hosting, with hakyll support: If the repository has hakyll code, generate and host the website. This feature is in lieu of github pages.

I am a final year Bachelors student, enthusiastic about Haskell. I have previous participated in GSoC last year under Haskell organization for darcs. I use darcs as my main vcs, and love contributing to it.