Slice loading/merging differences question
Hi - I am still a bit confused about the difference between load vs. merge with Monticello? Last month, when I tried to verify a bug fix, I did a load - and it caused other things (dependencies?) to be loaded into my clean image and so I ended up with something else in a broken state. So I had to do a Merge - get just the specific fixes and I could prove everything worked. Yesterday however I wanted to test a fix Damien made for bug 13526. But when I Merged it, I hit a DNU and then noticed he had put the following comment (Slice .2 depends on 13787). So I repeated the same merge step for 13787 and it then worked (apart from another edge case I found and he has now fixed). But this has got me thinking, I donât really understand the difference between merge/load. Can someone explain it to me in the above context? Should I have âloadedâ 13526 so that it pulled in the dependency indicated? (I notice in the slice description - it shows - Dependencies: Tool-Base-DamienPollet.24). I thought Monticello managed dependencies - so now Iâm confused why I need to do Merge anyway? Related to this, when the next âreleaseâ image gets built - how are these slices assembled such that Tool-Base-DamienPollet.24 is correctly loaded in release image? Thanks for any help. Tim
Hi Tim, Normally...a load simply loads that version you are telling to load. If you have local changes in any of the packages you will be loading, those changes will be LOST and overridden with the ones of the version you are loading. If you load via Monticello...if usually checks if you already have changes in the packages you are about to load and warns you or directly recommends you to merge (it depends which Pharo version you are working on). The merge...is for when you have local changes in that package you will load. Hence, the merge is the way so that you can merge your local changes and the changes coming from the new version you are about to load. It might have conflicts which need to be resolved. After you have merged, then you can commit your changes if you want. Also, note that you may also be trying to commit and there is a new version of the package from the one you started to change. Therefore, if you commit, you will override last version. Here, again, Monticello usually warns you. So what you would normally do here is a marge again, so that the changes from the last version gets merged with your local changes. After, you can commit without problems. Hope this is clear. Cheers, On Thu, Aug 7, 2014 at 1:15 PM, Tim Mackinnon <tim@testit.works> wrote:
Hi - I am still a bit confused about the difference between load vs. merge with Monticello?
Last month, when I tried to verify a bug fix, I did a load - and it caused other things (dependencies?) to be loaded into my clean image and so I ended up with something else in a broken state. So I had to do a Merge - get just the specific fixes and I could prove everything worked.
Yesterday however I wanted to test a fix Damien made for bug 13526. But when I Merged it, I hit a DNU and then noticed he had put the following comment (Slice .2 depends on 13787). So I repeated the same merge step for 13787 and it then worked (apart from another edge case I found and he has now fixed).
But this has got me thinking, I donât really understand the difference between merge/load. Can someone explain it to me in the above context? Should I have âloadedâ 13526 so that it pulled in the dependency indicated? (I notice in the slice description - it shows - Dependencies: Tool-Base-DamienPollet.24). I thought Monticello managed dependencies - so now Iâm confused why I need to do Merge anyway?
Related to this, when the next âreleaseâ image gets built - how are these slices assembled such that Tool-Base-DamienPollet.24 is correctly loaded in release image?
Thanks for any help.
Tim
-- Mariano http://marianopeck.wordpress.com
to complement mariano great answer. When we integrate changes we systematically merge so that even if you did a fix on a not recent version we get both improvements. Stef On 7/8/14 18:15, Tim Mackinnon wrote:
Hi - I am still a bit confused about the difference between load vs. merge with Monticello?
Last month, when I tried to verify a bug fix, I did a load - and it caused other things (dependencies?) to be loaded into my clean image and so I ended up with something else in a broken state. So I had to do a Merge - get just the specific fixes and I could prove everything worked.
Yesterday however I wanted to test a fix Damien made for bug 13526. But when I Merged it, I hit a DNU and then noticed he had put the following comment (Slice .2 depends on 13787). So I repeated the same merge step for 13787 and it then worked (apart from another edge case I found and he has now fixed).
But this has got me thinking, I donât really understand the difference between merge/load. Can someone explain it to me in the above context? Should I have âloadedâ 13526 so that it pulled in the dependency indicated? (I notice in the slice description - it shows - Dependencies: Tool-Base-DamienPollet.24). I thought Monticello managed dependencies - so now Iâm confused why I need to do Merge anyway?
Related to this, when the next âreleaseâ image gets built - how are these slices assembled such that Tool-Base-DamienPollet.24 is correctly loaded in release image?
Thanks for any help.
Tim
stepharo wrote
When we integrate changes we systematically merge so that even if you did a fix on a not recent version we get both improvements.
Stef - just to check on this, in the case of fogbugz 13526 - if you just merge, you don't pick up the requirement to load fogbugz 13787? So how do the dependencies work with merging? Am I right in thinking that using "Load" - MC uses the dependency information encoded to actually load 13787 as well? When I merged manually in a clean image - I didn't get that dependency (and only spotted it because Damien had mentioned it in the bug text, although I've now noticed it does seem to be encoded in the slice somehow?). This is the bit that is eluding me? Tim -- View this message in context: http://forum.world.st/Slice-loading-merging-differences-question-tp4772352p4... Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
participants (4)
-
Ben Coman -
Mariano Martinez Peck -
stepharo -
Tim Mackinnon