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

Re: Git GSoC 2014

From
David Kastrup <dak@gnu.org>
Date
Feb 14, 2014, 09:44 UTC
Message-ID
<87d2iq58qk.fsf@fencepost.gnu.org>
In-Reply-To
<87bnya8z6q.fsf@thomasrast.ch>
Thomas Rast <tr@thomasrast.ch> writes:
Show 15 quoted lines
> 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.
[...]
Show 9 quoted lines
> 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.

That would either require forking libgit2 for Git use or stop dead any contributions to that rather central part of the git codebase from contributors not wanting their contributions to get reused in binary proprietary software.

It would also mean that no serious forward-going work (like developing new packing formats or network protocols) can be done on a pure GPLv2 codebase any more. So anybody insisting on contributing work under the current Git license only would be locked out from working on significant parts of Git and could no longer propose changes in central parts.

Now this can all be repealed by the "developing the atomic bomb does not mean that one has to use it" argument but even if one does not use it, the world with and without it are different worlds and occupy mindshare and suggest "solutions" and "diplomacy" involving it.

So this is definitely a large step towards a situation where erosion of the existing license and related parts of the community becomes more attractive.

There is the rationale "we can always say "no" at the end". How do you explain this "no" to the student who invested significant amounts of work into this, in a project proposed by the Git developers?

This definitely should not be "we'll think about it if and when that project is finished" material.

-- 
David Kastrup
Previous: Thomas RastNext: Thomas Rast
Message 5 of 15 in “Git GSoC 2014”
  1. Jeff KingFeb 13, 2014
  2. Thomas RastFeb 13, 2014
  3. Junio C HamanoFeb 13, 2014
  4. Thomas RastFeb 14, 2014
  5. David KastrupFeb 14, 2014
  6. Thomas RastFeb 15, 2014
  7. Duy NguyenFeb 15, 2014
  8. David KastrupFeb 15, 2014
  9. Shawn PearceFeb 15, 2014
  10. Vicent MartíFeb 14, 2014
  11. Ramkumar RamachandraFeb 13, 2014
  12. Jeff KingFeb 14, 2014
  13. Ramkumar RamachandraFeb 14, 2014
  14. Jeff KingFeb 14, 2014
  15. Jeff KingFeb 14, 2014

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.