Pharo and GIT

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Pharo and GIT

Juraj Kubelka
Hi,

can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?

Is the GitFileTree project the way to use it?

How does ConfigurationOf change?

Thanks!
Juraj
Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Thierry Goubier
Hi Juraj,

I haven't created a Pharo6 configuration for GitFileTree, for now loading should be done by Metacello.

Metacello new
    baseline: 'FileTree';
    repository: 'github://dalehenrich/filetree:pharo6.0_dev/repository';
    load: 'Git'

2016-07-25 14:41 GMT+02:00 Juraj Kubelka <[hidden email]>:
Hi,

can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?

Is the GitFileTree project the way to use it?

It's a way that works.
 

How does ConfigurationOf change?

Just create a BaselineOf into your github repository and call that baseline from your ConfigurationOf...

Creating multiple versions in a ConfigurationOf is calling the BaselineOf with a github url containing a tag or a branch.

Regards,

Thierry
 

Thanks!
Juraj

Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

abergel
In reply to this post by Juraj Kubelka
Hi Juraj,

Although I find very appealing to work with Git, it is still very painful. Some of the issues I feel right now: difficult of merging, checking for source code differences, there is unfortunately a difference between installing using Metacello and cloning a repository, …
We can discuss it if you want (I am back in Chile).

Alexandre


> On Jul 25, 2016, at 8:41 AM, Juraj Kubelka <[hidden email]> wrote:
>
> Hi,
>
> can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?
>
> Is the GitFileTree project the way to use it?
>
> How does ConfigurationOf change?
>
> Thanks!
> Juraj

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Juraj Kubelka
Hi Alexandre,

I will first give a try. I think once the Pharo community moves to GitHub, it will help to all. It could be painful, but SmalltalkHub is also painful and we are loosing other opportunities that GitHub service offers.

I agree that it could be painful. I am fine using external GIT tools. Even for Java (or other) projects I use external GIT tools. The important is that we can easily deploy projects and people can load it (,e.g., Catalog Browser).

Cheers,
Juraj

> On Jul 25, 2016, at 09:14, Alexandre Bergel <[hidden email]> wrote:
>
> Hi Juraj,
>
> Although I find very appealing to work with Git, it is still very painful. Some of the issues I feel right now: difficult of merging, checking for source code differences, there is unfortunately a difference between installing using Metacello and cloning a repository, …
> We can discuss it if you want (I am back in Chile).
>
> Alexandre
>
>
>> On Jul 25, 2016, at 8:41 AM, Juraj Kubelka <[hidden email]> wrote:
>>
>> Hi,
>>
>> can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?
>>
>> Is the GitFileTree project the way to use it?
>>
>> How does ConfigurationOf change?
>>
>> Thanks!
>> Juraj
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Peter Uhnak
Hi Juraj,

I've finally forced myself to finish a guide on using gitfiletree: https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/ so hopefully it will be of some use to you.

Couple of notes:
        * GitFileTree loaded from Catalog still doesn't work in Pharo 6, so use the script Thierry provided
        * There's some pain associated with some operations (e.g. merging, loading), this will be addressed sooner or later by IceBerg, which is hopefully the future of git in Pharo ( https://github.com/npasserini/iceberg )

Peter

On Mon, Jul 25, 2016 at 11:47:24AM -0400, Juraj Kubelka wrote:

> Hi Alexandre,
>
> I will first give a try. I think once the Pharo community moves to GitHub, it will help to all. It could be painful, but SmalltalkHub is also painful and we are loosing other opportunities that GitHub service offers.
>
> I agree that it could be painful. I am fine using external GIT tools. Even for Java (or other) projects I use external GIT tools. The important is that we can easily deploy projects and people can load it (,e.g., Catalog Browser).
>
> Cheers,
> Juraj
>
> > On Jul 25, 2016, at 09:14, Alexandre Bergel <[hidden email]> wrote:
> >
> > Hi Juraj,
> >
> > Although I find very appealing to work with Git, it is still very painful. Some of the issues I feel right now: difficult of merging, checking for source code differences, there is unfortunately a difference between installing using Metacello and cloning a repository, …
> > We can discuss it if you want (I am back in Chile).
> >
> > Alexandre
> >
> >
> >> On Jul 25, 2016, at 8:41 AM, Juraj Kubelka <[hidden email]> wrote:
> >>
> >> Hi,
> >>
> >> can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?
> >>
> >> Is the GitFileTree project the way to use it?
> >>
> >> How does ConfigurationOf change?
> >>
> >> Thanks!
> >> Juraj
> >
> > --
> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > Alexandre Bergel  http://www.bergel.eu
> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >
> >
> >
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Thierry Goubier
Hi Peter,

thanks for documenting all that :)

Thierry

Le 25/07/2016 à 19:28, Peter Uhnak a écrit :

