Ben Collins-Sussman wrote:
> Let me warn you: this is not a problem of translating syntaxes,
> it's a problem of translating semantics. For example:
>
> * for an update, the svn server expects the working copy to report
> version information about *directories*, not just files. one
> system versions trees, the other just versions files.
No biggie, just send to extra metadata to the client.... I even had
cvsnt versioning directories at one point but decided it wasn't worth
the effort. If you send a version number in a 'D/...' entries line it
does get preserved (altough IIRC getting the client to send it back has
pitfalls, which I'll have to look at the commit logs to find out how I
got around it).
> * how about branches and tags? one system treats them as labels on
> file-versions, and another treats them as whole directories.
That's just trivial rewriting. They're just different expressions of
the same thing..
That hard stuff is for example making a reasonable representation of
'cvs status' or 'cvs log'... tags and metadata are relatively trivial
by comparison.
Remember I'm not trying to make an SV client talk to a CVS server
(that'd probably be impractical) but the other way around - you can dump
a lot of junk at the CVS client and it'll faithfully send it back during
an update/commit without looking too hard at it. It's not a direct 1:1
translation, and I doubt it's a small project (I reckon a couple of
months to get it usable) but it's worth doing.
Tony
Received on Wed Jul 16 23:23:08 2003