[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: temporarily disable RCS keyword expansion

From: Lutz Dornbusch <subversion_at_pdfzone.de>
Date: Mon, 09 Jun 2008 00:01:20 +0200

Peter Kahn wrote:
> How do I temporarily disable RCS keyword substitution on checkout?
> I am converting from CVS to SVN and I have a convert/verify script. I
> run the conversion and then I checkout the most recent sources for all
> branches and trunk/head from CVS and SVN. I then walk the directories
> and calculate MD5 checksum so I can spot missing files, added files and
> differences.
> The problem is that I'm getting false positives for some RCS keywords.
> CVS seems to like a different date format than SVN.
> In CVS, I seem to be able to block subsitution from the client via
> adding "-kb" to my checkout command (yeah, there's probably a line
> ending issue too). In SVN looks like only the property on the file
> controls this and there's no way to tell the client to forget about RCS
> subtition just for this checkout.
> So, is this possible or is propedit the only method?

Hi Peter,
Bad news:
it is not possible to disable the keyword expansion without modifying
the repo(by your mentioned approve via propedit).

Good news:
I already compared 300 repos last year for a company-wide conversion
from CVS to SVN. I also tried (and succeed) to compare all converted
repos. I checked out all tags, unix-diffed them and used a perl script
to analyze the diff-output. This perls script generated me 3 nice
reports as error warning and notice-files but it tooks much more time to
diff the repositories than to convert them. Sometimes the conversion
took about 6 hrs while the comparion took more than 48 hrs. So we
decided to compare in large repositories(>1GB) only trunk.
The error file was nearly always empty! The only exception were if some
clever developer used the $ $ keyword in sourcecode, as this will not be
replaced by SVN. The only other (but deadly) problem was that binary
files were added as text files and were broke by CVS.
There was no other error in my conversions, but heaps of different line
endings(which was reported as a note in my perlscrit),and empty
directories in CVS which were deleted in SVN().

What I am trying to tell you is this:
It tooks me nearly 3 weeks to complete this comparsion tool, but the
cvs2svn tool didn't make any proplems and there were no errors in our
conversion. The most important thing you need to look at, is the
$TAGNAME$ keyword(just grep over your CVS-DIR)
Also you should think of keeping the cvs-repo in readonly-state to
re-create old tags, as SVN will not recreate exactly the same
tags(bit-for bit comparsion in builded jars failed in our system).
This could mean some problems if you cannot recreate _exactly_ the same
files from tag. Again this is always a problem with wrong EOL, deleted
empty dirs, wrong checked in binaries or different replaced keywords.

Hope that helps,

To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-06-09 00:02:28 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.