* for git inputs, check latest revision of branch (defaults to master for now), if there is change, only use input if last checkout was > hour ago.
[?]
Nov 19, 2009, 8:15 AM
BK24VA6QHPE6XLXUXPLJMOT75WEXHZ6PPOFLYFUP4U4NYS5FVGWACDependencies
- [2]
JJT5QG3Kremove revision from cached cvs inputs, and added missing files - [3]
VN2SV3G2Ask `nix-prefetch-git' to leave `.git' in the output. - [4]
ZVTSOVHN* Support Subversion checkouts. - [5]
JTRG7RDQadd support for git as jobinput - [6]
OOQ2D3KC* Refactoring: move fetchInput out of hydra_scheduler into a separate - [7]
NJBETZ2CUse $NIX_PREFETCH_GIT_CHECKOUT_HOOK to produce a `.git-version' file. - [*]
N22GPKYT* Put info about logs / build products in the DB.
Change contents
- edit in src/lib/Hydra/Helper/AddBuilds.pm at line 225
my $branch = "master";# First figure out the last-modified revision of the URI.my $stdout; my $stderr;(my $res, $stdout, $stderr) = captureStdoutStderr("git", "ls-remote", $uri, $branch);die "Cannot get head revision of Git branch '$branch' at `$uri':\n$stderr" unless $res; - replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 234
# Some simple caching: don't check a path more than once every N seconds.(my $cachedInput) = $db->resultset('CachedGitInputs')->search({uri => $uri, lastseen => {">", $timestamp - 3600}},{rows => 1, order_by => "lastseen DESC"});(my $revision, my $ref) = split ' ', $stdout;die unless $revision =~ /^[0-9a-fA-F]+$/;# Some simple caching: don't check a uri/branch more than once every hour, but prefer exact match on uri/branch/revision.my $cachedInput ;($cachedInput) = $db->resultset('CachedGitInputs')->search({uri => $uri, branch => $branch, revision => $revision},{rows => 1});if (! defined $cachedInput ) {($cachedInput) = $db->resultset('CachedGitInputs')->search({uri => $uri, branch => $branch, lastseen => {">", $timestamp - 3600}},{rows => 1, order_by => "lastseen DESC"});} - edit in src/lib/Hydra/Helper/AddBuilds.pm at line 252
$revision = $cachedInput->revision; - edit in src/lib/Hydra/Helper/AddBuilds.pm at line 265
my $stdout; my $stderr; - replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 266
"nix-prefetch-git", $uri);die "Cannot check out Git repository `$uri':\n$stderr" unless $res;"nix-prefetch-git", $uri, $revision);die "Cannot check out Git repository branch '$branch' at `$uri':\n$stderr" unless $res; - replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 271
{uri => $uri, sha256hash => $sha256});{uri => $uri, branch => $branch, sha256hash => $sha256}); - edit in src/lib/Hydra/Helper/AddBuilds.pm at line 277
, branch => $branch, revision => $revision - replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 298
, revision => strftime "%Y%m%d%H%M%S", gmtime($timestamp), revision => $revision - edit in src/lib/Hydra/Schema/CachedGitInputs.pm at line 15
{data_type => "text",default_value => undef,is_nullable => 0,size => undef,},"branch",{data_type => "text",default_value => undef,is_nullable => 0,size => undef,},"revision", - replacement in src/lib/Hydra/Schema/CachedGitInputs.pm at line 64
__PACKAGE__->set_primary_key("uri", "sha256hash");__PACKAGE__->set_primary_key("uri", "branch", "revision"); - replacement in src/lib/Hydra/Schema/CachedGitInputs.pm at line 67
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:WzfB4qf6XqvIll/gPFZE6Q# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-18 21:46:00# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:K9P4pi33P54ZB8D/6WzAYw - edit in src/sql/hydra.sql at line 297
branch text not null,revision text not null, - replacement in src/sql/hydra.sql at line 303
primary key (uri, sha256hash)primary key (uri, branch, revision)