CVS . How to commit a binary file

Mike Klinke lsomike at futzin.com
Sun Jul 24 16:39:03 UTC 2005


On Sunday 24 July 2005 05:38, Francois Massonneau wrote:
> Hi,
> I would like to commit to the cvs repository a binary file (a
> .png file). I know how to add, as I have just to type cvs add -kb
> thefile.png but here, it's not adding, it's just commiting a
> modified binary file. 

It isn't very clear from your request what you're trying to do but 
assuming that for some reason you are trying to commit a new file 
to an existing repository module without first "adding" it, a quick 
test of the "commit" command shows that it isn't likely to succeed:


cvs -d :local:/app/cvs/repository co BinaryTest
cvs checkout: Updating BinaryTest
U BinaryTest/binaryProj.txt

11:13:22 # cd BinaryTest/

11:13:24 # ll -R
-rw-r--r--  1 root root    17 Jul 24 11:12 binaryProj.txt
drwxr-xr-x  2 root root  4096 Jul 24 11:13 CVS

./CVS: 
-rw-r--r--  1 root root 53 Jul 24 11:13 Entries
-rw-r--r--  1 root root 11 Jul 24 11:13 Repository
-rw-r--r--  1 root root 31 Jul 24 11:13 Root
 
11:13:29 # cat CVS/Entries 
/binaryProj.txt/1.1.1.1/Sun Jul 24 16:12:48 2005//
D

11:13:53 # cp ../binaryImage.jpg .

11:14:04 # ls
binaryImage.jpg  binaryProj.txt  CVS

> Is it just "cvs commit -m "blabla" thefile.png

11:14:05 # cvs ci -m "blah" binaryImage.jpg 
cvs commit: nothing known about `binaryImage.jpg'
cvs [commit aborted]: correct above errors first!

> or "cvs commit -kb -m "blabla" thefile.png"

11:16:40 # cvs ci -kb -m "blah" binaryImage.jpg 
ci: invalid option -- k
Usage: cvs commit [-Rlf] [-m msg | -F logfile] [-r rev] files...
    -R          Process directories recursively.
    -l          Local directory only (not recursive).
    -f          Force the file to be committed; disables recursion.
    -F logfile  Read the log message from file.
    -m msg      Log message.
    -r rev      Commit to this branch or trunk revision.
(Specify the --help global option for a list of other help options)

Let's look at "help" for the commit command:

11:16:54 # cvs -H commit
Usage: cvs commit [-Rlf] [-m msg | -F logfile] [-r rev] files...
    -R          Process directories recursively.
    -l          Local directory only (not recursive).
    -f          Force the file to be committed; disables recursion.
    -F logfile  Read the log message from file.
    -m msg      Log message.
    -r rev      Commit to this branch or trunk revision.
(Specify the --help global option for a list of other help options)

https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_16.html#SEC126

describes the valid "commit" options:


https://www.cvshome.org/docs/manual/cvs-1.11.20/cvs_7.html#SEC66

describes the valid "add" options:

and only the "add" has a switch for binary files.  Let's look at 
"help" for the add command:

11:19:48 # cvs -H add
Usage: cvs add [-k rcs-kflag] [-m message] files...
        -k      Use "rcs-kflag" to add the file with the specified 
kflag.
        -m      Use "message" for the creation log.
(Specify the --help global option for a list of other help options)



Regards, Mike Klinke




More information about the users mailing list