[Glass] Git support

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Fri Feb 19 14:38:25 PST 2016



On 02/19/2016 12:45 PM, Trussardi Dario Romano via Glass wrote:
> Ciao,
>
> 	i do some test with GsDevKit and all work fine.
>
> 	Thanks Dale......
>
> 	Questions:
>
> 	1) i can install the git interface into a Pharo x.y image  ?
>
> 		( for replicate the git support found into Tode into standard Pharo image )
I'm afraid that the code can't just be installed ... I think that the 
TDGitTool class could be ported to Pharo and I would be willing to help 
in that effort, but this would only get you a Smalltalk API and there'd 
still be work in getting it part of a Pharo-style GUI ...
> 	
> 		
> 	2) what is the last version of GsDevKit i can download and the relative Glass version ?
Are you asking about https://github.com/GsDevKit/GsDevKit or 
https://github.com/GsDevKit/GsDevKit_home and 
https://github.com/glassdb/glass?

I recommend that you always use the latest commit on the master branch 
of https://github.com/GsDevKit/GsDevKit_home and you should always be 
able to run:

   $GS_HOME/bin/updateGsDevKit -g

to get the latest commit for GsDevKit_home. I send mail to this list 
when I've made significant changes that need something more than 
`updateGsDevKit -g` to work with.

The same caveat goes for GLASS (https://github.com/glassdb/glass) it 
should always be safe to load the latest commit on the master branch. To 
know if you're using the lastest version of GLASS, you can look at the 
"network graph"[3] and see the SHA of the latest commit on the master 
branch and if that doesn't match what you see in the project list, you 
can do a `Git >> pull` on the `project list` menu for GLASS1 and then 
`load` the project to get the update ... if you haven't upated a stone 
with the lastest version from the local clone, the project will be red 
in the `project list` --- this means that there is a difference between 
the code in the clone and in your image --- your image will work fine 
and you only need to update when you want to ... the red is just 
reminder that there is a difference or skew between the versions.

Nothing is ever committed to the master branch of these two projects 
without having passed the travis tests([1] and [2]).



[1] https://travis-ci.org/GsDevKit/GsDevKit_home/branches
[2] https://travis-ci.org/glassdb/glass/branches
[3] https://github.com/glassdb/glass/network

>
> 	3) there's a documentation about the Tode philosophy for understand how use it ?
> 		
> 		Create new database? Import - manage the same package into more database ?........  ????
>
Not quite yet ... it is pretty much the second or third item on the 
documentation to do list, but I can give you some short answers.

Create a new database?
---------------------------------

When you run createStone, the stone will be created with the current 
checkout versions in each clone. So new stones will be built with the 
latest version of all of the code that you're using.

Manage the same package in more than one database?
--------------------------------------------------------------------------

I recommend that you use the 'project list` `save` menu item for a 
project (or the `project commit` command line command --- same 
functionality) as this saves all dirty packages associated with a the 
project and then does a `git commit` and updates the SHA in the `project 
list` for that project.

If you are sharing a project amongst several stones, once you've done a 
commit to the shared git clone (or done a `pull` or otherwise change the 
SHA of the clone) the fact `project list` will turn the project red in 
other stone's so that you will know that there is `version skew`. The 
`skew diff` menu item will show you the changes between the two commits 
and you can judge whether you want to update your stone (`project load` 
or `load` menu item) or defer the update til a later date ...

If you want to make changes to a shared git repository, but you want to 
isolate those changes from all of the stones currently using the clone, 
you can arrange to clone a version of the git repository that is 
"private" to the stone and you can make changes without it showing up on 
the "radar" for other stones ...

------
Go ahead and ask additional questions ...

Dale


More information about the Glass mailing list