[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Feature request - SVN command to clean a working copy of all unversioned and ignored files and directories

From: David Weintraub <qazwart_at_gmail.com>
Date: Tue, 13 Mar 2012 21:14:04 -0400

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

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.