[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Why does CVS COPY a file (binary) to tag it? Can this be overridden
Re: Why does CVS COPY a file (binary) to tag it? Can this be overridden?
Mon, 25 Feb 2002 13:28:51 -0500
On Mon, Feb 25, 2002 at 05:31:11PM +0000, Schlitz wrote:
> If I have a 1 MB binary in CVS , and I only apply a tag to it-
> making no changes, not commiting it or anything, does CVS store
> a whole new copy just because of the tag, or is that just a
> temporary copy and replace of the original?
It's both better and worse than you suspect.
The ,v file does NOT grow by 1 MB, but only by:
strlen(tag_name) + strlen(rev_number) + K
bytes, where K is approximately 3.
To make the change, however, CVS uses a copy-and-rename strategy,
rather than modifying the ,v file in place. So it must make a
temporary copy of the ,v file; and for reasons that Larry Jones
has recently explained, the copy must live in the same filesystem
as the original -- it can't go into /tmp. Now, ,v files for
binaries tend to grow quickly, since binaries tend not to "diff"
very efficiently; thus, the amount of space needed *temporarily*
can easily be many times the size of the file in your working
directory. But again, that's only temporary; the space needed
*permanently* is only a few bytes.
| | /\
|-_|/ > Eric Siegerman, Toronto, Ont. address@hidden
| | /
One ring to rule the mall.
- Movie review headline, eye Magazine