Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking provenance through merges #140

Open
MTCam opened this issue Oct 26, 2021 · 0 comments
Open

Tracking provenance through merges #140

MTCam opened this issue Oct 26, 2021 · 0 comments

Comments

@MTCam
Copy link
Member

MTCam commented Oct 26, 2021

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant