feat: Store the short rev length

This commit is contained in:
Janne Heß
2026-01-04 18:56:20 +01:00
parent d042e3c82c
commit 2db62e86e7
4 changed files with 24 additions and 6 deletions

View File

@@ -66,6 +66,11 @@ __PACKAGE__->table("jobsetevalinputs");
data_type: 'text'
is_nullable: 1
=head2 shortRevLength
data_type: 'number'
is_nullable: 1
=head2 value
data_type: 'text'
@@ -102,6 +107,8 @@ __PACKAGE__->add_columns(
{ data_type => "text", is_nullable => 1 },
"revision",
{ data_type => "text", is_nullable => 1 },
"shortRevLength",
{ data_type => "integer", is_nullable => 1 },
"value",
{ data_type => "text", is_nullable => 1 },
"dependency",
@@ -190,7 +197,15 @@ sub frontend_revision() {
if ($type eq 'svn' or $type eq 'svn-checkout' or $type eq 'bzr' or $type eq 'bzr-checkout') {
return 'r' . $self->get_column('revision');
} elsif ($type eq 'git') {
return substr($self->get_column('revision'), 0, 12);
# Find the longest revision length of this URI
my $schema = $self->result_source->schema;
my $maxLength = $schema
->resultset('JobsetEvalInputs')
->search({ uri => $self->get_column('uri')})
->get_column('shortRevLength')
->max;
# Fall back to a fixed value if there was no value
return substr($self->get_column('revision'), 0, $maxLength || 12);
} elsif ($type eq 'bzr') {
return substr($self->get_column('revision'), 0, 12);
} else {

View File

@@ -891,6 +891,7 @@ sub checkJobsetWrapped {
, type => $input->{type}
, uri => $input->{uri}
, revision => $input->{revision}
, shortRevLength => length($input->{shortRev})
, value => $input->{value}
, dependency => $input->{id}
, path => $input->{storePath} || "" # !!! temporary hack

View File

@@ -487,11 +487,12 @@ create table JobsetEvalInputs (
altNr integer not null,
-- Copied from the jobsetinputs from which the build was created.
type text not null,
uri text,
revision text,
value text,
dependency integer, -- build ID of the input, for type == 'build'
type text not null,
uri text,
revision text,
shortRevLength smallint, -- length of a short revision at the time this was checked out
value text,
dependency integer, -- build ID of the input, for type == 'build'
path text,

1
src/sql/upgrade-85.sql Normal file
View File

@@ -0,0 +1 @@
ALTER TABLE JobsetEvalInputs ADD COLUMN shortRevLength smallint;