Hi,

I have been working in a similar setup for more than a year. I used filetree, with the problem you describe (double code maintenance both in git and in Monticello, which often resulted in lost Monticello versions in the git history). You also have the fact that, when you merge under git, most often than note the monticello.meta/version file will generate a conflict.

So I added a better git support to filetree, calling it gitfiletree://. It's integrated into (https://github.com/dalehenrich/filetree) with the following workflow : * When you save under Monticello, you commit with git with a comment which is your Monticello comment. * When you open your gitfiletree repo in Monticello, what you see is your git history filtered by the package (ancestors and all), not the Monticello history (i.e. if you modify or merge outside smalltalk, it will show up in Monticello), and not the full git repo history. * The version and other metadata stuff will probably cause merge conflicts, but gitfiletree never reads them anymore : all the package info data (author, timestamp, comments, history) is taken from the git commit history.
* Monticello diffs will be the same as in git, without the metadata noise.

Otherwise, it's filetree compatible (you can read your HEAD with filetree), and it integrates with Gofer well (you can import a mcz based repository into git, keeping the history).

The current MonticelloFileTree configuration has a MonticelloFileTree-Git group to load it.

If there are things in the Workflow you'd like to see, then this can be implemented.

Thierry

Le 30/07/2013 12:03, joerick a écrit :
I work on a project that uses smalltalk as a part of a larger system. We
version control most of the code (Objective-C, mainly) using Git. Currently
the repo has a build script under version control which specifies the
monticello package versions to fetch for a given commit. This works okay,
and keeps everything in step, but the change histories are in two places
(Git and monticello) which is undesirable, and branching/merging is
difficult.

I'm looking at using filetree (https://github.com/dalehenrich/filetree) to
store the smalltalk source in the git repo. I was wondering what the
workflow is within the image.

Is there an easy way to keep the code on the filesystem in sync with the
code in the image? At the moment it seems that there will be a lot of
loading/saving in the monticello browser whenever I change code either using
git or within the image.

For example, do I have to save code out to the filesystem using the
Monticello browser, and then inspect the diffs in git?



--
View this message in context: 
http://forum.world.st/Git-filetree-workflow-tp4701465.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




--
Thierry Goubier
CEA list
Laboratoire des Fondations des Systèmes Temps Réel Embarqués
91191 Gif sur Yvette Cedex
France
Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95

Reply via email to