Lead Developer, Stardock Entertainment
Published on September 15, 2006 By CariElf In GalCiv Journals
We started working on Dark Avatar before we even started 1.3, so we've essentially been working on two different code bases (I'm leaving out most of the technical details to spare the non-coders). Well, with 1.31 up it was time to merge the Dark Avatar code back into the 1.3 code. I was getting increasingly nervous about the merge because our version control program doesn't always handle file comparison and merging that well, and we changed A LOT of files, including converting all of the models from text to binary files. We also had several files (and functions) that were changed in both 1.3 and Dark Avatar, with different changes that all needed to be in the final version. Now, our version control software will let us go back to any version that we've tagged, and we tag the code almost every time we put a build up on SDC (a few of the betas usually slip through the cracks). So if the merge didn't go well, we could always do it manually from the tagged versions of 1.3 and the initial Dark Avatar code.

I made everyone stop coding yesterday, made sure that everyone had checked in everything, told them all to stay out of the version control software and started the merge process. Once the files were merged, I had to go through them all and fix the conflicts. I finished a few hours ago (including making sure that it compiled and ran) and committed all my changes to the server. Now it's just a matter of going through and making sure that everything made it. From the files that I looked at while fixing the conflicts, the merge went far better than I expected it would. I went around and told everyone that they could update their code. Now I'm tagging the code again, so that if we need to go back to this point in the code, we'll be able to do it.

I think that we're making good progress with Dark Avatar. I'm definitely glad that we've finally got all the code merged,so that it's not hanging over my head anymore.

Comments
on Sep 15, 2006
Ok, this is odd. Cari's Journal entry shows up as black text in Opera 9.01. Frogboy's, directly below it, shows up fine. I've noticed this problem before but didn't mention it (incidentally also with Cari's journal entries IIRC). No display issue with IE and when I click on the comments section in order to post it shows up fine too. To be clear the black text only shows when I view the entry at this link:

https://www.galciv2.com/Journals.aspx

No biggie, just an oddity I thought I'd mention it.


Now to figure out why my metaverse stuff disappeared again.

Edit: Hm, medals don't want to show up in Opera either (works in IE). Still, I'm not gonna crack and use IE. I'll figure this out eventually....
on Sep 15, 2006
Keep up the great work... any idea of a timeline for release (maybe... please?) Con't wait for that Epic Generator feature!
on Sep 15, 2006
October is the target as far as I know.
on Sep 15, 2006
What version control software are you using? CVS?
on Sep 16, 2006
Great stuff Cari, Iam glad you guys got all the major issues handled in 1.31 and now you can get on with the DA with full steam.
on Sep 16, 2006
Great news, thanks Cari!

our version control program doesn't always handle file comparison and merging that well


Please tell us what you're using. I was forced to use M$ Visual SourceSafe for years, and am finally getting a chance to look into alternatives   
on Sep 16, 2006
Hehe, I feel your pain. The product I work on is based on code developed by a university research group, and we went through almost 2 years of development on our branch, separate from theirs. Now comes the time to merge those two conflicting beasts together. It's enough to drive someone insane...


-Cauldyth
on Sep 17, 2006
I'm curious what revision control software you use as well...

Clearcase is the best I've used, and it has excellent file comparison and merge capabilities. CVS is OK if you use a decent graphical front end for it.

My advice as a veteran of several painful "mega-merges": I've found that if you have two code bases you know will eventually need to be merged, it is much better to put in the ongoing effort to keep them as in-sync as possible, rather than wait until the end. Ie: if you had merged the 1.3-series edits forward into DA's code (where possible), simultaneously with it being added to 1.3, or in small batch deliveries soon afterwards, the eventual folding of the DA code back into the 1.3 series would be much easier (or even possibly as trivial as renaming DA to be "1.32"). This means more work for the developers up front (and some grumbling from them, perhaps), but greatly reduces both the likelihood of merge conflicts and the need for risky hand-merging of those conflicts. Plus, anything that gets broken by a smaller merge gets discovered sooner and it's easier to track down the problem since there are fewer changes that could have caused it.

Just my 2 cents.
-LintMan
on Sep 17, 2006
Woot

What you said is way above my head but looking forward to the release anyhow
on Sep 17, 2006
I recommend Subversion, but you seem to be a Microsoft shop, so I kind of doubt you'd switch, its very cool though.
on Sep 18, 2006
They're just trying to make it sound like they're not playtesting all day.
on Sep 18, 2006

What version control software are you using? CVS?

Yup.. It's not the best app in the world, but it does the job.