Arlo Leach wrote:
>> 1. You have a mac-specific version of CVS that was
hacked to somehow
>> pack the resource fork with the main file data in
the CVS archive, then
>> pull them apart when you checkout the files. I
find this extremely hard
>> to believe, especially given that there is nothing
in the CVS header to
>> indicate that the *,v file is anything out of the
ordinary.
>
> It looks like this, in fact, is what is happening. We
use a GUI CVS client
> called MacCVSClient, and the developer tells me that
this client does store
> the resource fork along with the data; apparently other
Mac CVS clients do
> the same thing. This is briefly described under the
heading "Repository
> Format" on the CVS support site:
>
> http://ximbiot.com/cvs/cvshome/cyclic/cvs/dev-mac.html
>
> Here's the documentation from two of the clients that
take this approach:
>
> http://www.ma
ccvs.org/faq.html#resfiles
> http://www.heilancoo.net/MacCVSClient/
MacCVSClientDoc/storage-formats.html
Thanks for following up and finding these references. There
is also a
wikipedia entry about AppleSingle format with a link to an
RFC with some
information about version 0x00020000 of the format (the
version used by
your files):
http://rfc.net/rfc1740.ht
ml
> I don't suppose you would be interested in adding
support for this storage
> approach to cvs2svn? Otherwise, we will finish any
current projects in CVS
> and only use SVN for new projects.
Before considering changes to cvs2svn, there might be an
easier route.
If there is a "cvs" command-line client that
understands the convention
used by your GUI client, then it should be possible to have
cvs2svn use
this version of cvs to check out the files. You would need
to use the
--use-cvs option and also
--cvs=/path/to/special/hacked/cvs.
cvs2svn uses "cvs -p" to get the contents of a
file revision. It might
be that the special Mac command-line CVS uses another option
to retrieve
only the data fork of a file from CVS. If this is the case,
you need to
make changes to the CVSRevisionReader class in
cvs2svn_lib/cvs_revision_manager.py (in the trunk version of
cvs2svn) or
cvs2svn_lib/revision_reader.py (in the 2.0.x version).
Alternatively, if there is a program that knows how to
extract the data
fork from an AppleSingle file *and knows to leave other data
streams
unchanged*, then you could build a "cvs"
replacement from this tool.
Suppose the tool is called "extract-apple-single";
then you could write
a script like
#! /bin/sh
cvs "$ " | extract-apple-single
and use this script as your "cvs" command with
"cvs2svn --use-cvs
--cvs=/path/to/my/script ...".
Otherwise, it should be pretty easy to add support for
ripping the data
fork data out of an AppleSingle format data stream to
cvs2svn itself.
Frankly, it wouldn't be my highest priority of things to
work on, but I
would be happy to help you if you would like to work on this
feature.
In any case, please let me know what you find out.
Michael
------------------------------------------------------------
---------
To unsubscribe, e-mail: users-unsubscribe cvs2svn.tigris.org
For additional commands, e-mail: users-help cvs2svn.tigris.org
|