From: Noel Grandin <noel@peralex.com>
To: jon@blackcubes.dyndns.org
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: Core and Not-So Core
Date: Wed, 11 May 2005 13:21:25 +0200 [thread overview]
Message-ID: <4281EAB5.3020006@peralex.com> (raw)
In-Reply-To: <2cfc40320505100800426d38ca@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3510 bytes --]
Hi
Note that eclipse in particular has a fairly complicated repository
provider interface.
The subversion plugin developers (the subclipse project) took quite a
while to implement their stuff.
Basing your stuff off of their code would be a good idea.
Also, they worked in 2 stages - in the first stage, they created
something called the JavaHL interface, behind which they talked to the
subversion C libraries using JNI.
Then they created a pure-java implemenation of the subversion C
libraries which also implemented the JavaHL interface, allowing them to
compare and contrast the behaviour.
Regards,
Noel Grandin
Jon Seymour wrote:
>I have been experimenting with pure-Java implementation of GIT
>concepts with a goal of eventually providing plugins to Eclipse to
>allow the Eclipse GUI to interact with GIT repositories.
>
>One thing I noticed when doing this is that the present index/cache
>structure is rather arbitrary and the optimum index structure is
>determined by the structure of the tools that use a GIT repository
>rather than the structure of the GIT repository itself.
>
>To give a concrete example: the cache currently contains most of the
>posix stat structure primarily to allow quick change detection. In the
>Java world, most of the posix stat structure is not directly
>accessible via the pure-Java file system abstractions. However, for
>most purposes detecting changes to files modification time and file
>size would be enough. Given this is the case, a Java-GIT client
>doesn't need to bother getting access to a posix stat structure and
>could therefore get away with a simpler index structure, provided it
>doesn't need to interoperate with a 'C'-GIT client that shared the
>same workspace. A Java-GIT client might also choose to represent an
>index cache as a complex serialized Java object graph or (perhaps) an
>XML document.
>
>Another example: I can imagine a variant of the index file structure
>that recorded all the parents which have been merged into the cache
>and automatically include this information when performing the commit.
>
>The point is that many different index file structures are possible
>and will be determined in part by the tooling created in the porcelain
>layer - there really is no one true index file format as there is a
>one true repository format. Different tools can use different index
>file formats and still interoperate at the repository level because
>only the repository format needs to have a solid, unchanging
>definition.
>
>Currently the GIT stack is structured as follows:
>
>cogito
>git-core
>
>I think it would be worthwhile if care was taken to draw a distinction
>between the repository and the cache aspects of the git core, perhaps
>even going to the extreme of moving all knowledge of the cache into
>cogito itself. By clearly drawing this distinction, we will more
>easily enable the creation of different kind of tools sets atop the
>foundation of the GIT repository format.
>
>e.g., either:
>
>cogito
>git-cache
>git-respository
>
>or:
>
>cogito-tools
>cogito-cache
>git-repository
>
>Anyway, I offer this as food for thought - chew or flame away as appropriate!
>
>jon.
>
>
NOTICE: Please note that this email, and the contents thereof,
are subject to the standard Peralex email disclaimer, which may
be found at: http://www.peralex.com/disclaimer.html
If you cannot access the disclaimer through the URL attached
and you wish to receive a copy thereof please send
an email to email@peralex.com
next prev parent reply other threads:[~2005-05-11 11:14 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-10 15:00 Core and Not-So Core Jon Seymour
2005-05-10 15:38 ` David Woodhouse
2005-05-10 15:50 ` Eduardo Teixeira Dias
2005-05-10 16:00 ` David Woodhouse
2005-05-10 16:19 ` Eduardo Teixeira Dias
2005-05-10 21:45 ` Diego Calleja
2005-05-10 22:33 ` Eduardo Teixeira Dias
2005-05-10 23:03 ` Diego Calleja
2005-05-10 23:11 ` Horst von Brand
2005-05-10 22:33 ` Eduardo Teixeira Dias
2005-05-10 22:34 ` Eduardo Teixeira Dias
2005-05-10 22:44 ` Petr Baudis
2005-05-10 22:54 ` Andreas Gal
2005-05-10 23:04 ` James Purser
2005-05-11 7:17 ` Christoph Hellwig
2005-05-11 7:42 ` Jon Seymour
2005-05-10 16:22 ` Jon Seymour
2005-05-10 17:03 ` David Woodhouse
[not found] ` <2cfc403205051010151304d88a@mail.gmail.com>
2005-05-10 17:15 ` Jon Seymour
2005-05-10 17:25 ` David Woodhouse
2005-05-10 17:36 ` Jon Seymour
2005-05-10 17:41 ` Christoph Hellwig
[not found] ` <2cfc40320505101051207c9ce4@mail.gmail.com>
2005-05-10 17:51 ` Jon Seymour
2005-05-10 18:01 ` Davide Libenzi
2005-05-11 1:59 ` Rik van Riel
2005-05-11 2:09 ` Jon Seymour
2005-05-11 2:14 ` Petr Baudis
2005-05-10 22:18 ` Daniel Barkalow
[not found] ` <2cfc40320505101605721420@mail.gmail.com>
2005-05-10 23:05 ` Jon Seymour
2005-05-10 23:08 ` Petr Baudis
2005-05-10 23:20 ` Jon Seymour
2005-05-11 16:45 ` Daniel Barkalow
[not found] ` <2cfc403205051114087d283279@mail.gmail.com>
2005-05-11 21:09 ` Jon Seymour
2005-05-10 22:52 ` Petr Baudis
2005-05-11 0:50 ` Jon Seymour
2005-05-11 1:17 ` Peter Williams
2005-05-11 2:30 ` Nicolas Pitre
2005-05-11 3:02 ` Jon Seymour
2005-05-11 11:21 ` Noel Grandin [this message]
2005-05-11 14:40 ` Jon Seymour
2005-05-18 18:35 ` Juliusz Chroboczek
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=4281EAB5.3020006@peralex.com \
--to=noel@peralex.com \
--cc=git@vger.kernel.org \
--cc=jon@blackcubes.dyndns.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.