On May 10, 2011, at 20:22, Gavin Beau Baumanis wrote: > We have a web application that uses Jenkins CI for keeping our staging server > up to date via svn update. > > Due to not thinking abut it properly in the beginning, > The staging site is actually a working copy of the entire repo (branches and > tags included) > > We however, only require the trunk. > > Is there a way, so that I can remove the branches and tags from a working > copy, leaving the trunk in place AND > not have any subsequent updates replace the now missing directories and still > have a clean WC? > > My initial thought is no, > And it is relatively easy to just blow-away the entire WC and just checkout > the trunk only; > But it will cause some downtime that I'd like to avoid if possible.
Before Subversion 1.7, this is very easy, since each subdirectory of a working copy is itself a complete self-contained working copy. Let's say your working copy is at /path/to/wc (it contains directories trunk, branches, tags) and you (or this Jenkins thing) are currently updating it by running "svn up /path/to/wc". So instead just run (or tell Jenkins to run) "svn up /path/to/wc/trunk". Voila, you're only updating the trunk. You can now remove (using your normal OS commands, not svn commands) the branches and tags directories to save space. You can even remove the hidden /path/to/wc/.svn directory, and then /path/to/wc will not even be a working copy anymore, it'll just be a regular directory (/path/to/wc/trunk will be the remaining working copy). As of Subversion 1.7, working copy metadata will be consolidated in the root of the working copy, so this kind of working copy dissection will no longer be as straightforward to do.