> Hi Juraj,
>
> I've finally forced myself to finish a guide on using gitfiletree: https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/ so hopefully it will be of some use to you.
>
> Couple of notes:
> * GitFileTree loaded from Catalog still doesn't work in Pharo 6, so use the script Thierry provided
> * There's some pain associated with some operations (e.g. merging, loading), this will be addressed sooner or later by IceBerg, which is hopefully the future of git in Pharo ( https://github.com/npasserini/iceberg )
>
> Peter
>
> On Mon, Jul 25, 2016 at 11:47:24AM -0400, Juraj Kubelka wrote:
>> Hi Alexandre,
>>
>> I will first give a try. I think once the Pharo community moves to GitHub, it will help to all. It could be painful, but SmalltalkHub is also painful and we are loosing other opportunities that GitHub service offers.
>>
>> I agree that it could be painful. I am fine using external GIT tools. Even for Java (or other) projects I use external GIT tools. The important is that we can easily deploy projects and people can load it (,e.g., Catalog Browser).
>>
>> Cheers,
>> Juraj
>>
>>> On Jul 25, 2016, at 09:14, Alexandre Bergel <[hidden email]> wrote:
>>>
>>> Hi Juraj,
>>>
>>> Although I find very appealing to work with Git, it is still very painful. Some of the issues I feel right now: difficult of merging, checking for source code differences, there is unfortunately a difference between installing using Metacello and cloning a repository, …
>>> We can discuss it if you want (I am back in Chile).
>>>
>>> Alexandre
>>>
>>>
>>>> On Jul 25, 2016, at 8:41 AM, Juraj Kubelka <[hidden email]> wrote:
>>>>
>>>> Hi,
>>>>
>>>> can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?
>>>>
>>>> Is the GitFileTree project the way to use it?
>>>>
>>>> How does ConfigurationOf change?
>>>>
>>>> Thanks!
>>>> Juraj
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>
>>
>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Nicolas Passerini
In reply to this post by Peter Uhnak

On Mon, Jul 25, 2016 at 7:28 PM, Peter Uhnak <[hidden email]> wrote:
IceBerg, which is hopefully the future of git in Pharo ( https://github.com/npasserini/iceberg )

Well, I hope so :)

Iceberg is under development, but beta testers and feedback are welcome. I will be happy to help you if you intend to adopt it.
Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Sean Glazier
In reply to this post by Peter Uhnak
Thank you, Peter for documenting that :-). While I think git tools are OK, my opinion though is that Smalltalk hub should be moved forward as well. At cincom the Store experience started out painful and it has its quirks, but one of the advantages is that I could write tools to do things like browse senders and implementors in the repository. I git you are working with files and text and it does not have the notion of classes and methods and the value of being able to see the history of the class / methods. It is valuable when needing to understand not just the current implementation but where it came from. In Store, I could search and see when a method was present of a class and in what version lets say it got dropped unintentionally for instance. Even more important I think is to also note thing like renames and in cincom namespace renames and moves. 
 I was working a while back on a way to have a persistent diary for a class that could note these histories and maintained and more importantly searchable from  the image. 
I wrote tools too, to attach to a number of databases (repositories) and search for classes and the comments. Helpful when you are searching to see if someone else has solved a problem before. Git tools can tell you a lot about the repository you are publishing to and comparing code etc. But it does not help you to search across repositories and the data.

I know this idea is a tall order. If we improved our tools to beable do this, no matter what the repository is behind it, that would be very helpful and powerful. I think it is a challenge in git because it is dealing with text and does not have a notion of what a class is etc. If we continue and put in more powerful search abilities, it will require using different paradigm in representing code  so we can do more powerful things with the repository. We can browse the class without loading it but that gets us only so far. 

Just my 0.02 ;-)
 

 
Kind Regards,
 
Sean Glazier
 

On Mon, Jul 25, 2016 at 1:28 PM, Peter Uhnak <[hidden email]> wrote:
Hi Juraj,

I've finally forced myself to finish a guide on using gitfiletree: https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/ so hopefully it will be of some use to you.

Couple of notes:
        * GitFileTree loaded from Catalog still doesn't work in Pharo 6, so use the script Thierry provided
        * There's some pain associated with some operations (e.g. merging, loading), this will be addressed sooner or later by IceBerg, which is hopefully the future of git in Pharo ( https://github.com/npasserini/iceberg )

Peter

