[Pharo-project] GitFs / MCGit

Camillo Bruni camillo.bruni at inria.fr
Wed Apr 27 22:09:34 CEST 2011


Lukas once implemented a small MC Repository type that simple stores the source.st in a git repository. Due to changes in the recent pharo versions some of the git code didn't work anymore. So that's fixed now and you can use git for storing monticello versions.

The following uses a local git repos as a monticello repository:

	MCGitRepository directory: 'test_git'

Of course it is not fully useful since it uses a single file to store everything, rendering normal git tools unusable. Hence I will experiment tomorrow a bit on how to split up methods and classes into something more representable. I guess the trickiest part will be to tell git how methods and classes changed when they are renamed, but even that should not be such a problem..

In short, I will use github and share my code with the rest of the world ;).

camillo


On 2011-04-27, at 21:50, Tudor Girba wrote:

> Hi,
> 
> I am not sure I understand the implication. Could you explain, please? :)
> 
> Cheers,
> Doru
> 
> 
> On 27 Apr 2011, at 21:37, Camillo Bruni wrote:
> 
>> Thanks for your help :)
>> 
>> So Lukas Git Repository for Monticello works again. ByeBye sqeaksource for me... ;)
>> 
>> On 2011-04-27, at 19:14, Max Leske wrote:
>> 
>>> Concerning 2:
>>> No, it doesn't make sense at all to return nil. The reason that no exception is signalled is simply that that case should never be possible (not really an argument, I know :D). The method #packedObjectWithSignature is only sent if no loose object could be found. Then the packs are scanned and if the object isn't found in the packs the method returns nil.
>>> 
>>> I think an exception would make a lot of sense but I didn't implement an exception handling mechanism for FSGit so a user will get slapped in the face with a debugger. Better though than having to track down that nil bug...
>>> 
>>> 
>>> On 27.04.2011, at 16:21, Camillo Bruni wrote:
>>> 
>>>> Hi Max,
>>>> 
>>>> I took another effort to work on the git bindings of MC.
>>>> However I ran into troubles with FSGitFilesystem on commiting.
>>>> 
>>>> 1. I fail when saving the repos in GitCommit >> parents when it starts to lazily load the object which does not exist yet...
>>>> 
>>>> 2. GitRespository >> packedObjectWithSignature: aGitObjectSignature
>>>> 	does not throw an exception but simply returns nil? does this make sense?
>>>> 
>>>> 
>>>> maybe you have a clue how to solve this faster than I do :-)
>>>> 
>>>> camillo
>>> 
>>> 
>> 
>> 
> 
> --
> www.tudorgirba.com
> 
> "There are no old things, there are only old ways of looking at them."
> 
> 
> 
> 




More information about the Pharo-project mailing list