From 96b4db1e9920463996dfc3a236dd06150e73c307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 4 Oct 2011 16:15:22 +0000 Subject: [PATCH] Allow Subversion inputs to specify a revision number. --- src/lib/Hydra/Helper/AddBuilds.pm | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/lib/Hydra/Helper/AddBuilds.pm b/src/lib/Hydra/Helper/AddBuilds.pm index 74ebf8fc..2c15910e 100644 --- a/src/lib/Hydra/Helper/AddBuilds.pm +++ b/src/lib/Hydra/Helper/AddBuilds.pm @@ -157,18 +157,22 @@ sub fetchInputPath { sub fetchInputSVN { my ($db, $project, $jobset, $name, $type, $value, $checkout) = @_; - my $uri = $value; + # Allow users to specify a revision number next to the URI. + my ($uri, $revision) = split ' ', $value; my $sha256; my $storePath; - - # First figure out the last-modified revision of the URI. - my @cmd = (["svn", "ls", "-v", "--depth", "empty", $uri], - "|", ["sed", 's/^ *\([0-9]*\).*/\1/']); my $stdout; my $stderr; - die "Cannot get head revision of Subversion repository at `$uri':\n$stderr" - unless IPC::Run::run(@cmd, \$stdout, \$stderr); - my $revision = $stdout; chomp $revision; + + unless (defined $revision) { + # First figure out the last-modified revision of the URI. + my @cmd = (["svn", "ls", "-v", "--depth", "empty", $uri], + "|", ["sed", 's/^ *\([0-9]*\).*/\1/']); + die "Cannot get head revision of Subversion repository at `$uri':\n$stderr" + unless IPC::Run::run(@cmd, \$stdout, \$stderr); + $revision = $stdout; chomp $revision; + } + die unless $revision =~ /^\d+$/; (my $cachedInput) = $db->resultset('CachedSubversionInputs')->search(