configuration management Questions

First of all, I'm brand new here. Secondly, I searched the forum for an answer to my question but failed to locate one. Apologies if this has been answered elsewhere, please let me know if so. Thirdly, my long & complicated question. (Sorry! CM is hard:)

At my company we are revisiting our branch/merge policy due to some production mishaps. I suspect we may be doing things sub-optimally, but would like your input.

Branch policy in a nutshell: branch from Trunk, using the newest code. I.e., start your project with the latest and greatest (untested code.)

Merge policy in a nutshell:

Part A: When fixing Production, or a downsteam branch, always forward integrate your change to all future branches. It is the responsibility of the production patcher to get their fix into all future projects.correctly. We typically have 6+++ active branches of future work.
Part B: Projects should merge and refresh from Trunk as often as possible, but strive to keep Trunk in a buildable state.

Release situation:
-When ready to release, branch and start testing. Fix bugs in the branch and merge fixes to trunk.
-Weekly Hotfixes
-Monthly Services Packs
-Quarterly Minor releases
-Biannual Major releases

Parallel Streams:
5 different teams, each doing multiple projects and each team doing many smaller tactical feature efforts

Number of developers:
40+ distributed globally; multiple sites / timezones

Tool:
Subversion (but evaluating Git; expensive tools not possible)

Project/Feature Flux:
-Projects are often delayed, rescheduled, reordered, scope is added/ejected late; sometimes in QA
-Certain release dates are etched in stone, but scope is morphable

Product/Business Model:
24x7 mission critical SaaS. This is a for-real mission critical application, not just some ecommerce website that will lose a little money if it's down. 11 years old, hundreds of thousands or millions of lines of code.

Specific Problems encountered:
-Production Fixes getting clobbered when projects go to prod; fixes must be reapplied in an emergency fashion.
-Project cancellation resulted in many ancillary features not being delivered to production because they were irrevocably entangled with the killed project. Many features had to be recoded because extracting them was difficult.

Audit situation:
-Need to show traceability from requirements to approval to migrate to code tested to code deployed. Need to show that only the code tested and approved was migrated. [Not sure how we pass audit since extraneous code is in every release; vestiges of future projects go in too]

My assumption of the "correct" solution:
-Branch new projects from Prod. Keep them separate until time to release. When ready to QA, merge, resolve conflicts, test/fix release. Now only the approved changes are going to Prod and we know we have built upon a stable tested baseline = current prod.

Development objections to my proposal:
-Deferring integration will cause merge conflicts that will be terrible to resolve. Better to smash things together early and find out sooner rather than later where merge conflicts exist and get them resolved.

My Objections to Development's objections to my proposal:

-Deferred integration merge conflict fear is overblown. Won't come up nearly as often as needing to pull changes.
-Deferred integration merge conflicts are easier to resolve than having to *unmerge* a bunch of half-baked projects. Furthermore, deferred integration merge conflicts are easier for QA to test properly, because test scripts are created for said projects. On the other hand, QA cannot test actively for unfinished projects. We rely on regression tests to find problems with unmerges, but this is less reliable, in my opinion, than actively testing two or more projects coming together.
-How do we even know what code we are releasing when everything is smashed together...seems to violate Audit controls...

Has anyone else out there fought this battle before? Would love to hear your perspectives :-)

If i have 5 versions, config spec should point me to 4th version.

it should happen to all files, so i cannot use LABEL.

Thanks in advance.

Thanks,
Ramana

By NPierce - July 18, 20116 Answers

We are in the process of evaluating GiT for our developers to use for source control. We already have CA SCM, but they said it does not branch well so they want to use a different tool just for their development state.

One of the requirements is to lock down the GiT repositories so that each team can only update their code. I'm not seeing a way to do this without giving the developers access to the file system where the code is stored.

We have LDAP and would like to use that so that we don't have to manange security seperately. We would give the team read/write/update access to the folder on the file system, but that would not stop them from updating the code outside of GiT.

Am I missing something?

I have to move ClearQuest along with DB2 database from Windows 2000 server to Windows 2003. The servers are NOT on the same network.

I got my backup and installed DB2 on the new server, restored MASTR database.

However, I get an error message trying to establish this database as new schema repository (using CQ Maintenance tool).

Any suggestions?
Thanks.

We're kind of in a transitional period (for the last 1.5 years too) where we're moving to ClearCase and ClearQuest, but not anytime soon.

So we have CVS/VSS and we're now going to move to CVS on Linux, one thing we don't want to loose is the integration w/ Clearquest.

Has anyone got this to work? Is there a resource on this? Can't seem to find a definitive answer.

Thanks
Pete

We have Windows clients connecting fine to the broker through the GUI. Attempts to run hsql in a command window get past the login and provide a prompt for the SQL Command.

Any select command then hangs. There is no output in the log.

How to debug ?

It's been awhile since I posted anything here, it's just that I came across this:

http://code.google.com/edu/tools101/scm.html#0.1_SCM

With Google use being so widespread, and because "Google Code University (GCU) does not require registration and materials are free to use."

Folks, using this resource will pick up the implied SCM "definition" here of the old bugbear of SCM being seen as just Version Control

Or have we moved on since the days we used to (ty and) fight against this . . . ? . . .

cheers

MJ

By bglangston - June 24, 20116 Answers

The number of people who could spell CM, if you took away 24 letters and gave them two tries, yet have no idea as to what CM really is!

Let's see:

A: I'm a CM'er.
B: Really? What do you do?
A: I do builds.

--------
C: I'm a CM'er.
B: Really? What do you do?
C: I track versions of files.

--------
Hiring Manager: What is your speciality?
CM Specialist: I'm a CM Specialist.
Hiring Manager: Sorry. There is no software component to this product.

--------
I've often wondered where pre-historic man came up with the notion that he could start a fire by rubbing two sticks together.

My company is planning to move to some better tool than CVS/SVN. Hence I as SCM needs to decide which is the ongoing good tool running for SCM for Java/.Net based environment.

Basic Features apart from good SCM requirements, tool should be easy to use & easily automated for Release management/Nightly builds like using Hudson. Good support on editor on windows using Eclipse or so. Tool should be easily integrated with bugzilla/twiki etc.Like CVSWEB good view onto the repo.

Last but not the least a FREEWARE ;)

Thought of github, started exploring it good if experts give the reviews on the same.

Looking forward for comments.

Pages

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.