Forum OpenACS Q&A: Re: CVS Help
Andrew, I've been looking at your CVS conventions page but I have to admit I'm still lost. I think it's the vendor tag thing that I've never understood, or enough about branching and mergin changes between branches.
My site started with a 4.5 beta and wasn't created in accordance with current procedures. What happens is that when I do cvs checkout -d openacs-upgrade -jOpenACS:yesterday -jOpenACS openacs (or similar, see below), packages that I've written aren't of course in the distribution so I guess it looks like they have been removed from the distribution.
I think this is where the vendor tag comes in. The OpenACS in -jOpenACS, is that a vendor tag? I didn't actually use those tags because they didn't make any sense in my cvs -- instead I did a cvs rtag pre_4-6_2_upgrade before starting, then cvs import -m "upgrade to OpenACS 4.6.2" openacs OpenACS openacs-4-6-2 (that doesn't look exactly right but I don't have my notes in front of me) and cvs checkout -d openacs-upgrade -jpre_4-6_2_upgrade -jopenacs-4-6-2 openacs. Is this asking CVS to compare apples to oranges? My custom packages (which are in pre_4-6_2_upgrade should never be on the vendor branch, and what I imported as openacs-4-6-2 isn't really a proper vendor branch anyway, correct?
Can I work around this by tagging everything but my packages with OpenACS, then proceeding more verbatim with the upgrade instructions?
It might be helpful if you showed us the results of doing "cvs
stat -v
" on, say, your "readme.txt
",
"packages/acs-tcl/tcl/00-database-procs.tcl
", and
"packages/my-custom-package/tcl/my-procs.tcl
" files.
More critically: Have you customized any OpenACS files? Or has all your work been strictly the addition of your own packages? If you have not customized any files, then getting the CVS details right doesn't really matter, you should be able to do whatever and you'll still end up with a working website. However, if you've customized a bunch of OpenACS files then you'll tend to want to get the CVS operations right in order to help you with the merging, resolving of conflicts, etc.
(Note also that I'm rusty at this. My gut feel is that you should not normally be getting that "scheduled for removal" message, but I haven't actually tried it, so I could be mistaken.)
The central question is, how did you set up your OpenACS 4.5 site in the first place...
Part of the problem is obviously that I didn't set it up, so I'm not as familiar with it as I should be.
It might be helpful if you showed us the results of doing "cvs stat -v" on, say, your "readme.txt", "packages/acs-tcl/tcl/00-database-procs.tcl", and "packages/my-custom-package/tcl/my-procs.tcl" files.
Here's readme.txt ("packages/acs-tcl/tcl/00-database-procs.tcl") is the same:
=================================================================== File: readme.txt Status: Needs Patch Working revision: 1.1.1.2 Repository revision: 1.1.1.3 /home/cvshome/acs-devel/bma/readme.txt,v Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none) Existing Tags: openacs-4-6-2-b (revision: 1.1.1.3) openacs-4-6-2 (revision: 1.1.1.3) pre_4-6-3_upgrade (revision: 1.1.1.2) preview2 (branch: 1.1.1.2.4) preview (branch: 1.1.1.2.2) openacs-4-6 (revision: 1.1.1.2) intranet-1_0 (revision: 1.1.1.1) openacs-4-x-2002-01-10 (revision: 1.1.1.1) OpenACS (branch: 1.1.1)
So I do have the expected "OpenACS" branch! "preview" and "preview2" are a couple of branches I set up trying to figure out how to use branches, "pre_4-6-3_upgrade" is the one I mentioned above (the 4_6_3 is a typo, I meant it to be 4_6_2) and "openacs-4-6-2" and "openacs-4-6-2-b" are two imports I did according the the current upgrade instructions. "openacs-4-6-2-b" is the one I'm using.
More critically: Have you customized any OpenACS files?
A few, but just a little. So few that it wouldn't take any time to hunt down the changes and redo them after an upgrade if need be.
Or has all your work been strictly the addition of your own packages?
Here lies the problem. The most important custom package is called intranet, and it's for -- no surprise -- our intranet. I work on it a lot, but I didn't create it, and it is on the OpenACS branch, though it shouldn't be:
=================================================================== File: intranet-procs.tcl Status: Up-to-date Working revision: 1.10 Repository revision: 1.10 /home/cvshome/acs-devel/bma/packages/intranet/tcl/intranet-procs.tcl,v Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none) Existing Tags: pre_4-6-3_upgrade (revision: 1.10) preview2 (branch: 1.9.4) preview (branch: 1.9.2) intranet-1_0 (revision: 1.5) openacs-4-x-2002-01-10 (revision: 1.1.1.1) OpenACS (branch: 1.1.1)
I won't name names, but LP, you know who you are 😊. I compared this to a package I did create, bma-contacts and found:
=================================================================== File: index.adp Status: Up-to-date Working revision: 1.4 Repository revision: 1.4 /home/cvshome/acs-devel/bma/packages/bma-contacts/www/index.adp,v Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none) Existing Tags: pre_4-6-3_upgrade (revision: 1.4) preview2 (branch: 1.4.4) preview (branch: 1.4.2) intranet-1_0 (revision: 1.4)
Now this gave me an idea (since I'm learning as I go). If I do the checkout with -jpre_4-6-3_upgrade -jopenacs-4-6-2-b everything in intranet and bma-contacts gets scheduled for removal. If I do it with -jOpenACS:yesterday -jopenacs-4-6-2-b, then bma-contacts does not get scheduled for removal, just upgraded (what I want), though intranet gets scheduled for removal, since it part of my "OpenACS (branch: 1.1.1)" but not part of the 4.6.2 distribution I just imported.
So what I need to do is get /web/bma/packages/intranet/ out of the OpenACS branch, along with a few other things. Is that possible? Or would I have to do something like create an OpenACS2 branch, only adding those things that should be on the OpenACS branch, and then use that branch for upgrading?