On Mon, Jul 25, 2016 at 11:47:24AM -0400, Juraj Kubelka wrote:
> Hi Alexandre,
>
> I will first give a try. I think once the Pharo community moves to GitHub, it will help to all. It could be painful, but SmalltalkHub is also painful and we are loosing other opportunities that GitHub service offers.
>
> I agree that it could be painful. I am fine using external GIT tools. Even for Java (or other) projects I use external GIT tools. The important is that we can easily deploy projects and people can load it (,e.g., Catalog Browser).
>
> Cheers,
> Juraj
>
> > On Jul 25, 2016, at 09:14, Alexandre Bergel <[hidden email]> wrote:
> >
> > Hi Juraj,
> >
> > Although I find very appealing to work with Git, it is still very painful. Some of the issues I feel right now: difficult of merging, checking for source code differences, there is unfortunately a difference between installing using Metacello and cloning a repository, …
> > We can discuss it if you want (I am back in Chile).
> >
> > Alexandre
> >
> >
> >> On Jul 25, 2016, at 8:41 AM, Juraj Kubelka <[hidden email]> wrote:
> >>
> >> Hi,
> >>
> >> can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?
> >>
> >> Is the GitFileTree project the way to use it?
> >>
> >> How does ConfigurationOf change?
> >>
> >> Thanks!
> >> Juraj
> >
> > --
> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > Alexandre Bergel  http://www.bergel.eu
> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >
> >
> >
> >
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Sean Glazier
In reply to this post by Peter Uhnak
I look forward to using Iceberg !

 
Kind Regards,
 
Sean Glazier
 

On Mon, Jul 25, 2016 at 1:28 PM, Peter Uhnak <[hidden email]> wrote:
Hi Juraj,

I've finally forced myself to finish a guide on using gitfiletree: https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/ so hopefully it will be of some use to you.

Couple of notes:
        * GitFileTree loaded from Catalog still doesn't work in Pharo 6, so use the script Thierry provided
        * There's some pain associated with some operations (e.g. merging, loading), this will be addressed sooner or later by IceBerg, which is hopefully the future of git in Pharo ( https://github.com/npasserini/iceberg )

Peter

On Mon, Jul 25, 2016 at 11:47:24AM -0400, Juraj Kubelka wrote:
> Hi Alexandre,
>
> I will first give a try. I think once the Pharo community moves to GitHub, it will help to all. It could be painful, but SmalltalkHub is also painful and we are loosing other opportunities that GitHub service offers.
>
> I agree that it could be painful. I am fine using external GIT tools. Even for Java (or other) projects I use external GIT tools. The important is that we can easily deploy projects and people can load it (,e.g., Catalog Browser).
>
> Cheers,
> Juraj
>
> > On Jul 25, 2016, at 09:14, Alexandre Bergel <[hidden email]> wrote:
> >
> > Hi Juraj,
> >
> > Although I find very appealing to work with Git, it is still very painful. Some of the issues I feel right now: difficult of merging, checking for source code differences, there is unfortunately a difference between installing using Metacello and cloning a repository, …
> > We can discuss it if you want (I am back in Chile).
> >
> > Alexandre
> >
> >
> >> On Jul 25, 2016, at 8:41 AM, Juraj Kubelka <[hidden email]> wrote:
> >>
> >> Hi,
> >>
> >> can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?
> >>
> >> Is the GitFileTree project the way to use it?
> >>
> >> How does ConfigurationOf change?
> >>
> >> Thanks!
> >> Juraj
> >
> > --
> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > Alexandre Bergel  http://www.bergel.eu
> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >
> >
> >
> >
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Peter Uhnak
In reply to this post by Nicolas Passerini
On Mon, Jul 25, 2016 at 10:49:41PM +0200, Nicolas Passerini wrote:

> On Mon, Jul 25, 2016 at 7:28 PM, Peter Uhnak <[hidden email]> wrote:
>
> > IceBerg, which is hopefully the future of git in Pharo (
> > https://github.com/npasserini/iceberg )
> >
>
> Well, I hope so :)
>
> Iceberg is under development, but beta testers and feedback are welcome. I
> will be happy to help you if you intend to adopt it.

Well I wasn't sure if I should be reporting things now (because obviously it's incomplete), and I saw 58 issues on github, so didn't want to add more.

But if you want some feedback :)
        * (confusing) The colors of the working copy / local repo should be switched, because now it's showing me new code in red, and removed code in green, which is confusing
        * (really minor) Opening the synchronizing window by double clicking on the repository (instead of clicking on the button) will open it four times
        * (docs) from readme file it's not clear whether I have to run the update command; running it will brick the installation
        * (yay!) I am really happy I can use it side-by-side with gitfiletree so I always have a fallback option
        * (unsure) I wasn't sure from the docs / experiments whether I can point it to local clone, or always have to use github

I am really looking forward to this project, and I am slowly starting to use it for some smaller projects, so more feedback will certainly come. :)

Thanks!

Peter

Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

hernanmd
In reply to this post by Sean Glazier


2016-07-25 19:33 GMT-03:00 Sean Glazier <[hidden email]>:
Thank you, Peter for documenting that :-). While I think git tools are OK, my opinion though is that Smalltalk hub should be moved forward as well. At cincom the Store experience started out painful and it has its quirks, but one of the advantages is that I could write tools to do things like browse senders and implementors in the repository. I git you are working with files and text and it does not have the notion of classes and methods and the value of being able to see the history of the class / methods. It is valuable when needing to understand not just the current implementation but where it came from. In Store, I could search and see when a method was present of a class and in what version lets say it got dropped unintentionally for instance. Even more important I think is to also note thing like renames and in cincom namespace renames and moves. 
 I was working a while back on a way to have a persistent diary for a class that could note these histories and maintained and more importantly searchable from  the image. 
