FW: [cvsnt] Trialing CVSNT and have some questions
Richard Moore
moorerad at iinet.net.au
Sun Feb 1 11:33:42 GMT 2004
Thanks Glen & Tony.
We had planned to have users check-out in VSS when they start playing with a
file, and when committing using WinCVS I was hoping I could get CVSNT to
perform a VSS check-in, so as to try to main the integrity of both VSS &
CVS.
We were intending to run with one "main" CVS branch and everyone just work
off that. If a conflict was to arise then it was going to be to the two
developers concerned to sort it out.
Kind regards
Richard Moore
-----Original Message-----
From: cvsnt-bounces at cvsnt.org [mailto:cvsnt-bounces at cvsnt.org] On Behalf Of
Glen Starrett
Sent: Sunday, 1 February 2004 04:21
To: cvsnt at cvsnt.org
Subject: Re: [cvsnt] Trialing CVSNT and have some questions
Tony Hoyle wrote:
> Richard Moore wrote:
>
>> 1. When committing a change they would like to see what "merging" is
>> about
>> to take place.
>
>
> Merging doesn't take place during a commit, but during update, so
> there's nothing to see.
>
Just to expand a little on Tony's comments: One model (largely regarded
as the best model) for handling multiple developers editing the same
code base is to use branches. Read about that in the wiki and the
sources online, but in a nutshell:
--The developer branches from the main trunk
--Developer works on function X
--When complete, developer merges changes for function X into the main
branch again.
At each step the code can be committed and therefore is preserved
independently of the other work going on in the project. The branch
serves to isolate one developer's changes from the others. While you
can merge at any time, you aren't forced to.
When you do decide to merge the changes (in any direction), the typical
procedure is:
--Commit your sandbox
--Merge changes from the other branch | main in
--Verify the changes (that's your "how do we see what has changed"
question). Use "cvs diff" or TortoiseCVS has a nice diffing function
when used with WinMerge, for example. I am in the habit of inspecting
ALL merged changes, but it's proving unnecessary and I'm getting much
faster at scanning a large amount of changes.
--Commit the merged code.
Note that none of the files were affected at the moment of the merge.
It was only after you had the chance to review those changes and then
purposefully committed them did it update the repository. Used this
way, CVS is _very_ safe.
There's another, less safe way without branches. Just try to commit.
If someone else changed the same file in the same line of development,
then you'll get a warning from CVS. You can see the differences if you
do a CVS DIFF -r HEAD. You will need to Update at that time which will
merge in the changes from MAIN into your code. The downside to this is
that if you want to roll back, you haven't previously committed your
original changes and that file has been altered by the work of the other
developer.
Our group used to use (some still do) VSS. CVSNT is worlds better for
team development.
Regards,
--------------------
Glen Starrett
_______________________________________________
cvsnt mailing list
cvsnt at cvsnt.org
http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt
More information about the cvsnt
mailing list