[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fixing A Newbie Mess

From: Todd Denniston
Subject: Re: Fixing A Newbie Mess
Date: Tue, 18 Oct 2005 15:56:24 -0500

Dale wrote:
> I'm not sure, but I think he just copied my whole
> project over to his account, 

I assume you mean your sandbox, including the CVS sub directories???
If so you are not in the worst shape, just not great.

> so now his side is in whatever CVS state it was
> in at the time he did that. Now he has made changes that the boss wants
> merged into the trunk. When I do a cvs status on his files, they are not
> labeled or branched, but their file version numbers are many iterations away
> from the repository. 

This implies to me 
1. you can still use your cvs repository against his sandbox with the data
that is currently in his CVS sub directories.

2. you have made, and committed, many changes since he copied your sandbox.

> What I'm afraid of is that if I start trying to merge
> these two, I'll damage the Repository somehow.

Then make a backup.
i.e. tar, zip or otherwise archive the repository directory  to backup

It would not even be a bad idea to backup the current state of yours and his
sandbox to backup media as well, that way you can return to this state if
something goes horribly wrong (I have a good feeling from what I see above
you'll be ok though).

> So maybe I shouldn't even try to do that? We need to change the name of the
> product anyway, and make several other major structural changes, so my
> thinking is that I should just strip out all the CVS directories and merge
> his stuff with mine by hand, and then start a new cvs project and teach the
> other guy how to make branches.
> Any thoughts?

Take a few more deep breaths :) , and once you have backups, it will only
hurt a little to try and fail, but if it works as expected you should find
your life much easier than doing it by hand.

After you have backups, I would recommend both of you scanning the "Multiple
developers" section of the manual[0] and then doing the following in his

Note: no warranties on this working correctly, so make sure those backups
are good. :)

1) issue `cvs diff -u > safelocation/MyBuddysChanges.patch` 
    #so you can see the overall set of changes he has made.
    #note, if he copied from you while you had some 
    #uncommitted changes, this will contain both 
    #those changes you made and the ones he made after.

2) issue `cvs update` #[1]
   #this should merge all of your changes in with his.
   # note that I expect you will see conflict flags
   # if he copied from you while you had some
   # uncommitted changes. 
   # look for C in the first column of the output of 
   # the update[2]

3) hand edit each of the files with a conflict[2] to merge things CVS could
not handle by itself.

4) verify the build and that logic is working as expected.

5) `cvs commit`

6) take a few days to read the whole manual[3], you'll be happier I believe.

Good luck.

Todd Denniston
Crane Division, Naval Surface Warfare Center (NSWC Crane) 
Harnessing the Power of Technology for the Warfighter

reply via email to

[Prev in Thread] Current Thread [Next in Thread]