From: Michael Schubert <schu@schu.io>
To: libgit2@librelist.org
Cc: git <git@vger.kernel.org>
Subject: [GSoC] Proposal - Finishing network support for libgit2
Date: Fri, 06 Apr 2012 18:36:22 +0200 [thread overview]
Message-ID: <4F7F1B86.10102@schu.io> (raw)
Finishing network support for libgit2
=====================================
Introduction
------------
So far, libgit2 supports fetching objects over http://, git:// and
file://. This year's GSoC task is to finish network support for
libgit2, namely
* fetch over ssh (including an API for SSH key management),
* support for packing objects (indispensable for push),
* push over http, git and ssh.
The existing network code is written in a modular manner and allows to
be reused (regarding socket handling for example).
Outline
-------
1. Fetch over SSH: Evaluate existing SSH libraries regarding their
usability (licence compliant, small, platform independent) with
libgit2. Implement a transport module for SSH.
1.1 SSH key managment API: Implement an easy-to-use API for the
management of SSH keys. Example: managed keys could be stored within
the object database, addressable through special purpose references
or config options.
2. Support for packing objects: fully implement (port, where possible)
the required code to create packs. This is expected to be both the most
challenging and time-consuming part.
3. Push over all four transports: Implement push for libgit2.
For all code parts, tests should be written.
Timeline
--------
04/24 - 04/30: Discuss implementation details with the mentor(s), finish
planning.
05/01 - 05/20: Implement first version of SSH transport and key
management, refactor existing network code for future use where needed.
05/21 - 05/31: Start working on the pack-objects part, read / discuss
pack details etc.
06/01 - 06/30: Implement pack-objects.
07/01 - 07/31: Implement push over all four transports.
08/01 - 08/13: Finish and polish code where needed, write more tests.
About me
--------
I study Computer Science at FU Berlin, besides I do a Git-related part
time job for a SCM company. As a regular contributor to libgit2 , I'm
rather familiar with the community and the bigger part of the code
base. GSoC would allow me to both gain experience with "Git's network
stack" and to add an important yet missing core part to libgit2. This
is the first time I apply for GSoC.
reply other threads:[~2012-04-06 16:38 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F7F1B86.10102@schu.io \
--to=schu@schu.io \
--cc=git@vger.kernel.org \
--cc=libgit2@librelist.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).