Plan for Paul Dana
by Paul Dana · 09/20/2004 (5:50 pm) · 6 comments
Automatic Shield. Cool huh?Wan't to see cool pictures like the one above? Well forget about it! It's not gonna happen in this plan. You'll have to see My Last Plan for that sort of thing. It was much better than this one! It told the exciting story of the gameplay changes made to Bit Shifter since we last started doing open alpha testing.
This plan is boring. It tells the dull and yet painful story of merging Bit Shifter codebase, based on a Torque Game Engine source from July of 2003, with the latest 1.3 release of TGE. After a year and two months a lot of changes can accumulate between the ever improving HEAD TGE codebase and my ancient one. When you see a Diff like this one at 2AM you know it's time for bed:

Luckily I have a simple policy I have used for the entire year and a half I have been working on Bit Shifter. I mark all changes with comments. All changes. And so merging with 1.3 actually only took about 4 boring hours of boring merging of C++ code and then an hour of debugging to find the issues that had dropped through the cracks.
Also the laptop I was using to host both the Subversion repository and the Tomcat JSP server picked this weekend to die, so I had to set all that stuff up again and restore from backups.
Bah. If it ain't one thing it's another.
Long story short I have Bit Shifter newly ported to the 1.3 TGE codebase. This will help with the Mac porting that needs to happen soon if I am goingn to show Bit Shifter on a Mac at IGC. Jason and Anthony have been working on maps so those are ready. Tomcat is back up so we can run the automated questionnaire system. i.e., we are ready!
Look for a dev snapshot sometime this week announcing that we are ready to start the Bit Shifter Open Alpha.
#2
09/20/2004 (7:07 pm)
Nice shield
#3
09/20/2004 (7:51 pm)
last plan rocked the gg house... still, anything with screens is great, and that's one good looking shield... nice to read about how you're implementing 1.3, I was wondering how people are handling that and how to prepare code to get ready for even further upgrades (1.4, 1.5...). good luck with bit shifter, it has a lot of promise!
#4
Working with many people on a team and getting changes from GG, resources, code snippets, other sites and my own people, I need a way to merge it all quickly and efficiently. I started with CVS and labeling everything but that quickly went to hell when people started posting patch files and resources had files to be inserted. So in the interest of my sanity I began looking at merge tools.
My solution - Araxis Merge Professional. Best money I ever spent on a software tool. It allows you to look at three columns of data at one time. Why is that so important?
I can look at a clean 1_2_2 Release; a 1_3_0 Release; and my own stuff side by side. I can see every change GG has put in, and every change I have put in. Makes it tons easier to have a reference to go back to when doing merges.
Or I can take a copy of 1_2_2, patch it with a resource, test it to make sure it does what it claims, then use the 1_2_2 version, the patch version, and my version to see exactly where the patch "did its thing" and move it over myself.
You can edit any of the three columns, move files back and forth, delete them, and undo changes. Things require confirmation at the end and it tells you which of the three files have been altered. You can choose to save one and not save the others. So you can work to merge all three files to look alike and then just save your copy leaving the tagged release versions unchanged.
The other thing is, after a while you see the changes so often you gradually begin to realize exactly what they are before you get to them. Some differences are simply not issues - some files have internal version numbers and dates that change with recompilation - so you know you can ignore them.
Oh yes, in addition to showing you three files at a time, like most merge programs it will allow you to compare directory structures - so you can compare tse, tge, and realmwars and see just what has changed. (Of course you do have to choose between making all the tse files .cc or making the tge and realmwars files .cpp but thats just a minor quibble.)
Moving, merging and deleting trees works pretty well and it doesn't take long to get used to using the program effectively. It has other features that I have never even played with - it does what I want so I don't waste a lot of time exploring, although I bet it could do a wicked search function.
I have used some of the others and they do a good job too, but three column comparison is definitely the way to go.
09/21/2004 (5:46 am)
Paul,Working with many people on a team and getting changes from GG, resources, code snippets, other sites and my own people, I need a way to merge it all quickly and efficiently. I started with CVS and labeling everything but that quickly went to hell when people started posting patch files and resources had files to be inserted. So in the interest of my sanity I began looking at merge tools.
My solution - Araxis Merge Professional. Best money I ever spent on a software tool. It allows you to look at three columns of data at one time. Why is that so important?
I can look at a clean 1_2_2 Release; a 1_3_0 Release; and my own stuff side by side. I can see every change GG has put in, and every change I have put in. Makes it tons easier to have a reference to go back to when doing merges.
Or I can take a copy of 1_2_2, patch it with a resource, test it to make sure it does what it claims, then use the 1_2_2 version, the patch version, and my version to see exactly where the patch "did its thing" and move it over myself.
You can edit any of the three columns, move files back and forth, delete them, and undo changes. Things require confirmation at the end and it tells you which of the three files have been altered. You can choose to save one and not save the others. So you can work to merge all three files to look alike and then just save your copy leaving the tagged release versions unchanged.
The other thing is, after a while you see the changes so often you gradually begin to realize exactly what they are before you get to them. Some differences are simply not issues - some files have internal version numbers and dates that change with recompilation - so you know you can ignore them.
Oh yes, in addition to showing you three files at a time, like most merge programs it will allow you to compare directory structures - so you can compare tse, tge, and realmwars and see just what has changed. (Of course you do have to choose between making all the tse files .cc or making the tge and realmwars files .cpp but thats just a minor quibble.)
Moving, merging and deleting trees works pretty well and it doesn't take long to get used to using the program effectively. It has other features that I have never even played with - it does what I want so I don't waste a lot of time exploring, although I bet it could do a wicked search function.
I have used some of the others and they do a good job too, but three column comparison is definitely the way to go.
#5
09/21/2004 (6:58 am)
I like araxis merge pro too. Used to use it at work before we got perforce (which roxxor better than ANYTHING else in the world btw).
#6
Even so...you still can't beat marking your changes. Five hours is not too shabby for merging in fourteen months of changes. Also marking your changes only makes the diff reports more clear.
09/22/2004 (3:21 am)
Sounds like a great tool. Thanks for advice. Even so...you still can't beat marking your changes. Five hours is not too shabby for merging in fourteen months of changes. Also marking your changes only makes the diff reports more clear.
Torque 3D Owner Eric Forhan
And yeah... your last .plan was pretty cool. ;-)