From mboxrd@z Thu Jan 1 00:00:00 1970
From: Thomas Rast
Subject: Re: Git GSoC 2014
Date: Thu, 13 Feb 2014 22:45:01 +0100
Message-ID: <87bnya8z6q.fsf@thomasrast.ch>
References: <20140213091037.GA28927@sigill.intra.peff.net>
Mime-Version: 1.0
Content-Type: text/plain
Cc: git@vger.kernel.org, Shawn Pearce
To: Jeff King
X-From: git-owner@vger.kernel.org Thu Feb 13 22:45:24 2014
Return-path:
Envelope-to: gcvg-git-2@plane.gmane.org
Received: from vger.kernel.org ([209.132.180.67])
by plane.gmane.org with esmtp (Exim 4.69)
(envelope-from )
id 1WE45z-0003T7-HD
for gcvg-git-2@plane.gmane.org; Thu, 13 Feb 2014 22:45:23 +0100
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1751695AbaBMVpQ (ORCPT );
Thu, 13 Feb 2014 16:45:16 -0500
Received: from ip1.thgersdorf.net ([148.251.9.194]:44822 "EHLO mail.psioc.net"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751552AbaBMVpP (ORCPT );
Thu, 13 Feb 2014 16:45:15 -0500
Received: from localhost (localhost [127.0.0.1])
by localhost.psioc.net (Postfix) with ESMTP id B59544D6579;
Thu, 13 Feb 2014 22:45:12 +0100 (CET)
X-Virus-Scanned: amavisd-new at psioc.net
Received: from mail.psioc.net ([127.0.0.1])
by localhost (mail.psioc.net [127.0.0.1]) (amavisd-new, port 10024)
with LMTP id ucrxYEaTSVq3; Thu, 13 Feb 2014 22:45:02 +0100 (CET)
Received: from linux-1gf2.thomasrast.ch (46-126-8-85.dynamic.hispeed.ch [46.126.8.85])
(using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits))
(Client did not present a certificate)
by mail.psioc.net (Postfix) with ESMTPSA id 9E7E44D64BD;
Thu, 13 Feb 2014 22:45:02 +0100 (CET)
In-Reply-To: <20140213091037.GA28927@sigill.intra.peff.net> (Jeff King's
message of "Thu, 13 Feb 2014 04:10:37 -0500")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)
Sender: git-owner@vger.kernel.org
Precedence: bulk
List-ID:
X-Mailing-List: git@vger.kernel.org
Archived-At:
Jeff King writes:
> - somebody to be the backup admin (I am assuming I'll be the primary
> admin, but as always, if somebody else wants to...)
I can be backup, if Shawn doesn't want it.
> - ideas ideas ideas
Here's my moonshot:
--- 8< ---
Replace object loading/writing layer by libgit2
Git reads objects from storage (loose and packed) through functions in
sha1_file.c. Most commands only require very simple, opaque read and
write access to the object storage. As a weatherballoon, show that it
is feasible to use libgit2 git_odb_* routines for these simple callers.
Aim for passing the git test suite using git_odb_* object storage
access, except for tests that verify behavior in the face of storage
corruption, replacement objects, alternate storage locations, and
similar quirks. Of course it is even better if you pass the test suite
without exception.
Language: C
Difficulty: hard
Possible mentors: Thomas Rast and
--- >8 ---
That absolutely requires a co-mentor from the libgit2 side to do,
however. Perhaps you could talk someone into it? ;-)
Motivation: I believe that migrating to libgit2 is the better approach,
medium term, than rewriting everything ourselves to be nice, clean and
thread-safe. I took a shot a while ago at making the pack reading code
thread-safe, but it's adding mess when we could simply replace it all by
the already thread-safe libgit2 calls. It also helps shake out
incompatibilities in libgit2.
Downside: not listing "code merged" as a goal may not make the project
as shiny, neither for Git nor for the student.
--
Thomas Rast
tr@thomasrast.ch