[crossfire] Moving server towards a modularized system?

tchize tchize at myrealbox.com
Wed Jan 18 13:10:30 CST 2006


Le Mercredi 18 Janvier 2006 15:42, Miguel Ghobangieno a écrit :
>Except that you are not working on one section of the
>code, you are restructuring the whole server into
>diffrent modules. This means that if you develop in
>cvs there will be breakage with any and everyone else
>as you sweeping edits touch every facet of the glory
>that is crossfire.
>
>The C in CVS may mean concurrent but it doesn't mean
>perfect.
>
>If you want to make the sweeping changes on your own
>system; enjoy. But please, before committing to cvs do
>extensive bugtesting so that it 1) doesn't make the
>code any slower, 2) doesn't break anything, and 3)
>maybe makes MS less of a hog?
>

First, it will be a step by step change. For the obvious reason, a patch 
changing 40% of server code would take weeks to create and during this 
change, developper of the patch would have to do a regular 'cvs update' to 
incorporate other developpers change and would have to adapt each of their 
change to new modular system.

Second, indeed cvs isn't perfect. It's written in there doc, nothing can 
replace the coder in case of a conflict (eg we are moving away the whole 
parts of move_apply() somewhere else and at same time another developper is 
trying to add new object type). This is not a problem. After cvs update, the 
guys trying to add things to move_apply() will see a conflict in move_apply() 
and will see the other coder comment saying "this code has been mainly moved 
to xyz". Just also move your new add-on.

Once again, there has been restructurations in the past. This of course lead 
to conflicts during cvs update process. Then what? Just fix the conflict. 
That's how teamworks goes. Team is adapting you code changes during their 
development process, when team has commited adapt your uncommited changes to 
what team commited.

Unless you work on a 'checkout, work on my stuff for 2 months locally, try to 
commit', the conflicts shouldn't be a big deal as, once again, it is very 
difficult to commit big patches.


If it is really needed, i suppose the change could be done in a branch. This 
would allow people who want to explore the idea of modularized system to work 
in team and try different paths without fearing the 'try not to break the 
existing'. This head should then be merged on this branch in a regular basis. 
This is lots of additionnal work. But it also has it's gains imho. And when 
modularized system is ok, move it to the head.  But there, this mean when 
branch is finally moved to the head (if idea does not proves to be a dead 
end), people will indeed see a 40% of server code patch coming.


-- 
--
Tchize (David Delbecq)
tchize at myrealbox.com
Public PGP KEY FINGERPRINT:
    F4BC EF69 54CC F2B5 4621  8DAF 1C71 8E6B 5436 C17C
Public PGP KEY location:
    http://wwwkeys.pgp.net/pgpnet/wwwkeys.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://shadowknight.real-time.com/pipermail/crossfire/attachments/20060118/06adc2f6/attachment.pgp


More information about the crossfire mailing list