# HG changeset patch # User Bernhard Herzog # Date 1225987190 0 # Node ID 1527c37bd7aa1919abba32bfbd83e4aeaad1383f # Parent b82fe4d258939a37797d428caf8a692a80e735be Allow checkouts of specific revision and to prohibit recursion during checkout and update diff -r b82fe4d25893 -r 1527c37bd7aa treepkg/subversion.py --- a/treepkg/subversion.py Thu Nov 06 15:36:29 2008 +0000 +++ b/treepkg/subversion.py Thu Nov 06 15:59:50 2008 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2007 by Intevation GmbH +# Copyright (C) 2007, 2008 by Intevation GmbH # Authors: # Bernhard Herzog # @@ -14,20 +14,26 @@ from util import extract_value_for_key -def checkout(url, localdir): +def checkout(url, localdir, revision=None, recurse=True): """Runs svn to checkout the repository at url into the localdir""" - run.call(cmdexpand("svn checkout -q $url $localdir", **locals())) + args = [] + if revision: + args.extend(["--revision", revision]) + if not recurse: + args.append("-N") + run.call(cmdexpand("svn checkout -q @args $url $localdir", **locals())) -def update(localdir, revision=None): +def update(localdir, revision=None, recurse=True): """Runs svn update on the localdir. The parameter revision, if given, is passed to svn as the value of the --revision option. """ + args = [] if revision: - revision = ["--revision", revision] - else: - revision = [] - run.call(cmdexpand("svn update -q @revision $localdir", **locals())) + args.extend(["--revision", revision]) + if not recurse: + args.append("-N") + run.call(cmdexpand("svn update -q @args $localdir", **locals())) def export(src, dest): """Runs svn export src dest"""