I wrote tools too, to attach to a number of databases (repositories) and search for classes and the comments. Helpful when you are searching to see if someone else has solved a problem before. Git tools can tell you a lot about the repository you are publishing to and comparing code etc. But it does not help you to search across repositories and the data.

I know this idea is a tall order. If we improved our tools to beable do this, no matter what the repository is behind it, that would be very helpful and powerful. I think it is a challenge in git because it is dealing with text and does not have a notion of what a class is etc. If we continue and put in more powerful search abilities, it will require using different paradigm in representing code  so we can do more powerful things with the repository. We can browse the class without loading it but that gets us only so far. 


That is exactly the core problem with Git. It was conceived by people very used to think in terms of files and directories. And it was promoted as a revolutionary tool.
If the model of Git were well-done would be adaptable to handle references of classes, and methods, of any typical programming language, regardless of paradigms.

Do you published the source code of your tools?

Hernán

 
Just my 0.02 ;-)
 

 
Kind Regards,
 
Sean Glazier
 

On Mon, Jul 25, 2016 at 1:28 PM, Peter Uhnak <[hidden email]> wrote:
Hi Juraj,

I've finally forced myself to finish a guide on using gitfiletree: https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/ so hopefully it will be of some use to you.

Couple of notes:
        * GitFileTree loaded from Catalog still doesn't work in Pharo 6, so use the script Thierry provided
        * There's some pain associated with some operations (e.g. merging, loading), this will be addressed sooner or later by IceBerg, which is hopefully the future of git in Pharo ( https://github.com/npasserini/iceberg )

Peter

On Mon, Jul 25, 2016 at 11:47:24AM -0400, Juraj Kubelka wrote:
> Hi Alexandre,
>
> I will first give a try. I think once the Pharo community moves to GitHub, it will help to all. It could be painful, but SmalltalkHub is also painful and we are loosing other opportunities that GitHub service offers.
>
> I agree that it could be painful. I am fine using external GIT tools. Even for Java (or other) projects I use external GIT tools. The important is that we can easily deploy projects and people can load it (,e.g., Catalog Browser).
>
> Cheers,
> Juraj
>
> > On Jul 25, 2016, at 09:14, Alexandre Bergel <[hidden email]> wrote:
> >
> > Hi Juraj,
> >
> > Although I find very appealing to work with Git, it is still very painful. Some of the issues I feel right now: difficult of merging, checking for source code differences, there is unfortunately a difference between installing using Metacello and cloning a repository, …
> > We can discuss it if you want (I am back in Chile).
> >
> > Alexandre
> >
> >
> >> On Jul 25, 2016, at 8:41 AM, Juraj Kubelka <[hidden email]> wrote:
> >>
> >> Hi,
> >>
> >> can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?
> >>
> >> Is the GitFileTree project the way to use it?
> >>
> >> How does ConfigurationOf change?
> >>
> >> Thanks!
> >> Juraj
> >
> > --
> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > Alexandre Bergel  http://www.bergel.eu
> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >
> >
> >
> >
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Nicolas Passerini
In reply to this post by Peter Uhnak

Well I wasn't sure if I should be reporting things now (because obviously it's incomplete), and I saw 58 issues on github, so didn't want to add more. 

But if you want some feedback :)

Yes, feedback is necessary... even knowing that you are using it is good news for me.
 
        * (confusing) The colors of the working copy / local repo should be switched, because now it's showing me new code in red, and removed code in green, which is confusing

Yes, I know. I was stubborn in putting my version in the left, but I didn't find the way to customize the diff tool to show colors properly. Also the diff does not highlight correctly, at some point I will have to get my hands on it, but I didn't have the time yet.
 
        * (really minor) Opening the synchronizing window by double clicking on the repository (instead of clicking on the button) will open it four times

Again, yes... I do not know if this is a bug of Glamour, I've posted a question but didn't get answers... I have to insist :)
 
        * (docs) from readme file it's not clear whether I have to run the update command; running it will brick the installation

Update is not mandatory, but should be a useful way to get the latest version. I'm not sure of having understood you, is that you tried it and it failed?
 
        * (yay!) I am really happy I can use it side-by-side with gitfiletree so I always have a fallback option

:+1:
 
        * (unsure) I wasn't sure from the docs / experiments whether I can point it to local clone, or always have to use github

Yes you can. When creating a repository, just change the default location.
(Yet it is a bit confusing because it still asks you for a remote url instead of using that of the clone you selected... I have to improve it.)


I am really looking forward to this project, and I am slowly starting to use it for some smaller projects, so more feedback will certainly come. :)

Thanks!

Peter


