On 04.12.2014, at 09:07, Thierry Goubier <thierry.goubier@gmail.com> wrote:



2014-12-04 8:27 GMT+01:00 Max Leske <maxleske@gmail.com>:

On 04.12.2014, at 07:24, Thierry Goubier <thierry.goubier@gmail.com> wrote:

Le 03/12/2014 14:02, Ben Coman a �crit :
Eliot Miranda wrote:

[and apologies for being deliberately incendiary but I *hate* the
movement away from tools in Squeak/Pharo.  It is a movement towards
stasis and death, and personally I'm enjoying life too much].

So what we need is a native Smalltalk git ;)

We need a better-than-git Smalltalk thing :)

Yes I know... more work with limited resources, but native git its being
done in other places...   (not sure how successfully)

I can give you a head start. There is some Smalltalk code to reuse; it's called FileSystem-Git, or FS-Git.

https://github.com/dalehenrich/FSGit

https://github.com/theseion/fs-git

http://smalltalkhub.com/#!/~FileSystemGitDev/FileSystem-Git
http://smalltalkhub.com/#!/~FileSystemGitDev/Git-FileSystem

They do lack a bit of activity.

That�s because they should be superseded by the libgit2 bindings.

If I'm not mistaken, they originally were what Ben suggested: a complete git reimplementation in Smalltalk via a FileSystem abstraction layer.

The idea is great and works quite well. There are two problems however and they are the reasons I chose to go with bindings:
- such an implementation is very hard to maintain and the chance of introducing bugs is just off the charts
- performance and memory allocation need a lot of working around (and praying)

The Pharo "whole" export to github would be based on that work, along with that 'almost like FileTree, but not the same' file format.

Not quite. The export simply produces (FileTree) artifacts and writes them to disk. There is no hard dependency to FileSystem-Git (although that might have been the plan at some point).


But correct me if I got that wrong.


This is the right repo: http://smalltalkhub.com/#!/~FileSystemGitDev/FileSystem-Git (the github version is outdated).

Thanks for the reminder (and the hard work you're putting into the libgit2 bindings),

Thank you for your patience :)