GitInput: Include deepClone option in the cache key

[?]
Jun 15, 2021, 8:31 AM
QPTEVLEO6L6VII42UNKTIOGXVK27BOWNMEVO7ZPRTYV6AVZTATXQC

Dependencies

  • [2] IGR322YP sql: Generate models from postgresql
  • [3] JM3DPYOM generated schema with new dbix class schema loader, grrrrrr
  • [4] O25D52TA initial support for mercurial
  • [5] JAH3UPWA Support revision control systems via plugins
  • [6] 3BTJRSU3 GitInput.pm: Don't do a chdir to the Git clone
  • [7] B7KDPCRL Prevent inputs from being garbage collected during evaluation
  • [8] FGQPXZIX hydra: make nr of build to keep configurable per jobset
  • [9] SB2V735V Keep track of the database schema version
  • [10] BK24VA6Q * 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.
  • [11] JJT5QG3K remove revision from cached cvs inputs, and added missing files
  • [12] LZVO64YG Merge in the first bits of the API work
  • [13] Q5HZWFCY Add support for darcs repositories.
  • [14] JTRG7RDQ add support for git as jobinput
  • [*] N22GPKYT * Put info about logs / build products in the DB.
  • [*] D5QIOJGP * Move everything up one directory.

Change contents

  • replacement in src/lib/Hydra/Plugin/GitInput.pm at line 185
    [3.7979][3.7979:8044]()
    {uri => $uri, branch => $branch, revision => $revision},
    [3.7979]
    [3.8044]
    {uri => $uri, branch => $branch, revision => $revision, isdeepclone => defined($deepClone) ? 1 : 0},
  • edit in src/lib/Hydra/Plugin/GitInput.pm at line 226
    [3.9698]
    [3.9698]
    , isdeepclone => defined($deepClone) ? 1 : 0
  • edit in src/lib/Hydra/Schema/CachedGitInputs.pm at line 51
    [3.12636]
    [3.11842]
    is_nullable: 0
    =head2 isdeepclone
    data_type: 'boolean'
  • edit in src/lib/Hydra/Schema/CachedGitInputs.pm at line 77
    [3.12816]
    [3.1976]
    "isdeepclone",
    { data_type => "boolean", is_nullable => 0 },
  • edit in src/lib/Hydra/Schema/CachedGitInputs.pm at line 95
    [3.12998]
    [3.12998]
    =item * L</isdeepclone>
  • replacement in src/lib/Hydra/Schema/CachedGitInputs.pm at line 101
    [3.13011][3.1504:1563](),[3.2216][3.1504:1563]()
    __PACKAGE__->set_primary_key("uri", "branch", "revision");
    [3.13011]
    [3.2268]
    __PACKAGE__->set_primary_key("uri", "branch", "revision", "isdeepclone");
  • replacement in src/lib/Hydra/Schema/CachedGitInputs.pm at line 104
    [3.2415][2.2789:2931]()
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:0sdK9uQZpx869oqS5thRLw
    [3.2415]
    [3.2415]
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-06-19 17:26:24
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Wr0grsFTaqRlMeM9vpXjrw
  • edit in src/sql/hydra.sql at line 405
    [3.1776]
    [3.2704]
    isDeepClone boolean not null,
  • replacement in src/sql/hydra.sql at line 408
    [3.2770][3.2770:2812]()
    primary key (uri, branch, revision)
    [3.2770]
    [3.2812]
    primary key (uri, branch, revision, isDeepClone)
  • file addition: upgrade-76.sql (----------)
    [17.3004]
    -- We don't know if existing checkouts are deep clones. This will
    -- force a new fetch (and most likely trigger a new build for deep
    -- clones, as the binary contents of '.git' are not deterministic).
    DELETE FROM CachedGitInputs;
    ALTER TABLE CachedGitInputs
    ADD COLUMN isDeepClone BOOLEAN NOT NULL;
    ALTER TABLE CachedGitInputs DROP CONSTRAINT cachedgitinputs_pkey;
    ALTER TABLE CachedGitInputs ADD CONSTRAINT cachedgitinputs_pkey
    PRIMARY KEY (uri, branch, revision, isDeepClone);