git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[GSoC] Proposal - Finishing network support for libgit2

From
MSMichael Schubert <schu@schu.io>
Date
Apr 6, 2012, 16:36 UTC
Message-ID
<4F7F1B86.10102@schu.io>

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.

Message 1 of 1 in “[GSoC] Proposal - Finishing network support for libgit2”
  1. Michael SchubertApr 6, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.