I am looking for help from someone who knows the RCS file
format quite well. Noel, this probably means you :-)
About a week ago, I had a problem.
In summary, I made changes to a working directory, including
deleting files; I then tried to commit to a branch.
Unfortunately, the deleted files were deleted from the
trunk, not from the branch.
(side note: 'Trunk' is actually the vendor branch in this
case.)
> 1. Make changes to the local copy, including deleting files.
> 2. Decide that you want to commit to a branch, not the trunk.
> 3. 'cvs tag' will not work, nor will 'cvs tag -b' as there are errors to correct
> first.
>
> 4. 'cvs rtag' will assign both the base-tag and the branch tag.
> 5. At this point, I did not want to do 'cvs update -r newBranch', as a plain
> update would refetch all the files that I have deleted. So, I first do a 'cvs
> rm' on the deleted files. I'm told to do a commit to force them to go away.
>
> 6. 'cvs update -r newBranch' to switch to the branch.
> 7. 'cvs commit' to make my commit on the branch.
>
> EXCEPT:
> The deleted files are deleted FROM THE TRUNK, NOT FROM THE BRANCH.
Now I'm trying to recover from this.
> Here's a log output of one of the deleted files.
> $ cvs log GADBEc.h
>
> RCS file: /lab/CVS/GABackend/GABase/GADBBase/Attic/GADBEc.h,v
> Working file: GADBEc.h
> head: 1.2
> branch:
> locks: strict
> access list:
> symbolic names:
> twoGADBBase-StillNotWorking: 1.1.1.1.0.2
> base-twoGADBBase-StillNotWorking: 1.1.1.1
> initial: 1.1.1.1
> michael: 1.1.1
> keyword substitution: kv
> total revisions: 3; selected revisions: 3
> description:
> ----------------------------
> revision 1.2
> date: 2000/05/16 06:54:44; author: michael; state: dead; lines: +0 -0
> To try to solve the linking problem on NT, GADBBase was split into two parts. It
> did not help -- the linking problem is still present. Neither of the two are
> seen, although other pieces are seen.
> ----------------------------
> revision 1.1
> date: 2000/05/10 18:07:20; author: michael; state: Exp;
> branches: 1.1.1;
> Initial revision
> ----------------------------
> revision 1.1.1.1
> date: 2000/05/10 18:07:20; author: michael; state: Exp; lines: +0 -0
> All the backend (models, support code) is here.
> =============================================================================
> $
>
> The file needs to be alive in 1.1 / 1.1.1.1, and dead in 1.1.1.1.0.2.
> It should have no state in 1.2 at all.
And this last point is the key. If the changes that I'm
making (which I'm putting on a branch) don't work, I don't
want any sign of these tests in the main system. I want
those files alive.
I don't know the ins and outs of RCS file formats. My
current thought/plan is to edit all the files in the attic,
change the RCS line that identifies the 'dead' state, and
then put them back into the non-attic storage section.
Is this kosher? Will this work? Are there any pitfalls that
I don't know of that will kill me?
Michael