Thank you!
Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Dale Henrichs-3
In reply to this post by Sean Glazier


On 07/25/2016 03:33 PM, Sean Glazier wrote:

I git you are working with files and text and it does not have the notion of classes and methods and the value of being able to see the history of the class / methods.
FileTree is the layer that lives between the directory structure on disk and the image ... FileTree interprets the directories and files on disk and creates a snapshot composed of definitions for classes, methods, etc.

Saying that git doesn't have a concept of classes and methods is equivalent to saying that postrgres (the underlying database engine for Store i believe) doesn't have the concept of classes and methods :)

It is the tools that matter, not how the bits are written to disk...

Since FileTree stores each method as a file, each method does have history, as does each of the parent directories (class, package, project) ...

What is true is that as the tools stand today it isn't possible to access "method history from git", but it is a tools issue...

It is valuable when needing to understand not just the current implementation but where it came from. In Store, I could search and see when a method was present of a class and in what version lets say it got dropped unintentionally for instance. Even more important I think is to also note thing like renames and in cincom namespace renames and moves.
All of this is available from git given the proper tooling ...

Dale

Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Peter Uhnak
In reply to this post by Sean Glazier
On Mon, Jul 25, 2016 at 06:33:48PM -0400, Sean Glazier wrote:
> Thank you, Peter for documenting that :-). While I think git tools are OK,
> my opinion though is that Smalltalk hub should be moved forward as well.

While SmalltalkHub works for code storage, it is also just that, a storage.
Trying to run a service competing with the likes of GitHub, Bitbucket, or GitLab is frankly waste of resources that could be better invested into things that are relevant for the mission of Pharo.

> I git you are working with files and text and it does not have the notion of classes and methods and
> the value of being able to see the history of the class / methods.

I've seen this argument many times and yet it is completely false.
You can actually retrieve the history of a single method even for languages that truly do use just files (C, ruby, …), although a fair bit of scripting would be required, but the history is there.
The used FileTree format that writes each method to a file makes this much more simpler.

> thing like renames and in cincom namespace renames and moves.

Funny that you mention renames, considering that SmalltalkHub cannot handle renames or track changes/moves across packages.

> I know this idea is a tall order. If we improved our tools to beable do
> this, no matter what the repository is behind it, that would be very
> helpful and powerful. I think it is a challenge in git because it is
> dealing with text and does not have a notion of what a class is etc.

class -> directory, method -> file makes it much more easier.
But even if it was all a dump into a single file, the bottom line is, it is always only a question of tooling.
After all, don't forget that whatever format you use, if you are storing it on hard drive it's in a file. You just have tools on top.

Peter

Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Peter Uhnak
In reply to this post by hernanmd
On Mon, Jul 25, 2016 at 08:08:49PM -0300, Hernán Morales Durand wrote:

> 2016-07-25 19:33 GMT-03:00 Sean Glazier <[hidden email]>:
>
> > Thank you, Peter for documenting that :-). While I think git tools are OK,
> > my opinion though is that Smalltalk hub should be moved forward as well. At
> > cincom the Store experience started out painful and it has its quirks, but
> > one of the advantages is that I could write tools to do things like browse
> > senders and implementors in the repository. I git you are working with
> > files and text and it does not have the notion of classes and methods and
> > the value of being able to see the history of the class / methods. It is
> > valuable when needing to understand not just the current implementation but
> > where it came from. In Store, I could search and see when a method was
> > present of a class and in what version lets say it got dropped
> > unintentionally for instance. Even more important I think is to also note
> > thing like renames and in cincom namespace renames and moves.
> >  I was working a while back on a way to have a persistent diary for a
> > class that could note these histories and maintained and more importantly
> > searchable from  the image.
> > I wrote tools too, to attach to a number of databases (repositories) and
> > search for classes and the comments. Helpful when you are searching to see
> > if someone else has solved a problem before. Git tools can tell you a lot
> > about the repository you are publishing to and comparing code etc. But it
> > does not help you to search across repositories and the data.
> >
> > I know this idea is a tall order. If we improved our tools to beable do
> > this, no matter what the repository is behind it, that would be very
> > helpful and powerful. I think it is a challenge in git because it is
> > dealing with text and does not have a notion of what a class is etc. If we
> > continue and put in more powerful search abilities, it will require using
> > different paradigm in representing code  so we can do more powerful things
> > with the repository. We can browse the class without loading it but that
> > gets us only so far.
> >
> >
> That is exactly the core problem with Git. It was conceived by people very
> used to think in terms of files and directories.

Because that is how the system (linux) works, so it makes sense that it works that way.

> And it was promoted as a revolutionary tool.

It is.

> If the model of Git were well-done would be adaptable to handle references
> of classes, and methods, of any typical programming language, regardless of
> paradigms.

Git is used also for other things, not just programming languages.

Peter

Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

