Because the question keeps coming up repeatedly in the forum, I want to repeat the
most important pieces of advice from the last
thread in this blog post. Firstly and most importantly:
If you use SharpDevelop 2.x, you must use TortoiseSVN 1.4.x.
If you use SharpDevelop 3.x, you must use TortoiseSVN 1.5.x.
So why is this important? Well, Subversion 1.5 does change the working copy format,
therefore older clients cannot read the working copy anymore. And why is this important
to SharpDevelop? Daniel continues to explain:
SharpDevelop uses its own copy of the Subversion library for marking files
as added/removed/etc. This can upgrade the working copy to the 1.5 format.
However, SharpDevelop does not have it's own commit dialog - we simply
So there are two Subversion libraries used by SharpDevelop:
the one we ship for local operations, and the one shipped with TortoiseSVN for commit
etc. Because the Subversion 1.4 library cannot read working copies touched by the
1.5 library, you run into this kind of problem when either TortoiseSVN or SharpDevelop
is too old.
To sum up: SharpDevelop 2.x ships with libraries that are compatible with Subversion
1.4 and requires TortoiseSVN 1.4 for UI. Whereas version 3.0 of SharpDevelop ships
with (different) libraries that are compatible with Subversion 1.5 and requires TortoiseSVN
1.5 for UI.
So will there be an upgrade for SharpDevelop 2.x to support Subversion 1.5? This was
a hotly debated issue, however, in the end it boiled down to the following question:
do we want to ship two almost identical versions of SharpDevelop 2.2 that only differ
in the version of the included Subversion library (because we would have to support
both camps)? As that would create quite a bit of confusion, we decided to leave 2.2
as is and support Subversion 1.5 only in SharpDevelop 3.0.