I have some interesting ideas for GSoC, but unfortunately none (with perhaps single exception) that I could mentor. So I think I'd list them here for now, and later I'd add it to SoC2008Ideas page.
Here they are.
First, a few ideas which got partially implemented already, or are implemented and need improvements. I don't know if current contributors would want to be mentors, or would they want to submit their work under GSoC as participants.
* Lazy clone / remote alternates
The idea here is to be able to remotely access objects from a network
based object server, as neededm rather than having them all local.
Goal: A working lazy clone prototype implementation that could be
considered for inclusion, in a nice series of commits (separate
branch/fork)
Language: C
Suggested mentor: Jan Holesovsky, who submitted proof-of-concept
patch for lazy clone
* Partial (subtree) checkout, or its generalization: sparse checkout
The idea is to checkout for example only Documentation subdirectory,
work on it, but commit full tree. Some workflows may be better suited
to this type of usage than using submodules. Optionally should include
partial clone (not needed objects not in repository).
Goal: A working partial checkout prototype implementation, with
technical documentation.
Language: C
Suggested mentors:
gitzilla (sent proposal),
Nguyen Thai Ngoc Duy (pclouds), proposed to implements it* Gitweb caching
Implementing very smart caching in gitweb, to avoid the thundering
herd problem on kernel.org whenever a repository gets updated, or at
least support for caching engines in the form of generating proper
Last-Modified: and ETag: headers, and responding to If-Modified-Since:
and If-None-Match: requests, cheaply.
Perhaps becoming the gitweb maintainer could come of it, or at least
the gitweb admin for kernel.org (sorely needed).
Goal: At minimum, port kernel.org's caching to mainline (git's) gitweb
Language: Perl, HTML, perhaps JavaScript
Suggested mentors:
John 'Warthog9' Hawley (wrote caching for kernel.org's gitweb)
Petr Baudis (repo.or.cz admin)
Lars Hjemli (cgit author, git web interface in C, with caching)
Jakub Narebski (gitweb contributor)Then, a few ideas which were proposed for GSoC 2007, but never implemented, and wasn't mentioned in this thread or on wiki for GSoC 2008 yet
* Git / Subversion Interoperability
The idea here is implement something in Git that speaks the Subversion
protocol on the wire, but uses Git as the backend storage. (This would
be like the existing git-cvsserver.)
There are two potential approaches:
1. git-svnserver
2. write a backend for Subversion
Goal: To be able to access git repository, at minimum read-only, from
a Subversion client, at least svn CLI.
Language: Open for proposal.
Suggested mentors:
Eric Wong (git-svn author)
Matthias Urlichs (git-svnimport author)
Notes: I don't think we could pass it as Subversion SoC project, but
I guess that we could ask for co-mentor for the Subversion protocol,
or Subversion backend part of this task.I'd send other ideas (including new ones, like translating svn:externals into git submodules in git-svn; or making git mode for Emacs have all features of tig, git-gui and gitk; or improving shallow clone support) in a later post.