Store and merging

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Store and merging

Otto Behrens

Hello,

We use VisualWorks 7.4 with Store. I would like to get some help on merging using Store; any help on this will be appreciated. We try to work in an XP (-ish) way regarding source code management (and some other things). This is more or less how we work with something like Subversion or CVS.

We would like to follow this kind of process to add a new feature / fix a bug:

  1. Load the latest version of the “root” bundle; we call this the baseline. (We use a specific “root” bundle that contains other pundles containing classes & methods).
  2. Build test (GemStone) database, write tests, make them work, refactor, run all the tests.
  3. Merge other developers’ changes into the image, build test database, run all tests.
  4. When the all the tests pass, publish the new version of the baseline.

We are finding the Store merging tool difficult to use because 1) we find that we often make incorrect merging choices 2) “real” conflicts (a method was changed by someone else in the baseline as well) does not stand out nicely 3) there is too much clutter in the tool (conflicts which are not conflicts, unrelated methods added by other developers, new methods added by me) 4) it is difficult to determine which method is the right choice in some cases.

Has anyone had the same difficulties when trying to work like this? Does anyone know if there are other ways of using Store to achieve what we want to here? Should we be using another tool? Are we barking up the wrong tree here?

Thanks

Otto Behrens

Reply | Threaded
Open this post in threaded view
|

RE: Store and merging

Terry Raymond

Otto

 

The merge tool has been greatly improved and is available in the

VW 7.4.1 preview directory. It should load into 7.4 with no problem.

 

The process I find that works well is to first make sure you publish

both the baseline version and the branch versions before merging.

Then load the baseline version and merge the branch into the baseline.

 

Terry

===========================================================
Terry Raymond       Smalltalk Professional Debug Package
Crafted Smalltalk
80 Lazywood Ln.
Tiverton, RI  02878
(401) 624-4517      [hidden email]
<http://www.craftedsmalltalk.com>
===========================================================


From: Otto Behrens [mailto:[hidden email]]
Sent: Tuesday, September 05, 2006 5:10 PM
To: Vwnc
Subject: Store and merging

 

Hello,

We use VisualWorks 7.4 with Store. I would like to get some help on merging using Store; any help on this will be appreciated. We try to work in an XP (-ish) way regarding source code management (and some other things). This is more or less how we work with something like Subversion or CVS.

We would like to follow this kind of process to add a new feature / fix a bug:

  1. Load the latest version of the “root” bundle; we call this the baseline. (We use a specific “root” bundle that contains other pundles containing classes & methods).
  2. Build test (GemStone) database, write tests, make them work, refactor, run all the tests.
  3. Merge other developers’ changes into the image, build test database, run all tests.
  4. When the all the tests pass, publish the new version of the baseline.

We are finding the Store merging tool difficult to use because 1) we find that we often make incorrect merging choices 2) “real” conflicts (a method was changed by someone else in the baseline as well) does not stand out nicely 3) there is too much clutter in the tool (conflicts which are not conflicts, unrelated methods added by other developers, new methods added by me) 4) it is difficult to determine which method is the right choice in some cases.

Has anyone had the same difficulties when trying to work like this? Does anyone know if there are other ways of using Store to achieve what we want to here? Should we be using another tool? Are we barking up the wrong tree here?

Thanks

Otto Behrens

Reply | Threaded
Open this post in threaded view
|

Re: Store and merging

Runar Jordahl
In reply to this post by Otto Behrens
You might want to look at the following post:
http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&entry=3243260125

It explains how merging can easiliy be done without first publishing
the code you want to merge in.

Reply | Threaded
Open this post in threaded view
|

Re: Store and merging

Reinout Heeck-2
In reply to this post by Otto Behrens
>    1. Load the latest version of the “root” bundle; we call this the
>       baseline. (We use a specific “root” bundle that contains other
>       pundles containing classes & methods).

Avoid using Bundles, just use packages and dependencies. in an
everybody-owns-the-code process Bundles become a bottleneck for
acquiring new version umbers. This is even worse with nested Bundles.

see also:
http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&entry=3265388740


>    3. Merge other developers’ changes into the image, build test
>       database, run all tests.

This sounds very wrong, never merge other people's code into the
baseline (or your own fork) but merge only your /own/ code into baseline
(I found that using Bundles would make this tendency of having to merge
other peoples code even larger). If you find you have to merge other
peoples code into the base you will lack the knowledge to do this
correctly. Also your tests will be meaningless if you merge them without
sufficient knowledge...



HTH,

R
-