SergeStinckwich
In reply to this post by Sean Glazier
On Tue, Jul 26, 2016 at 12:33 AM, Sean Glazier <[hidden email]> wrote:
> Thank you, Peter for documenting that :-). While I think git tools are OK,
> my opinion though is that Smalltalk hub should be moved forward as well. At
> cincom the Store experience started out painful and it has its quirks, but
> one of the advantages is that I could write tools to do things like browse
> senders and implementors in the repository. I git you are working with files
> and text and it does not have the notion of classes and methods and the
> value of being able to see the history of the class / methods.

This is possible to see all the history of a given method on github:

https://github.com/pharo-project/pharo-core/commits/6.0/CodeImportCommandLineHandlers.package/STCommandLineHandler.class/instance/installing/installSourceFile_.st

--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/

Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Thierry Goubier


2016-07-26 9:01 GMT+02:00 Serge Stinckwich <[hidden email]>:
On Tue, Jul 26, 2016 at 12:33 AM, Sean Glazier <[hidden email]> wrote:
> Thank you, Peter for documenting that :-). While I think git tools are OK,
> my opinion though is that Smalltalk hub should be moved forward as well. At
> cincom the Store experience started out painful and it has its quirks, but
> one of the advantages is that I could write tools to do things like browse
> senders and implementors in the repository. I git you are working with files
> and text and it does not have the notion of classes and methods and the
> value of being able to see the history of the class / methods.

This is possible to see all the history of a given method on github:

https://github.com/pharo-project/pharo-core/commits/6.0/CodeImportCommandLineHandlers.package/STCommandLineHandler.class/instance/installing/installSourceFile_.st

And it can be extended to see the history of a class (track the relevant directory) or project (same).

FileTree obviously remaps Smalltalk code concepts (which are already quite simple: class, method) into a directory/files structure, making the conversion easy. Only people who insist on storing a full class or package in a single file are purposely destroying that mapping.

Note, for those who miss VW Store, that Squeak has a Magma mapping for code.

Note that Pharo had that ability to query the git history for a method since I implemented it a few years ago...

Thierry
 


--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/


Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

kilon.alios
In reply to this post by Sean Glazier
Github has a search code facility , unless you mean something else. We could take advantage of that and unite it with our ability to browse implementors and classes. There is no limit how deeply we can integrate with git and github and we can extend both via Pharo to make them more Pharo friendly.

On the subject of smalltalkhub it was always of question who will maintain it. But is one thing to want something another to take control and responsibility for it. None stoping anyone from contributing to anything. Problem is sthub will need a ton of work to be a good alternative to github.

On Tue, 26 Jul 2016 at 01:36, Sean Glazier <[hidden email]> wrote:
Thank you, Peter for documenting that :-). While I think git tools are OK, my opinion though is that Smalltalk hub should be moved forward as well. At cincom the Store experience started out painful and it has its quirks, but one of the advantages is that I could write tools to do things like browse senders and implementors in the repository. I git you are working with files and text and it does not have the notion of classes and methods and the value of being able to see the history of the class / methods. It is valuable when needing to understand not just the current implementation but where it came from. In Store, I could search and see when a method was present of a class and in what version lets say it got dropped unintentionally for instance. Even more important I think is to also note thing like renames and in cincom namespace renames and moves. 
 I was working a while back on a way to have a persistent diary for a class that could note these histories and maintained and more importantly searchable from  the image. 
I wrote tools too, to attach to a number of databases (repositories) and search for classes and the comments. Helpful when you are searching to see if someone else has solved a problem before. Git tools can tell you a lot about the repository you are publishing to and comparing code etc. But it does not help you to search across repositories and the data.

I know this idea is a tall order. If we improved our tools to beable do this, no matter what the repository is behind it, that would be very helpful and powerful. I think it is a challenge in git because it is dealing with text and does not have a notion of what a class is etc. If we continue and put in more powerful search abilities, it will require using different paradigm in representing code  so we can do more powerful things with the repository. We can browse the class without loading it but that gets us only so far. 

Just my 0.02 ;-)
 

 
Kind Regards,
 
Sean Glazier
 

On Mon, Jul 25, 2016 at 1:28 PM, Peter Uhnak <[hidden email]> wrote:
Hi Juraj,

I've finally forced myself to finish a guide on using gitfiletree: https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/ so hopefully it will be of some use to you.

Couple of notes:
        * GitFileTree loaded from Catalog still doesn't work in Pharo 6, so use the script Thierry provided
        * There's some pain associated with some operations (e.g. merging, loading), this will be addressed sooner or later by IceBerg, which is hopefully the future of git in Pharo ( https://github.com/npasserini/iceberg )

Peter

