Forum OpenACS Development: Re: cvs woes

7: Re: cvs woes (response to 6)
Posted by Andrew Piskorski on
Tammy, yes, you imported your new acs-automated-testing package into the wrong place - you left out a parameter to your cvs import command. In your case, you should have done (see also the import examples in my CVS doc):
$ cd /tmp/oacs-4-6-3/packages/acs-automated-testing
$ cvs import -m "Importing OpenACS 4.6.3 Automated Testing package." openacs/packages/acs-automated-testing openacs acs-automated-testing-OACS-4-6-3
Ugh. It's an easy mistake to make. This is one very good reason to always backup your CVS repository before doing any complicated import operations which you're unsure about, or to test them first on a testing copy of your real repository. Since you don't have a backup to revert to, you've got to fix it instead.

There isn't really any such thing as "trashing your original vendor import", as that's not possible using just cvs import commands. But what you've done is pollute your repository with additional files that should never have gone there in the first place, which, while not as bad as any real "trashing", may feel like a pretty close approximation!

If all the import did was add brand new files which never existed before, then the fix is pretty simple, just go into your cvs repository (back it up first!), and manually (carefully!) delete the bogus "*,v" files. Presto, it's now as if the bogus import never happened.

However, if good files with the same names may have already existed, then you need to be more careful. Probably the easiest way to check this is to use cvs log on each of the bogus bad files you just imported. From the cvs log output, you should be able to tell if your mis-placed vendor import touched files that were already there before, or just created brand new files where none existed before.

If your bogus import did touch previously existing files, my guess is you should use cvs import again to put the old file back, as mentioned above. You must have noticed the import problem before you merged any changes from the vendor branch to the Head, right? If so, then keep in mind here, that this problem, if it is present, probably only exists because if you have not ever modified those old good files on the Head from when you first vendor imported them, when you vendor import a "new" version (in this case, your bogus misplaced import) CVS helpfully immediately updates the file on the Head as well because since it was never modifed, the Head and the vendor branch are still the same thing at that point for that file.

Don't you wish CVS had an atomic "rollback" command? :) Heh Roberto, does Arch have that?