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

Re: Core and Not-So Core

From
NGNoel Grandin <noel@peralex.com>
Date
May 11, 2005, 11:21 UTC
Message-ID
<4281EAB5.3020006@peralex.com>
In-Reply-To
<2cfc40320505100800426d38ca@mail.gmail.com>
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:
Show 63 quoted lines
>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
Previous: Jon SeymourNext: Jon Seymour
Message 24 of 40 in “Core and Not-So Core”
  1. Jon SeymourMay 10, 2005
  2. David WoodhouseMay 10, 2005
  3. Eduardo Teixeira DiasMay 10, 2005
  4. David WoodhouseMay 10, 2005
  5. Eduardo Teixeira DiasMay 10, 2005
  6. Diego CallejaMay 10, 2005
  7. Eduardo Teixeira DiasMay 10, 2005
  8. Diego CallejaMay 10, 2005
  9. Eduardo Teixeira DiasMay 10, 2005
  10. Eduardo Teixeira DiasMay 10, 2005
  11. Petr BaudisMay 10, 2005
  12. Andreas GalMay 10, 2005
  13. James PurserMay 10, 2005
  14. Christoph HellwigMay 11, 2005
  15. Jon SeymourMay 11, 2005
  16. Jon SeymourMay 10, 2005
  17. David WoodhouseMay 10, 2005
  18. Daniel BarkalowMay 10, 2005
  19. Petr BaudisMay 10, 2005
  20. Jon SeymourMay 11, 2005
  21. Peter WilliamsMay 11, 2005
  22. Nicolas PitreMay 11, 2005
  23. Jon SeymourMay 11, 2005
  24. Noel GrandinMay 11, 2005
  25. Jon SeymourMay 11, 2005
  26. Juliusz ChroboczekMay 18, 2005
  27. Jon SeymourMay 10, 2005
  28. David WoodhouseMay 10, 2005
  29. Jon SeymourMay 10, 2005
  30. Christoph HellwigMay 10, 2005
  31. Rik van RielMay 11, 2005
  32. Jon SeymourMay 11, 2005
  33. Petr BaudisMay 11, 2005
  34. Jon SeymourMay 10, 2005
  35. Davide LibenziMay 10, 2005
  36. Jon SeymourMay 10, 2005
  37. Petr BaudisMay 10, 2005
  38. Jon SeymourMay 10, 2005
  39. Daniel BarkalowMay 11, 2005
  40. Jon SeymourMay 11, 2005

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.