From: Martin Langhoff Date: Fri, 04 Nov 2005 21:22:29 GMT Subject: Re: binary safe? Message-ID: <46a038f90511041322x1d9f7a50ndafe724c2e8d368b@mail.gmail.com> In-Reply-To: <20051104165419.GA12145@old.davidb.org> On 11/5/05, David Brown wrote: > On Fri, Nov 04, 2005 at 12:00:54PM +1300, Martin Langhoff wrote: > > > Yes it works, and cvsimport -k will do the right thing for you. > > Unless it has changed from 0.99.9b, 'cvsimport -k' will very much scramble > some binary files. '-k' passes the '-kk' option which causes CVS to strip > the keywords down. It needs to pass -ko through if you want it to be able > to handle binary files. There is a misunderstanding here. We don't pass '-kk' to the cvs utility -- we pass it at the protocol level. Strangely enough, when passing ko we were getting broken files, and when passing kk we got all the files correctly. I explored and tested this quite a bit when I added the flag, and explicitly tested it with files that _would_ get broken with cvs update -kk. To recap: my main test repository has a lot of binary files, files that do get broken if I do a cvs checkout with -kk. git-cvsimport gets them right with its -k parameter. Don't ask me why, though: the cvs protocol is really messy, and I suspect that part of the -kk option is being 'implemented' on the client side. (That being said, if you have a case where git-cvsimport is doing the wrong thing, let me know!) > However, since CVS (RCS really) can remember the state of this flag, it > does work to 'cvs admin -ko filename' beforehand, and then do the > cvsimport without the '-k' option. Yes, but a repo you don't control, where people are using keywords, means thatyou need to do -kk to kill the keywords or your imported files are going to have a horrid amount of noise in them. cheers, martin