On Mon, Jul 25, 2016 at 11:47:24AM -0400, Juraj Kubelka wrote:
> Hi Alexandre,
>
> I will first give a try. I think once the Pharo community moves to GitHub, it will help to all. It could be painful, but SmalltalkHub is also painful and we are loosing other opportunities that GitHub service offers.
>
> I agree that it could be painful. I am fine using external GIT tools. Even for Java (or other) projects I use external GIT tools. The important is that we can easily deploy projects and people can load it (,e.g., Catalog Browser).
>
> Cheers,
> Juraj
>
> > On Jul 25, 2016, at 09:14, Alexandre Bergel <[hidden email]> wrote:
> >
> > Hi Juraj,
> >
> > Although I find very appealing to work with Git, it is still very painful. Some of the issues I feel right now: difficult of merging, checking for source code differences, there is unfortunately a difference between installing using Metacello and cloning a repository, …
> > We can discuss it if you want (I am back in Chile).
> >
> > Alexandre
> >
> >
> >> On Jul 25, 2016, at 8:41 AM, Juraj Kubelka <[hidden email]> wrote:
> >>
> >> Hi,
> >>
> >> can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?
> >>
> >> Is the GitFileTree project the way to use it?
> >>
> >> How does ConfigurationOf change?
> >>
> >> Thanks!
> >> Juraj
> >
> > --
> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > Alexandre Bergel  http://www.bergel.eu
> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >
> >
> >
> >
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

Nicolas Passerini
Could you give examples of code searches that you would be able to do in the history.

I think that for searching the history of a method or class, it is simpler (and faster) to do it in git than it is to do it in monticello.

On Tue, Jul 26, 2016 at 1:31 PM, Dimitris Chloupis <[hidden email]> wrote:
Github has a search code facility , unless you mean something else. We could take advantage of that and unite it with our ability to browse implementors and classes. There is no limit how deeply we can integrate with git and github and we can extend both via Pharo to make them more Pharo friendly.

On the subject of smalltalkhub it was always of question who will maintain it. But is one thing to want something another to take control and responsibility for it. None stoping anyone from contributing to anything. Problem is sthub will need a ton of work to be a good alternative to github.

On Tue, 26 Jul 2016 at 01:36, Sean Glazier <[hidden email]> wrote:
Thank you, Peter for documenting that :-). While I think git tools are OK, my opinion though is that Smalltalk hub should be moved forward as well. At cincom the Store experience started out painful and it has its quirks, but one of the advantages is that I could write tools to do things like browse senders and implementors in the repository. I git you are working with files and text and it does not have the notion of classes and methods and the value of being able to see the history of the class / methods. It is valuable when needing to understand not just the current implementation but where it came from. In Store, I could search and see when a method was present of a class and in what version lets say it got dropped unintentionally for instance. Even more important I think is to also note thing like renames and in cincom namespace renames and moves. 
 I was working a while back on a way to have a persistent diary for a class that could note these histories and maintained and more importantly searchable from  the image. 
I wrote tools too, to attach to a number of databases (repositories) and search for classes and the comments. Helpful when you are searching to see if someone else has solved a problem before. Git tools can tell you a lot about the repository you are publishing to and comparing code etc. But it does not help you to search across repositories and the data.

I know this idea is a tall order. If we improved our tools to beable do this, no matter what the repository is behind it, that would be very helpful and powerful. I think it is a challenge in git because it is dealing with text and does not have a notion of what a class is etc. If we continue and put in more powerful search abilities, it will require using different paradigm in representing code  so we can do more powerful things with the repository. We can browse the class without loading it but that gets us only so far. 

Just my 0.02 ;-)
 

 
Kind Regards,
 
Sean Glazier
 

On Mon, Jul 25, 2016 at 1:28 PM, Peter Uhnak <[hidden email]> wrote:
Hi Juraj,

I've finally forced myself to finish a guide on using gitfiletree: https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/ so hopefully it will be of some use to you.

Couple of notes:
        * GitFileTree loaded from Catalog still doesn't work in Pharo 6, so use the script Thierry provided
        * There's some pain associated with some operations (e.g. merging, loading), this will be addressed sooner or later by IceBerg, which is hopefully the future of git in Pharo ( https://github.com/npasserini/iceberg )

Peter

On Mon, Jul 25, 2016 at 11:47:24AM -0400, Juraj Kubelka wrote:
> Hi Alexandre,
>
> I will first give a try. I think once the Pharo community moves to GitHub, it will help to all. It could be painful, but SmalltalkHub is also painful and we are loosing other opportunities that GitHub service offers.
>
> I agree that it could be painful. I am fine using external GIT tools. Even for Java (or other) projects I use external GIT tools. The important is that we can easily deploy projects and people can load it (,e.g., Catalog Browser).
>
> Cheers,
> Juraj
>
> > On Jul 25, 2016, at 09:14, Alexandre Bergel <[hidden email]> wrote:
> >
> > Hi Juraj,
> >
> > Although I find very appealing to work with Git, it is still very painful. Some of the issues I feel right now: difficult of merging, checking for source code differences, there is unfortunately a difference between installing using Metacello and cloning a repository, …
> > We can discuss it if you want (I am back in Chile).
> >
> > Alexandre
> >
> >
> >> On Jul 25, 2016, at 8:41 AM, Juraj Kubelka <[hidden email]> wrote:
> >>
> >> Hi,
> >>
> >> can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?
> >>
> >> Is the GitFileTree project the way to use it?
> >>
> >> How does ConfigurationOf change?
> >>
> >> Thanks!
> >> Juraj
> >
> > --
> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > Alexandre Bergel  http://www.bergel.eu
> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >
> >
> >
> >
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Pharo and GIT

