|LateNightHacking Louis Projects||Auth|
These are my notes on how to do obscure things in CVS.
Finding which file to recover:
cvs -d cvsroot co -c(does not show "undefined" modules)
cvs -q rlog -R path, add
cvs rlog fullPathToFile, add
-Nto not show tags
Once you know the file name and revision: To retrieve
aDir/bDir/j.java, revision 1.3:
cvs up -d -l aDir, then
cvs up -d -l aDir/bDir, etc.
cvs up -r1.3 aDir/bDir/j.java
To create a new repository:
cvs -d :local:repository_path init
To create a new module (top level directory)
cvs -d cvsroot checkout new_top_level_dir
To import existing code cleanly:
cvs checkout(see previous case).
CVSfolder from the temporary directory to the one that has the existing code.
cvs addto add all the existing files to the repository.
To incrementally merge changes/adds/deletes made on one branch to another branch:
cvs update -P -d -jbegin_tag -jend_tag
To move all the changes made in one branch onto another branch (overwriting whatever was there):
cvs exportto it, but it doesn't seem to work (any more)
cvs remove. Tip:
cvs remove -f *can remove a whole filesystem branch. Tip: to add a whole filesystem branch, copy it from source to target, then perform surgery on the
Tagand delete everything in
Entriesexcept the directory entries.
cvs add -kb foo.jarthen
cvs commit -r 1.3 foo.jarloses the
cvs commit foo.jardoes not).
cvs committhat was adding a lot of brand new files seemed to leave many of the files with present timestamps instead of their original timestamps, and possibly deleted some files. We're not sure how this happened but the interrupted commit is the most likely culprit.
|Louis K. Thomas <loui sth@hotm ail.co m>||Auth||2004-07-01 (4680 days ago)|