After my chat with Hector last night I was trawling the SVN documentation this morning at work (yes I have become the SVN admin as I suggested using it) and I came across this little paragraph.
"Binding Directly—A Word About Correctness
Why should your GUI program bind directly with a libsvn_client instead of acting as a wrapper around a command-line program? Besides simply being more efficient, this can address potential correctness issues as well. A command-line program (like the one supplied with Subversion) that binds to the client library needs to effectively translate feedback and requested data bits from C types to some form of human-readable output. This type of translation can be lossy. That is, the program may not display all of the information harvested from the API, or may combine bits of information for compact representation.
If you wrap such a command-line program with yet another program, the second program has access only to already-interpreted (and as we mentioned, likely incomplete) information, which it must again translate into its representation format. With each layer of wrapping, the integrity of the original data is potentially tainted more and more, much like the result of making a copy of a copy (of a copy …) of a favorite audio or video cassette."
How does this affect this project?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The main issue is unmanaged code. I only know of one wrapper for libsvn_client written in C#. It's called ArpSharp. I haven't had the chance to actually play with it.
The second issue is cross platform semantics. I'm not sure if I want to mess with libsvn_client on Linux.
So far the command line has worked just fine.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Guys
After my chat with Hector last night I was trawling the SVN documentation this morning at work (yes I have become the SVN admin as I suggested using it) and I came across this little paragraph.
"Binding Directly—A Word About Correctness
Why should your GUI program bind directly with a libsvn_client instead of acting as a wrapper around a command-line program? Besides simply being more efficient, this can address potential correctness issues as well. A command-line program (like the one supplied with Subversion) that binds to the client library needs to effectively translate feedback and requested data bits from C types to some form of human-readable output. This type of translation can be lossy. That is, the program may not display all of the information harvested from the API, or may combine bits of information for compact representation.
If you wrap such a command-line program with yet another program, the second program has access only to already-interpreted (and as we mentioned, likely incomplete) information, which it must again translate into its representation format. With each layer of wrapping, the integrity of the original data is potentially tainted more and more, much like the result of making a copy of a copy (of a copy …) of a favorite audio or video cassette."
How does this affect this project?
The main issue is unmanaged code. I only know of one wrapper for libsvn_client written in C#. It's called ArpSharp. I haven't had the chance to actually play with it.
The second issue is cross platform semantics. I'm not sure if I want to mess with libsvn_client on Linux.
So far the command line has worked just fine.
Hi
I'm interested in C# wrappes for svn client, but so far i haven't found anything.
Could you post a website link where I can get information on ArpSharp?
Thanks.
arofab,
Look here:
http://www.softec.st/en/OpenSource/ClrProjects/AprSharp/AprSharp.html
arofab,
This is a better place to start:
http://www.softec.st/en/OpenSource/ClrProjects/
Thank you for the links!