I am a begginer with Pharo, and I have learnt about Monticello and Metacello.
As far as I understand, Pharo not being file-based means that one cannot use common source control tools such as Git directly. Yet I see some Pharo repositories on Github, such as this one.
Is it possible to back up the cello versioning on Git? How such a workflow would look like?
First of all welcome to Pharo and I hope you enjoy your stay and find it very productive and fun :)
Its possible because first of all you have the option to export your code to a file using a fileout action and you can also do the opposite, import your code back to Pharo with a filein. The problem is that since fileout works per class its quite some manual work. But I have tried this approach and works with git and github.
Of course you quickly will want to automate the generation of files and this is where filetree comes to play. It basically brakes down not just classes but even your methods (class and instance) to files. Everything is nicely organized inside a single folder with each class getting its own subfolder and each method its own st file which is a regular text file as you would expect from any source code file.
gitfiletree that Damien mentions is basically a client for git like magit is for emacs or smartgit. It allows you to use monticello gui to do your git commits, though you still need a terminal to push. The disadvantage of gitfiletree is that it does not work for windows because the OSProcess which a library that allows Pharo to call command line application (which is what git really is) does not work for Windows just yet but its a matter of time.
So if you already familiar and use git for the terminal you dont need gitfiletree anyway and all you need if filetree.
Its not hard per se for a begineer but it could be challenging but unlike Damien I would not discourage especially if you already familiar with git and github.
You can find more information in the Pharo for the Enterprise Book in the chapter Git for Pharo
Pharo for The Enterprise
I use gitfiletree in macos, for my project Ephestos. So far it goes well and I have little reason to switch back to smalltalkhub.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With