On Mon, Mar 12, 2012 at 1:05 PM, Simon Dean
<Simon.Dean_at_moneysupermarket.com> wrote:
> I suspect TortoiseSVN uses the official Subversion client code under the hood. There's no way they'd
> re-implement a whole SVN client from scratch.
I don't know if Tortoise uses any Subversion command line client code,
but TortoiseSVN does use the official Subversion API libraries. That's
what made Subversion so different from CVS. With CVS, you either had
to reimplement the client yourself, or use the offical CVS client as a
backend. In Subversion you write your own client, and just use the
API.
SVNKit is very different. SVNKit is a Java third party
reimplementation of the Subversion API, and it's not the complete API
either. On the other hand, the JavaHL API is a front end to the
official Subversion API.
So, it's possible for someone to write a Subversion client that does
do a "clean up". In fact, the Jenkins Continuous build system has the
option of doing a thorough clean before doing an update.
> Other people have commented on the fragility of the "clean" task of a build script. If you use things like NuGet
> and Bundler in codebases, they result in multiple directories that need "cleaning" - e.g. .\vendor\bundle,
> .\packages etc. You'd be surprised how many unversioned files creep into a CI build when all you're relying
> on is the build script's "clean" task
For some reason, the .NET/C# world is behind in this concept when
compared to the Java world. By default, there's a "clean" target in
VisualStudio builds, but it doesn't do a very good job of cleaning.
However, it is still the developer's responsibility to make sure that
their "clean" target cleans everything. There's a special
"BeforeClean" target that's called when the "clean" target is called.
You can add your own code here to clean up things that the default
"clean" target doesn't do.
--
David Weintraub
qazwart_at_gmail.com
Received on 2012-03-14 02:14:37 CET