[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Two newbie questions

From: Paul Coene
Subject: Re: Two newbie questions
Date: Wed, 07 May 2008 16:07:04 -0500

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).

reply via email to

[Prev in Thread] Current Thread [Next in Thread]