You should fork the FileTree repository into your own github account and do the development work there.
Issue a pull request when you have things working.
There are 4 dialect-specific branches:
The master branch is where the common code resides. Typically specific commits are cherry-picked from a dialect-specific branch.
The master branch changes are then merged individually into each dialect-specific branch.
Once you've forked the FileTree project and cloned the repository to your local disk add a topic branch rooted at the HEAD of the dialect-specific branch you are working on. Here's an example using the pharo branch:
git checkout -b Issue143 pharo1.3
Do all of your work on this branch and when it is time to merge your work back into the pharo branch use the following:
git checkout pharo1.3
git merge Issue143
git push origin pharo1.3
I'm trying a little experiment with the tests in FileTree. In Monticello it is very painful to create good tests that exercise loads with various attributes, because you have to have a large number of separate tests packages and it is a royal pain to keep all of the test packages in synch ... You can build a bunch of resources for dictionary-based repositories (as is done for Gofer and Metacello), but it is still painful to manage the resources.
For FileTree, I've decided to create a suite of test repositories. Currently there are two repositories ver01 and ver02, that contain slightly different versions of the Cypress-Mocks package.
The tests themselves are located in a separate test repository. Loading the tests involves attaching to the test repository and loading the code:
Gofer new
repository: (MCFileTreeRepository new directory:
(FileDirectory on: '/opt/git/filetree/tests/repository/'));
package: 'MonticelloFileTree-Tests';
load.