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

Re: Compatibility between git.git and jgit

From
EWEaldwulf Wuffinga <ealdwulf@googlemail.com>
Date
May 2, 2009, 16:56 UTC
Message-ID
<efe2b6d70905020956p3c99a5fbib85ba00ba842a08e@mail.gmail.com>
In-Reply-To
<alpine.LFD.2.00.0905012032590.6741@xanadu.home>
On Sat, May 2, 2009 at 2:39 AM, Nicolas Pitre <nico@cam.org> wrote:
Show 6 quoted lines
>
> A formal compatibility test suite would imply that every Git
> reimplementation should be compatible with the reference C version.
> You could add some tests in your test suite which are performed in
> parallel using JGit and the C git, and make sure that the produced
> results are identical, etc.
 If at all possible, it would be a good idea to make it trivial for
new tests in the usual
git testsuite to be compatability tests (in a special mode, since it
would probably slow them down drastically). Ie, we have special
separate copy of all the git.git executables, which
underneath run two different versions of git and check that they did
the same thing.
Or alternatively wait for the librarification of git.git to complete,
and do it at the level of that API.

This may be hideously slow unless you have some kind of snapshotting filesystem underneath. (Ironically the one that springs to mind is built into vesta, another scm: http://www.vestasys.org. Vesta's filesystem-manipulation language would be ideal for this. Maybe you could copy it; it's LGPL).

It's less obvious how networking related tests could be automatically made into compatability tests.

Doing this would be a lot trickier than writing some new conformance tests, but once it was working, it would be a lot easier to keep track of new features. It may be too tricky to get to work, but it strikes me as worth thinking about.

Ealdwulf
Previous: Shawn O. PearceNext: Michael Witten
Message 12 of 16 in “Weird growth in packfile during initial push”
  1. Robin H. JohnsonApr 15, 2009
  2. Nicolas PitreApr 15, 2009
  3. Junio C HamanoApr 29, 2009
  4. Nicolas PitreApr 30, 2009
  5. Robin H. JohnsonMay 1, 2009
  6. allow OFS_DELTA objects during a pushNicolas Pitre, May 1, 2009
  7. Junio C HamanoMay 1, 2009
  8. Compatibility between git.git and jgitShawn O. Pearce, May 2, 2009
  9. A Large Angry SCMMay 2, 2009
  10. Nicolas PitreMay 2, 2009
  11. Shawn O. PearceMay 2, 2009
  12. Ealdwulf WuffingaMay 2, 2009
  13. Michael WittenMay 2, 2009
  14. Nicolas PitreMay 2, 2009
  15. Shawn O. PearceMay 4, 2009
  16. Shawn O. PearceMay 4, 2009

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.