Forum OpenACS Development: Re: cvs woes

Collapse
11: Re: cvs woes (response to 1)
Posted by russ m on
Ah, so if you do a "cvs stat" against a locally modified file in your development working copy it has a revision number like "1.1.1.x" and anything modified on the release-2003-11-18 branch is like "1.1.1.x.2.y"?

simplified, your CVS branching should look something like this


             /------ release-2003-11-18 (release)
            /
-------------------- trunk (active development)
    \
     \-------------- vendor branch (imports)
but instead it looks like you have

-------------------- trunk (inactive)
    \
     \-------------- vendor branch (imports + active development)
            \
             \------ release-2003-11-18 (release)
The difference between a vendor branch and a regular branch is that CVS updates the trunk behind your back (aka "for you") when you import on a vendor branch.

What I suspect happened when this was first set up is that the original working copy checkout was made with "-r initial" or one of the other early vendor import tags, which would stick the checked out sources on the vendor branch. While everything would look fine, any commits go back onto the vendor branch rather than the trunk. The release-2003-11-18 branch was then made off the checked-out vendor branch rather than off the trunk.

Unfortunately I'm no CVS über-guru, so I have no idea what's the best thing for you to do from here... sorry... I'd probably try something like this, although it may well be more convoluted than nescessary -

  • do a fresh import of OACS-4-6-1 onto the vendor branch - the command line you suggested above is fine
  • check out a fresh copy of the trunk -

    cvs co -d trunk openacs

    this should (hopefully) be the same as the 4.6.1 import you just did. If not then make it so and check it in.

  • get your local changes -

    cvs rdiff -u -r OACS-4-6-1 -D datespec openacs > local-diffs.txt

    where datespec is just before the bad import, check the CVS manpage for valid formats

  • apply your changes -

    cd trunk && patch -p0 < ../local-diffs.txt

  • check in your new trunk -

    cvs ci

  • Bob's your uncle...
that should (I hope) get your trunk and OpenACS vendor branch back in shape. If the release-2003-11-18 branch doesn't have any local changes on it I'd be tempted to abandon it and re-branch from the trunk for releases...

Good luck!

Collapse
12: Re: cvs woes (response to 11)
Posted by tammy m on
Hi again Russell,

First let me say that this really sucks and I just hate it. There I got that out. Funny but I don't feel better. I really appreciate your help on this. I know I wouldn't be thinking about this if I didn't have to!

Here's a cvs stat against a locally modified file in my development working copy

[tammy@goodchild:forms] cvs stat standard.adp
===================================================================
File: standard.adp      Status: Up-to-date

   Working revision:    1.2     Fri Nov  7 19:27:23 2003
   Repository revision: 1.2     /cvsroot/openacs/packages/acs-templating/resources/forms/standard.adp,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)
and a cvs stat of a file modified on the release-2003-11-18 branch
[tammy@goodchild:forms] cvs stat standard.adp 
===================================================================
File: standard.adp      Status: Up-to-date

   Working revision:   1.1.1.1.2.1     Wed Dec  3 02:30:29 2003
   Repository revision: 1.1.1.1.2.1     /cvsroot/openacs/packages/acs-templating/resources/forms/standard.adp,v
   Sticky Tag:          release-2003-11-18__branch (branch: 1.1.1.1.2)
   Sticky Date:         (none)
   Sticky Options:      -kk
So it looks like maybe I am working off the trunk but my release branch somehow got made off the vendor branch?

So maybe I have this?

-------------------- trunk (active development)
    \
     \-------------- vendor branch (imports)
              \
               \------ release-2003-11-18 (release)
This is how I created the release branch though...
	cd $OACS_DEV_ROOT 
	cvs tag release-2003-11-18__root
	cvs tag -r release-2003-11-18__root -b release-2003-11-18__branch

	cd $OACS_TEST_ROOT
	cd ..
	cvs -q checkout -P -kk -r release-2003-11-18__branch -d or-test openacs

Have to think about what to do now. Reading more on branches and numbering so I can understand what is really going on here versus what should be going on here... :( Fogel makes nice bedtime reading...

much thanks and metta:)