kilon.alios

On Tue, Jul 26, 2016 at 3:19 PM Nicolas Passerini <[hidden email]> wrote:
Could you give examples of code searches that you would be able to do in the history.

I think that for searching the history of a method or class, it is simpler (and faster) to do it in git than it is to do it in monticello.

On Tue, Jul 26, 2016 at 1:31 PM, Dimitris Chloupis <[hidden email]> wrote:
Github has a search code facility , unless you mean something else. We could take advantage of that and unite it with our ability to browse implementors and classes. There is no limit how deeply we can integrate with git and github and we can extend both via Pharo to make them more Pharo friendly.

On the subject of smalltalkhub it was always of question who will maintain it. But is one thing to want something another to take control and responsibility for it. None stoping anyone from contributing to anything. Problem is sthub will need a ton of work to be a good alternative to github.

On Tue, 26 Jul 2016 at 01:36, Sean Glazier <[hidden email]> wrote:
Thank you, Peter for documenting that :-). While I think git tools are OK, my opinion though is that Smalltalk hub should be moved forward as well. At cincom the Store experience started out painful and it has its quirks, but one of the advantages is that I could write tools to do things like browse senders and implementors in the repository. I git you are working with files and text and it does not have the notion of classes and methods and the value of being able to see the history of the class / methods. It is valuable when needing to understand not just the current implementation but where it came from. In Store, I could search and see when a method was present of a class and in what version lets say it got dropped unintentionally for instance. Even more important I think is to also note thing like renames and in cincom namespace renames and moves. 
 I was working a while back on a way to have a persistent diary for a class that could note these histories and maintained and more importantly searchable from  the image. 
I wrote tools too, to attach to a number of databases (repositories) and search for classes and the comments. Helpful when you are searching to see if someone else has solved a problem before. Git tools can tell you a lot about the repository you are publishing to and comparing code etc. But it does not help you to search across repositories and the data.

I know this idea is a tall order. If we improved our tools to beable do this, no matter what the repository is behind it, that would be very helpful and powerful. I think it is a challenge in git because it is dealing with text and does not have a notion of what a class is etc. If we continue and put in more powerful search abilities, it will require using different paradigm in representing code  so we can do more powerful things with the repository. We can browse the class without loading it but that gets us only so far. 

Just my 0.02 ;-)
 

 
Kind Regards,
 
Sean Glazier
 

On Mon, Jul 25, 2016 at 1:28 PM, Peter Uhnak <[hidden email]> wrote:
Hi Juraj,

I've finally forced myself to finish a guide on using gitfiletree: https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/ so hopefully it will be of some use to you.

Couple of notes:
        * GitFileTree loaded from Catalog still doesn't work in Pharo 6, so use the script Thierry provided
        * There's some pain associated with some operations (e.g. merging, loading), this will be addressed sooner or later by IceBerg, which is hopefully the future of git in Pharo ( https://github.com/npasserini/iceberg )

Peter

On Mon, Jul 25, 2016 at 11:47:24AM -0400, Juraj Kubelka wrote:
> Hi Alexandre,
>
> I will first give a try. I think once the Pharo community moves to GitHub, it will help to all. It could be painful, but SmalltalkHub is also painful and we are loosing other opportunities that GitHub service offers.
>
> I agree that it could be painful. I am fine using external GIT tools. Even for Java (or other) projects I use external GIT tools. The important is that we can easily deploy projects and people can load it (,e.g., Catalog Browser).
>
> Cheers,
> Juraj
>
> > On Jul 25, 2016, at 09:14, Alexandre Bergel <[hidden email]> wrote:
> >
> > Hi Juraj,
> >
> > Although I find very appealing to work with Git, it is still very painful. Some of the issues I feel right now: difficult of merging, checking for source code differences, there is unfortunately a difference between installing using Metacello and cloning a repository, …
> > We can discuss it if you want (I am back in Chile).
> >
> > Alexandre
> >
> >
> >> On Jul 25, 2016, at 8:41 AM, Juraj Kubelka <[hidden email]> wrote:
> >>
> >> Hi,
> >>
> >> can you point me to a latest (best) way to use GitHub for Pharo projects (Pharo 6)?
> >>
> >> Is the GitFileTree project the way to use it?
> >>
> >> How does ConfigurationOf change?
> >>
> >> Thanks!
> >> Juraj
> >
> > --
> > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> > Alexandre Bergel  http://www.bergel.eu
> > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >
> >
> >
> >
>
>



12