Here's a series of steps I'm following for using Git to store the source code of some Pharo experiments I'm working on.
I'm starting learning about Pharo. The information on this post is based on the nice Pharo and Github using Sourcetree video and an introduction to Monticello.
Configuring a repository
We can start by creating a repository that is located in the filesystem. To define configure this repository we open the "Monticello Browser" from the "World" menu and press the "+Repository" button.
We are going to select the filetree:// repository type. This is useful to store the code in separate files.
When this option is selected the UI will prompt us for the folder where the code will be stored. We are going to specify a directory where we executed the git init command . Other source control systems could be used to manage this directory since it will contain the source code as text files.
Creating a package
Now we're going to define a package where we will the create the code to be stored in source control. To define the package we open the "Monticello Browser" from the "World" menu and press the "+Package" button.
Now we can create a class inside this package. We are going to define the GameOfLifeMorph class to be in the GameOfLife category.
We are going to add a method to the GameOfLifeMorph class.
After adding these elements we can save the changes to the GameOfLife package. We can review the changes before saving by pressing the Changes button on the "Monticello" browser.
This option opens the following screen to review the changes before saving.
After reviewing the changes we can save the changes to the file system using the Save button in the "Monticello Browser" window. Now we can go to the command line to directory we selected when creating the repository and execute a git status command.
~/devel/pharo/GameOfLife$ git add .filetree GameOfLife.package/
~/devel/pharo/GameOfLife$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: .filetree
new file: GameOfLife.package/.filetree
new file: GameOfLife.package/GameOfLifeMorph.class/README.md
new file: GameOfLife.package/GameOfLifeMorph.class/instance/initWithRows.columns..st
new file: GameOfLife.package/GameOfLifeMorph.class/methodProperties.json
new file: GameOfLife.package/GameOfLifeMorph.class/properties.json
new file: GameOfLife.package/monticello.meta/categories.st
new file: GameOfLife.package/monticello.meta/initializers.st
new file: GameOfLife.package/monticello.meta/package
new file: GameOfLife.package/monticello.meta/version
new file: GameOfLife.package/properties.json
~/devel/pharo/GameOfLife$ git commit -m "First commit"






