[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Wed, 26 Mar 2008 02:47:06 -0700 (PDT)
I sent my original questions to Dave Thomas (of
pragmatic programmers) and he suggested I join and
post my message to the pragmatic programmers group. I
tried this without much success so I thought I would
try here it is a little long so I hope you do not
I work as a contractor so I usually inherit many old
legacy projects. I have been jumping back and forth
between development and management for about 17 years,
so recently I started to learn and re-learn some
skills. I have being going through a few of the
pragmatic titles and the CVS one in particular is
relevant to my current project.
We have a small client/server project, the client and
server are separate projects in CVS and consist of
shell/Perl scripts, config files, Word documents and a
couple of C files. The client is currently on AIX,
the server on SunOS.
The project is several years old and has not been
touched since 2005. On inspection I found many big
differences between the client sources and the client
in the production environment, (i.e. several people
have applied undocumented changes in production
without updating CVS!).
For the client I checked out the latest (mainline)
legacy code, applied lots of changes seen in
production and re-designed several parts); I then used
this as a baseline to create a completely new client
project called 'eclient'.
I then made some minor changes to the mainline and was
ready to release.
To follow the pragmatic guidelines I created a branch
'eclient_RELB_2_0', so work could continue on the
mainline; however, I was the only developer so there
were no other changes.
I was then ready to release so I created a branch
So my first question is do you think it was correct to
do it this way?
In this particular case, the mainline, the branch and
the release code are all identical.
So my next question is should I do some kind of merge
(from a CVS administrative view) to synchronize the
release changes into the mainline (even though there
are no actual changes)?
Now in the coming weeks I have to port the new eclient
to Linux, however I will still need to maintain the
AIX version. In reality I will probably be doing all
of the work, however I would like to keep the option
of different people working on different parts.
It is not possible to refactor the core system and OS
specific parts into clean modules. All I can do
(within the project constraints I have) is modify
about 10 files to make them Linux compatible, possibly
with some very minor changes to portable core system
The result is that I will need two different versions
of some files (not ideal I know), and both versions
will need minor updates in the future.
How do you recommend I should proceed?
Any ideas or suggestions are greatly appreciated.
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now.
Looking for last minute shopping deals?
Find them fast with Yahoo! Search.
- Pragmatic CVS,
Mark Smith <=