Re: [gsmp-devel] CVS repository
Status: Alpha
Brought to you by:
rrebe
From: Emmanuel F. <fl...@cs...> - 2002-01-31 08:30:01
|
Rene Rebe wrote: > Hi. > > On: Wed, 30 Jan 2002 23:35:02 +0100 (CET), > Rene Rebe <ren...@gm...> wrote: > >>Alas. I have now all in the sf CVS repository!!! >> >>Do not ask what a pain it was to remove all the old crap and to >>recursively add all the new files (you must first add the dirs and the >>the files - hierachy by hierachy ... - ok - but I know bash ;-) >> >>All files seem to be in it. I will take a look if there are still old >>empty dirs in it - and do some cleanups in the next minutes ... >> > > Ok. This seems to be impossible with CVS. According to the CVS manual > we all must use the -P options for the cvs checkout, commit, update > commands to skipt empty dirs ... Actually, it is impossible from the user point of view. I think that if you can use the 'admin' mode to remove the old directories. See: http://docs.linux.cz/cvs/cvs_16.html#SEC113 And especially the '-o' option: -o_range_ Deletes (outdates) the revisions given by range. Note that this command can be quite dangerous unless you know exactly what you are doing (for example see the warnings below about how the rev1:rev2 syntax is confusing). If you are short on disc this option might help you. But think twice before using it--there is no way short of restoring the latest backup to undo this command! If you delete different revisions than you planned, either due to carelessness or (heaven forbid) a CVS bug, there is no opportunity to correct the error before the revisions are deleted. It probably would be a good idea to experiment on a copy of the repository first. Specify range in one of the following ways: rev1::rev2 Collapse all revisions between rev1 and rev2, so that CVS only stores the differences associated with going from rev1 to rev2, not intermediate steps. For example, after `-o 1.3::1.5' one can retrieve revision 1.3, revision 1.5, or the differences to get from 1.3 to 1.5, but not the revision 1.4, or the differences between 1.3 and 1.4. Other examples: `-o 1.3::1.4' and `-o 1.3::1.3' have no effect, because there are no intermediate revisions to remove. ::rev Collapse revisions between the beginning of the branch containing rev and rev itself. The branchpoint and rev are left intact. For example, `-o ::1.3.2.6' deletes revision 1.3.2.1, revision 1.3.2.5, and everything in between, but leaves 1.3 and 1.3.2.6 intact. rev:: Collapse revisions between rev and the end of the branch containing rev. Revision rev is left intact but the head revision is deleted. rev Delete the revision rev. For example, `-o 1.3' is equivalent to `-o 1.2::1.4'. rev1:rev2 Delete the revisions from rev1 to rev2, inclusive, on the same branch. One will not be able to retrieve rev1 or rev2 or any of the revisions in between. For example, the command `cvs admin -oR_1_01:R_1_02 .' is rarely useful. It means to delete revisions up to, and including, the tag R_1_02. But beware! If there are files that have not changed between R_1_02 and R_1_03 the file will have the same numerical revision number assigned to the tags R_1_02 and R_1_03. So not only will it be impossible to retrieve R_1_02; R_1_03 will also have to be restored from the tapes! In most cases you want to specify rev1::rev2 instead. :rev Delete revisions from the beginning of the branch containing rev up to and including rev. rev: Delete revisions from revision rev, including rev itself, to the end of the branch containing rev. None of the revisions to be deleted may have branches or locks. If any of the revisions to be deleted have symbolic names, and one specifies one of the `::'syntaxes, then CVS will give an error and not delete any revisions. If you really want to delete both the symbolic names and the revisions, first delete the symbolic names with cvs tag -d, then run cvs admin -o. If one specifies the non-`::'syntaxes, then CVS will delete the revisions but leave the symbolic names pointing to nonexistent revisions. This behavior is preserved for compatibility with previous versions of CVS, but because it isn't very useful, in the future it may change to be like the `::'case. Due to the way CVS handles branches revcannot be specified symbolically if it is a branch. See section 5.5 Magic branch numbers, for an explanation. Make sure that no-one has checked out a copy of the revision you outdate. Strange things will happen if he starts to edit it and tries to check it back in. For this reason, this option is not a good way to take back a bogus commit; commit a new revision undoing the bogus change instead (see section 5.8 Merging differences between any two revisions). I hope it is usefull. :-) -- Emmanuel Life is full of surprises but never when you need one. -- Calvin & Hobbes (Bill Waterson) |