Hi
I do not know the dif between git file tree, file tree.... and I would like to know how to get started with git in Pharo? What should I read? Stef |
Stef, My introduction to git came largely from reading "A successful Git branching model"[1]. I tried to think how to map this particular git work flow to Metacello and long story short, decided to adapt Metacello to git:)
It is also probably worth reading "What is a good Git workflow?"[2]. This article is more about how to use GitHub, but frankly the appeal of git to me goes hand in hand with a good collaboration model and GitHub does a good job supporting that.
The first time you read these articles don't pay attention to the details, but try to get the overall flow/functionality and try to draw parallels to the work the you do with Monticello and Metacello ... let the thoughts marinate, ask some questions.
"Pro Git"[3] is a book/web site and would recommend that you take a run through Chapter 2[4] to get a taste of git in action at the command line and virtually everything that you need to know to work on your own with git is covered in this chapter. Chapter 3[5] is on the nitty gritty of branching ... but again at this stage you want to just skim through the docs and get a feel of what is possible ... if something doesn't make sense at this stage ...
ignore it:) Now go back to the "What is a good Git workflow?"[2] paper and read it in detail ... if you see a command/operation that you don't understand google it or look it up in "Pro Git" or ask questions ...
Basically I am recommending that for your first foray into Git and Smalltalk you will be trying to follow the "What is a good Git workflow?"[2] model. FileTree allows you save Monticello packages into a git repository, but with FileTree you have to do all of the git commands from the command line.
I'll let Thierry Goubier describe GitFileTree because I think it that package does a bit of remote control .... I think that it is possible to most if not all of the git work support into the Smalltalk development environment ... I am doing that for GemStone with tODE[6] and I do find myself going to the go to the command line much less frequently ... but in tODE I have built a git merge tool and a git diff tool ... you can get the git history of a method from the browser, etc.
Without a relatively high degree of tool integration it can be clunky to use git ... I am very willing to share what I've done/learned in tODE with Pharo tool builders and of course I think Thierry Goubier has actually been ahead of me in several different areas ...
Of course there are other git workflows out there and other git collaboration sites besides GitHub...but is worth keeping things simple at first (I think) and when you have mastered git/github basics both personally and from a tool level, then it is a perfectly good time to start looking at other workflows and tools, because then you are able to make informed judgements ... HTH, Dale
On Thu, Jun 26, 2014 at 9:27 AM, stepharo <[hidden email]> wrote: Hi |
In reply to this post by stepharo
I read
http://www.stic.st/wp-content/conferences/2012/Wednesday/1415-Practical_Git_for_Smalltalk-Henrichs.pdf and I found http://forum.world.st/Pharo-git-td4693999.html But is there something that works and it simple? Stef On 26/6/14 18:27, stepharo wrote: > Hi > > I do not know the dif between git file tree, file tree.... and I would > like to know how to get > started with git in Pharo? > > What should I read? > > Stef |
In reply to this post by stepharo
I can only suggest you to read my blogpost about configurations and versioning: http://sleepycoders.blogspot.ch/2014/04/how-to-distribute-your-github-pharo.html
I usually mix filetree and gitfiletree. Last one is better, because you don’t have to remember to commit in git each time you commit in pharo. (Also I think that gitfiletree is not working with Pharo4) Uko On 26 Jun 2014, at 18:27, stepharo <[hidden email]> wrote: > Hi > > I do not know the dif between git file tree, file tree.... and I would like to know how to get > started with git in Pharo? > > What should I read? > > Stef > |
In reply to this post by stepharo
Stef, You need to cut your teeth for a decent couple hours to get to terms with Git. Especially when using a workflow with branches, with merges, and several contributors.
I knew of quite a couple of SCMs (including Hg) but Git is a special beast. I liked Git Recipes: A Problem Solution Approach as it was very pragmatic. HTH
Phil
On Thu, Jun 26, 2014 at 7:09 PM, stepharo <[hidden email]> wrote: I read |
In reply to this post by Dale Henrichs-3
On 26 Jun 2014, at 19:07, Dale Henrichs <[hidden email]> wrote: > I think that it is possible to most if not all of the git work support into the Smalltalk development environment ... I am doing that for GemStone with tODE[6] and I do find myself going to the go to the command line much less frequently ... but in tODE I have built a git merge tool and a git diff tool ... you can get the git history of a method from the browser, etc. > > Without a relatively high degree of tool integration it can be clunky to use git ... I am very willing to share what I've done/learned in tODE with Pharo tool builders and of course I think Thierry Goubier has actually been ahead of me in several different areas ... That is my analysis: it works today, 'perfectly', but there is not enough tools support to make it as easy as Monticello as a whole is today. If these tools exist, or we can build them quickly based Dale's code, that would be cool (I guess its all OSProcess underneath, which I find so/so, a direct integration is better) that would be good. Would having this change our world fundamentally ? No, IMHO Is it worth the effort, is the ROI there ? I don't think so Anyway, it is a delicate subject as it also touches on the representation of the file format. |
On 26 Jun 2014, at 14:56, Sven Van Caekenberghe <[hidden email]> wrote: > > On 26 Jun 2014, at 19:07, Dale Henrichs <[hidden email]> wrote: > >> I think that it is possible to most if not all of the git work support into the Smalltalk development environment ... I am doing that for GemStone with tODE[6] and I do find myself going to the go to the command line much less frequently ... but in tODE I have built a git merge tool and a git diff tool ... you can get the git history of a method from the browser, etc. >> >> Without a relatively high degree of tool integration it can be clunky to use git ... I am very willing to share what I've done/learned in tODE with Pharo tool builders and of course I think Thierry Goubier has actually been ahead of me in several different areas ... > > That is my analysis: it works today, 'perfectly', but there is not enough tools support to make it as easy as Monticello as a whole is today. > > If these tools exist, or we can build them quickly based Dale's code, that would be cool (I guess its all OSProcess underneath, which I find so/so, a direct integration is better) that would be good. > > Would having this change our world fundamentally ? No, IMHO > Is it worth the effort, is the ROI there ? I don't think so I disagree here. I think moving our development to git will change deeply (for good) our community processes and then I think it totally worths the effort. Of course, important part of the advantages came from the tools around git (like github) more than git itself, but all is one and the same :) A couple of examples of what I think will improve our work: - pull requests instead SLICES - submodules (with different people taking care of them) - traceability: you can map an issue with a pull requests directly making it a lot better to query Then there is other kind of advantages like: - better entry-point for newbies to the community (they all expect something like git this days) - better visibility - confidence. This is subjective but important: companies feel more confident with something like git than a specific tool to keep their sources. - we can stop maintaining things like smalltalkhub and important parts of monticello itself and concentrate our efforts in other, more interesting areas … and there are more. In conclusion, I think expending time in git integration is one of the best ways to contribute to the develop of Pharo nowadays. Esteban > > Anyway, it is a delicate subject as it also touches on the representation of the file format. > > |
I know you, and some others, have that opinion and that is OK.
I also think that it would be nice to have (better git integration). But we essentially have it today, although a bit cumbersome, awkward (cfr https://github.com/pharo-project/pharo-core). Some of us store all their code in git all the time. My opinion is that it is not per se the most important thing. We have to focus on the aspects where we are better, not try being more the same as everybody else. We need modularisation, better tools, new ways of working with live objects, new interactive representations, mouldable tools, remote image tools, automatic cloud deploys, magic stuff, .. On 26 Jun 2014, at 20:52, Esteban Lorenzano <[hidden email]> wrote: > > On 26 Jun 2014, at 14:56, Sven Van Caekenberghe <[hidden email]> wrote: > >> >> On 26 Jun 2014, at 19:07, Dale Henrichs <[hidden email]> wrote: >> >>> I think that it is possible to most if not all of the git work support into the Smalltalk development environment ... I am doing that for GemStone with tODE[6] and I do find myself going to the go to the command line much less frequently ... but in tODE I have built a git merge tool and a git diff tool ... you can get the git history of a method from the browser, etc. >>> >>> Without a relatively high degree of tool integration it can be clunky to use git ... I am very willing to share what I've done/learned in tODE with Pharo tool builders and of course I think Thierry Goubier has actually been ahead of me in several different areas ... >> >> That is my analysis: it works today, 'perfectly', but there is not enough tools support to make it as easy as Monticello as a whole is today. >> >> If these tools exist, or we can build them quickly based Dale's code, that would be cool (I guess its all OSProcess underneath, which I find so/so, a direct integration is better) that would be good. >> >> Would having this change our world fundamentally ? No, IMHO >> Is it worth the effort, is the ROI there ? I don't think so > > I disagree here. I think moving our development to git will change deeply (for good) our community processes and then I think it totally worths the effort. > Of course, important part of the advantages came from the tools around git (like github) more than git itself, but all is one and the same :) > A couple of examples of what I think will improve our work: > - pull requests instead SLICES > - submodules (with different people taking care of them) > - traceability: you can map an issue with a pull requests directly making it a lot better to query > > Then there is other kind of advantages like: > - better entry-point for newbies to the community (they all expect something like git this days) > - better visibility > - confidence. This is subjective but important: companies feel more confident with something like git than a specific tool to keep their sources. > - we can stop maintaining things like smalltalkhub and important parts of monticello itself and concentrate our efforts in other, more interesting areas > > … and there are more. > > In conclusion, I think expending time in git integration is one of the best ways to contribute to the develop of Pharo nowadays. > > Esteban > >> >> Anyway, it is a delicate subject as it also touches on the representation of the file format. |
On 26 Jun 2014, at 16:38, Sven Van Caekenberghe <[hidden email]> wrote: > I know you, and some others, have that opinion and that is OK. > I also think that it would be nice to have (better git integration). > > But we essentially have it today, although a bit cumbersome, awkward (cfr https://github.com/pharo-project/pharo-core). Some of us store all their code in git all the time. > > My opinion is that it is not per se the most important thing. We have to focus on the aspects where we are better, not try being more the same as everybody else. > > We need modularisation, better tools, new ways of working with live objects, new interactive representations, mouldable tools, remote image tools, automatic cloud deploys, magic stuff, .. yes… and better git integration is part of “better tools”. and IMO, with the “plus” that it can boost the other areas. Esteban > > On 26 Jun 2014, at 20:52, Esteban Lorenzano <[hidden email]> wrote: > >> >> On 26 Jun 2014, at 14:56, Sven Van Caekenberghe <[hidden email]> wrote: >> >>> >>> On 26 Jun 2014, at 19:07, Dale Henrichs <[hidden email]> wrote: >>> >>>> I think that it is possible to most if not all of the git work support into the Smalltalk development environment ... I am doing that for GemStone with tODE[6] and I do find myself going to the go to the command line much less frequently ... but in tODE I have built a git merge tool and a git diff tool ... you can get the git history of a method from the browser, etc. >>>> >>>> Without a relatively high degree of tool integration it can be clunky to use git ... I am very willing to share what I've done/learned in tODE with Pharo tool builders and of course I think Thierry Goubier has actually been ahead of me in several different areas ... >>> >>> That is my analysis: it works today, 'perfectly', but there is not enough tools support to make it as easy as Monticello as a whole is today. >>> >>> If these tools exist, or we can build them quickly based Dale's code, that would be cool (I guess its all OSProcess underneath, which I find so/so, a direct integration is better) that would be good. >>> >>> Would having this change our world fundamentally ? No, IMHO >>> Is it worth the effort, is the ROI there ? I don't think so >> >> I disagree here. I think moving our development to git will change deeply (for good) our community processes and then I think it totally worths the effort. >> Of course, important part of the advantages came from the tools around git (like github) more than git itself, but all is one and the same :) >> A couple of examples of what I think will improve our work: >> - pull requests instead SLICES >> - submodules (with different people taking care of them) >> - traceability: you can map an issue with a pull requests directly making it a lot better to query >> >> Then there is other kind of advantages like: >> - better entry-point for newbies to the community (they all expect something like git this days) >> - better visibility >> - confidence. This is subjective but important: companies feel more confident with something like git than a specific tool to keep their sources. >> - we can stop maintaining things like smalltalkhub and important parts of monticello itself and concentrate our efforts in other, more interesting areas >> >> … and there are more. >> >> In conclusion, I think expending time in git integration is one of the best ways to contribute to the develop of Pharo nowadays. >> >> Esteban >> >>> >>> Anyway, it is a delicate subject as it also touches on the representation of the file format. > > |
Yes, Git enables all of code and assets in one single place and tooling that helps a lot with changes ( e.g. gitk ). That is huge in practice. Phil > |
On 26 Jun 2014, at 22:28, [hidden email] wrote: > > Le 26 juin 2014 21:54, "Esteban Lorenzano" <[hidden email]> a écrit : > > > > > > On 26 Jun 2014, at 16:38, Sven Van Caekenberghe <[hidden email]> wrote: > > > > > I know you, and some others, have that opinion and that is OK. > > > I also think that it would be nice to have (better git integration). > > > > > > But we essentially have it today, although a bit cumbersome, awkward (cfr https://github.com/pharo-project/pharo-core). Some of us store all their code in git all the time. > > > > > > My opinion is that it is not per se the most important thing. We have to focus on the aspects where we are better, not try being more the same as everybody else. > > > > > > We need modularisation, better tools, new ways of working with live objects, new interactive representations, mouldable tools, remote image tools, automatic cloud deploys, magic stuff, .. > > > > yes… and better git integration is part of “better tools”. > > and IMO, with the “plus” that it can boost the other areas. > > Yes, Git enables all of code and assets in one single place and tooling that helps a lot with changes ( e.g. gitk ). That is huge in practice. I know that there are lots of git tools out there, but how do these help - they are disconnected from the image, and thus disconnected from our regular way of working (senders, implementors, references, ...). The current source code format in git is cool, but can you manage a merge or diff like that, with all the different parts scattered over 10s, 100s of files, with no matter what tool ? Apart from the fact that such bigger merge is always very difficult, no other tools will support our world view, ever. https://github.com/pharo-project/pharo-core/commit/a4c40ae92c67b2d4d63635d89dac0f7bbaa214d5 You and I understand the above, no Java/C#/Go programmer will. The next discussion will be: what are all those silly method files, why not put them all in one file ? Then the question is, what are all those silly exclamation marks in our file out format ? And so on. I don't want to sound too negative, I just don't belief it will actually make that much difference. > Phil > > > > > Esteban > > > > > > > > On 26 Jun 2014, at 20:52, Esteban Lorenzano <[hidden email]> wrote: > > > > > >> > > >> On 26 Jun 2014, at 14:56, Sven Van Caekenberghe <[hidden email]> wrote: > > >> > > >>> > > >>> On 26 Jun 2014, at 19:07, Dale Henrichs <[hidden email]> wrote: > > >>> > > >>>> I think that it is possible to most if not all of the git work support into the Smalltalk development environment ... I am doing that for GemStone with tODE[6] and I do find myself going to the go to the command line much less frequently ... but in tODE I have built a git merge tool and a git diff tool ... you can get the git history of a method from the browser, etc. > > >>>> > > >>>> Without a relatively high degree of tool integration it can be clunky to use git ... I am very willing to share what I've done/learned in tODE with Pharo tool builders and of course I think Thierry Goubier has actually been ahead of me in several different areas ... > > >>> > > >>> That is my analysis: it works today, 'perfectly', but there is not enough tools support to make it as easy as Monticello as a whole is today. > > >>> > > >>> If these tools exist, or we can build them quickly based Dale's code, that would be cool (I guess its all OSProcess underneath, which I find so/so, a direct integration is better) that would be good. > > >>> > > >>> Would having this change our world fundamentally ? No, IMHO > > >>> Is it worth the effort, is the ROI there ? I don't think so > > >> > > >> I disagree here. I think moving our development to git will change deeply (for good) our community processes and then I think it totally worths the effort. > > >> Of course, important part of the advantages came from the tools around git (like github) more than git itself, but all is one and the same :) > > >> A couple of examples of what I think will improve our work: > > >> - pull requests instead SLICES > > >> - submodules (with different people taking care of them) > > >> - traceability: you can map an issue with a pull requests directly making it a lot better to query > > >> > > >> Then there is other kind of advantages like: > > >> - better entry-point for newbies to the community (they all expect something like git this days) > > >> - better visibility > > >> - confidence. This is subjective but important: companies feel more confident with something like git than a specific tool to keep their sources. > > >> - we can stop maintaining things like smalltalkhub and important parts of monticello itself and concentrate our efforts in other, more interesting areas > > >> > > >> … and there are more. > > >> > > >> In conclusion, I think expending time in git integration is one of the best ways to contribute to the develop of Pharo nowadays. > > >> > > >> Esteban > > >> > > >>> > > >>> Anyway, it is a delicate subject as it also touches on the representation of the file format. > > > > > > > > > > |
In reply to this post by EstebanLM
On Jun 26, 2014, at 3:52 PM, Esteban Lorenzano <[hidden email]> wrote: On 26 Jun 2014, at 14:56, Sven Van Caekenberghe <[hidden email]> wrote: big +1 here The social benefit of having your code exposed in places like github outweighs by at an astronomical scale the current lack of amazing mergetools If your code cannot be exposed without friction you’re done The noise of the jungle of 3-new-libraries-per-day-that-can-be-installed-in-one-shot will make your work invisible |
another advantage of git is source code searches. It will essentially allow pharoers to search pharo code online and not just being isolated in their image. The search does not return just a whole library but even code fragments.
On Fri, Jun 27, 2014 at 12:17 AM, Sebastian Sastre <[hidden email]> wrote:
|
My favorite feature by far is the ability to look at the git history of the methods themselves ... just the other day I had a bug that I was tracking down, and by looking at the git history I discovered that a critical change had been made to that method 1 year 12 days ago ... from that I was able to look at all of the changes to all of the packages that had been made in the same commit (the critical code had not only been moved to a different class but the critical method had been moved to a separate package ... and from that I was able to see that a bug had been introduced when not all of the critical method was moved ... bug fixed ... Besides method versions, you can look at the git history for a class, package or metacello project .... these are thing that would take a bit of work to accomplish using just Monticello ... and if you were to attempt to do it, the simplest thing to do would be to copy all of the packages into a git repository and just use git:) Frank Shearar wrote some code that did something along these lines a couple of years ago ...
Dale On Thu, Jun 26, 2014 at 2:21 PM, kilon alios <[hidden email]> wrote:
|
That is cool, but you/we can do that today, Pharo's full source is on github for quite some time now.
@Sebastian So we are on github, gemstone even more, cuis too. And Squeak is not. Did anything change dramatically ? There are thousands of languages and systems on github, I like it too, but just being there makes little difference. It is just a tool, a good one, but no more. On 27 Jun 2014, at 00:16, Dale Henrichs <[hidden email]> wrote: > My favorite feature by far is the ability to look at the git history of the methods themselves ... just the other day I had a bug that I was tracking down, and by looking at the git history I discovered that a critical change had been made to that method 1 year 12 days ago ... from that I was able to look at all of the changes to all of the packages that had been made in the same commit (the critical code had not only been moved to a different class but the critical method had been moved to a separate package ... and from that I was able to see that a bug had been introduced when not all of the critical method was moved ... bug fixed ... > > Besides method versions, you can look at the git history for a class, package or metacello project .... these are thing that would take a bit of work to accomplish using just Monticello ... and if you were to attempt to do it, the simplest thing to do would be to copy all of the packages into a git repository and just use git:) Frank Shearar wrote some code that did something along these lines a couple of years ago ... > > Dale > > > > On Thu, Jun 26, 2014 at 2:21 PM, kilon alios <[hidden email]> wrote: > another advantage of git is source code searches. It will essentially allow pharoers to search pharo code online and not just being isolated in their image. The search does not return just a whole library but even code fragments. > > > On Fri, Jun 27, 2014 at 12:17 AM, Sebastian Sastre <[hidden email]> wrote: > > On Jun 26, 2014, at 3:52 PM, Esteban Lorenzano <[hidden email]> wrote: > >> On 26 Jun 2014, at 14:56, Sven Van Caekenberghe <[hidden email]> wrote: >> >>> >>> On 26 Jun 2014, at 19:07, Dale Henrichs <[hidden email]> wrote: >>> >>>> I think that it is possible to most if not all of the git work support into the Smalltalk development environment ... I am doing that for GemStone with tODE[6] and I do find myself going to the go to the command line much less frequently ... but in tODE I have built a git merge tool and a git diff tool ... you can get the git history of a method from the browser, etc. >>>> >>>> Without a relatively high degree of tool integration it can be clunky to use git ... I am very willing to share what I've done/learned in tODE with Pharo tool builders and of course I think Thierry Goubier has actually been ahead of me in several different areas ... >>> >>> That is my analysis: it works today, 'perfectly', but there is not enough tools support to make it as easy as Monticello as a whole is today. >>> >>> If these tools exist, or we can build them quickly based Dale's code, that would be cool (I guess its all OSProcess underneath, which I find so/so, a direct integration is better) that would be good. >>> >>> Would having this change our world fundamentally ? No, IMHO >>> Is it worth the effort, is the ROI there ? I don't think so >> >> I disagree here. I think moving our development to git will change deeply (for good) our community processes and then I think it totally worths the effort. > > > big +1 here > > The social benefit of having your code exposed in places like github outweighs by at an astronomical scale the current lack of amazing mergetools > > If your code cannot be exposed without friction you’re done > > The noise of the jungle of 3-new-libraries-per-day-that-can-be-installed-in-one-shot will make your work invisible > > > > > > |
On Jun 26, 2014, at 7:58 PM, Sven Van Caekenberghe <[hidden email]> wrote: @Sebastian It’s a tool that isn’t too interesting as tool But it is in the part that it leverages the social aspect of coding Dramatic changes why expect that? You are only creating the chances to make your code more accessible and less alien to fresh eyes Did I say social already? Should say social one more time? like when people talk about things and collaboration might emerge?
|
Administrator
|
In reply to this post by Sven Van Caekenberghe-2
I've seen the work that Dale's done with tODE. Can you manage a merge with so many files? Yes, without a doubt. Does git do an excellent job of merging and differencing? Absolutely. In terms of making a difference, I'm of the opinion that git provides something modern, universal, and comparable to ENVY (which I have used for most of the last 20 years and admire immensely). Are there more important things to do? Without a doubt. Is this worth too little to bother with? Absolutely not. git will facilitate configuration management (not just versionning) and will also greatly facilitate cross-dialect compatibility. The ability to easily pick up an offering from one Smalltalk and fork it with small changes for another dialect will be nirvana for many of us. |
In reply to this post by Sven Van Caekenberghe-2
Sven, You don't believe that it is worthwhile ... that's okay ... you are entitled to your beliefs. Frankly, when you integrate git into a Smalltalk environment (and I have) you are not messing with 100's of little files ... you are working with methods and packages and classes ... the stuff that Smalltalk programmers work with every day ... and I don't even think about how the source is being stored because in my environment I work with methods, classes and packages and I rarely look at the disk (just like most Smalltalk programmers and unlike most Java/C#/Go programmers:)...
Git brings another dimension to my smalltalk development experience in a couple of very critical areas, so I don't have to believe, I know... I do believe that it is worthwhile to integrate git into Smalltalk development environments and I'm doing something about that and I am willing to help other folks with similar beliefs ...
So at the end of the day you can be as negative or as positive as you like and I will continue to plug away:) Dale On Thu, Jun 26, 2014 at 2:04 PM, Sven Van Caekenberghe <[hidden email]> wrote:
|
In reply to this post by Uko2
Le 26/06/2014 19:11, Yuriy Tymchuk a écrit : > I can only suggest you to read my blogpost about configurations and versioning: http://sleepycoders.blogspot.ch/2014/04/how-to-distribute-your-github-pharo.html > > I usually mix filetree and gitfiletree. Last one is better, because you don’t have to remember to commit in git each time you commit in pharo. > (Also I think that gitfiletree is not working with Pharo4) Because I haven't spent the time updating the configuration for that :( I'm pushing small changes on GitFileTree at the moment; a Pharo4 version should come soon. Thierry -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95 |
In reply to this post by stepharo
Hi Stéphane,
I have to admit then that my presentation to you a month ago was a failure ;) Thierry Le 26/06/2014 18:27, stepharo a écrit : > Hi > > I do not know the dif between git file tree, file tree.... and I would > like to know how to get > started with git in Pharo? > > What should I read? > > Stef > > -- Thierry Goubier CEA list Laboratoire des Fondations des Systèmes Temps Réel Embarqués 91191 Gif sur Yvette Cedex France Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95 |
Free forum by Nabble | Edit this page |