On 30.01.14 11:12, Goubier Thierry wrote:
Hi all,

I'm announcing a GitFileTree for Pharo3.0 version with full support for
working from github (and probably all other git remote repositories such
as bitbucket) without touching any git command line, for Linux and Mac
at least (and Windows as soon as someone on windows will write the two
or three lines necessary to use the OSWindows extension).

In short, give gitfiletree: a full url to a github project and a few
other parameters, and it will do :
- clone the repo from github
- set it up as you asked for (branch and all)
- create the right local MC repository
and load whatever you want from a configuration or a Gofer script.

Example :
     MCFileTreeGitRepository fromZnUrl: (ZnUrl fromString:
'gitfiletree://github.com/ThierryGoubier/filetree.git?protocol=git&dir=repository&branch=pharo3.0'
).
     Creates a MC repository on a git clone of
github.com/ThierryGoubier/filetree.git,
     on branch pharo3.0
     stored in a directory named filetree under the Pharo working
directory,
     and pointing to the repository/ subdirectory where the filetree
packages  are kept.

It is possible to add a readOnly parameter to the url: in this case, the
git clone is done with a depth of 1 and the repository disable pull and
push.

For configurations of a project on github, it becomes possible to ensure
a load of ConfigurationOfGitFileTree and then use a gitfiletree url to
clone, setup the local repository and load the package, as is done in
the latest ConfigurationOfAltBrowser.

For newcomers to git and Pharo interested in github, the process is simply:
- create a project in github
     - don't forget to register your ssh key (see the doc at github)
- install the configuratonOfGitFileTree in Pharo, either with the
ConfigurationBrowser or with:
Gofer new
     url: 'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo30/main';
     configurationOf: 'GitFileTree';
     loadStable.
- Add a Git remote repository
     location: the ssh clone URL from github

- you can then start to create packages and save them into that
repository. To propagate changes to github, open the repository and
select Push. To update your local copy from github, open the repository
and select Pull. If you are a git regular user, you can keep your usual
workflow with git and gitfiletree will keep up with you.

How does it interact with git? Does it shell out, call a library or have a full git implementation in Smalltalk?

Cheers
Philippe



Reply via email to