Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

24 lines
585 B
Bash
Executable File

#! /usr/bin/env bash
#
# This moves the requested test repo to the commit indicated in its commit file.
# If repo or commit file do not exist, it does nothing.
[[ -z "$1" ]] && {
echo "sync-repo needs a local testsuite repository path as argument"
exit 1
}
repo="$1"
reponame=$(basename $repo)
commitfile=commit-hash.$reponame
[[ ! -d $repo || ! -f $commitfile ]] && exit 0
commit=$(cat $commitfile)
[[ $commit == $(cd $repo && git rev-parse HEAD) ]] && exit 0
(
echo "Moving '$reponame' to $commit"
cd $repo && git -c advice.detachedHead=false checkout $commit
)