Skip to content

Tracking provenance through merges #140

@MTCam

Description

@MTCam

We often merge multiple branches together when creating a simulation capability, and our current provenance is insufficient for recreating the code/env after such an operation.

For example, the automated timing procedure for lazy runs goes something like:

  1. emirge install parallel-lazy
  2. merge y1-production

We record the hashes for these branches in the timing script - but the built-in provenance (i.e. versions.sh --> sqlite) misses the mark with its hashes after the y1-production merge.

Some possibilities for dealing with this issue:

  • Extend emirge to know about merged branches - provide a list, one branch to install, a number of branches to merge, record hash for each
  • Enhance version.sh to recognize and report when merges are done:
# AK: This script might help version.sh discover merges
# Requires: git merge <branch> -m "temp" --no-ff
#! /bin/bash

# FIXME Maybe loop looking for more temp commits?
if test "$(git show -s --format=%s HEAD)" = "temp"; then
        for parent in $(git show -s --format=%P HEAD) ; do
                echo -n "$parent"
                git name-rev "$parent"
        done
fi
  • Going forward, we want to make sure that timings (or other production drivers) work off of branches that are checked in and emirge-compatible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions