Welcome to Svn.NET
This is a project to build reliable .NET bindings for the Subversion version-control system libraries. This is a continuation of the SubversionSharp library initially created by Softec and released under the LGPL.
Even though this is a "fork" of SubversionSharp, I have spoken with the author of that project and we plan to eventually merge the projects back together. I am more interested in full .NET 2.0 compatibility and eventually creating a fully-managed client library that does not expose any "unsafe" code to users. I also want to regularly publish Win32 binary zipfiles which contain all the DLLs necessary to access the Subversion API from .NET 2.0 (including the Subversion client library and all dependencies such as APR, Neon, etc.)
Creating this "temporary fork" allows me more flexibility in continuing development in these areas. I do not intend to change the namespace of any existing classes or assemblies.
Project Status (and How You Can Help!)
We have released a zipfile (see below) containing a binary Win32 build of the Subversion 1.4 client library, its dependencies, and the AprSharp and SubversionSharp managed assemblies which fully expose the Subversion 1.4 client API. Note that other Subversion APIs, such as the RA (Repository Access, or "server") layer are not implemented and we have no plans to implement them at this time.
The long-term goal for Svn.NET is to hide all unsafe methods from the public interface, and expose only a fully managed API. Consuming applications should not need to deal with the intricacies of the Subversion API.
However, in order to achieve this goal, the existing SvnClient library needs to have a complete suite of unit tests written, as well as better code documentation, in order to allow us to refactor parts of the codebase without breaking functionality. If you have C# experience and would like to help a bit on this project, writing a unit test or two is a great way to help!
It is relatively easy to examine existing unit tests (see the SvnClientTestn.cs classes in the SubversionSharp test project) and write new ones, plus it's a good way to familiarize yourself with the library. If you have time to write a unit test or two, please feel free to send patches to the mailing list.
Please note that we are not interested in fully testing all aspects of the Subversion client API (that's what the Subversion test suite is for); only that the SvnClient class is wrapping them faithfully. Please see the unit test development notes for the current status of the unit tests and what still needs to be done.
Project Files and Resources
Following are the various ways to download the code or join in the community.
Svn.NET supports the following platforms:
- .NET 2.0 on Win32
- Mono on Win32 (2.0 framework)
- Mono on Linux (2.0 framework)
Download the Latest Test Build
You can download a zipfile containing compiled SubversionSharp and AprSharp managed assemblies as well as all necessary Win32 compiled native DLLs for dependencies (svn_client, apr, apr-util, openssl, zlib, etc.).
You can download these zipfiles with libraries compiled in Debug mode:
These are compiled against the 1.4.2 Subversion libraries. The managed libraries should also run under Mono on *nix platforms, as long as you have the Subversion libraries installed.
Svn.NET Source Code
To browse the source code for this project, use the Browse Source link from the top link bar.
To check out the source code using svn, use the following command:
svn checkout http://svn.pumacode.org/repos/svndotnet/trunk/ svndotnet
See the Support page for documentation, mailing lists, and examples.
Despite the footer on the Subversion repository for this project, Svn.NET is licensed under the LGPL. This is the same license that the SubversionSharp project is released under.