On Wed, 2008-05-07 at 16:38 -0400, Larry Jones wrote: > Paul Coene writes: > > > > 1) I had a very large (1000+ files) project that I needed to get into > > CVS. I noticed that you need to tell CVS whether a file is binary or > > not. I didn't want to have to do this file by file, so I ran the > > entire import with the -kb flag. Was this ok, or are all my checkout > > commits going to make full copies instead of diffs since all files > > were imported with the binary flag? Was there a better way? > > No, it isn't OK. CVS always does diffs, even on binary files, so that > isn't a concern, but CVS won't automatically merge binary files and the > line endings in the repository may be messed up such that if you check > out on a platform with different line ending conventions, the files will > be incorrect.
What do you mean by "CVS won't automatically merge binary files"? I've checked in several .txt files that were tagged as binary and it worked just fine. > > How bad it is depends on whether your (client, if you're using > client/server CVS) system distinguishes between text and binary files > (Unix and Linux do not, Windows does). If not, then the data in the > repository is fine, you just need to fix the keyword expansion mode for > the non-binary file: do ``cvs admin -kkv'' on all the text files and > then ``cvs update -A'' to fix the working directory copies. See, I don't like having to know all the extensions. Some of the files don't even have extensions and some of those are text, other binary. With 100s of files, you can see why I took the make everything binary route (to protect the binary files from conversion and hopefully not lose any functionality like changes being stored as diffs, etc.) For wharever reason, the ,v files look right on all the text files I have modified and committed. I have not tried committing new binary files yet. > Have you committed the changes? If not, you can just do ``cvs update > -C'' in your working directory to throw away all the changes. If you > have committed changes and now want to revert them, you can do a reverse > merge to undo the changes and then commit the files: > > cvs update -j BASE -j REV_YOU_WANT > cvs commit -m'Revert to REV_YOU_WANT' Thanks! I ended up doing it via cvs admin -o 1.2: (which deleted all versions 1.2 and above). Paul
