From 5811d4e8a3af4196f65f8dd5353c18227a79f992 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Fri, 12 May 2017 14:14:22 -0400 Subject: [PATCH] tests/ci-commitmessage-submodules.sh: fix for RHCI Special-case when this script is run under RHCI, which will try to fetch the merge commit if possible. Use RHCI_COMMIT instead to refer to the actual PR/branch HEAD being evaluated. Use realpath to workaround the developer's git dir being in a symbolic link. Closes: #857 Approved by: cgwalters --- tests/ci-commitmessage-submodules.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/ci-commitmessage-submodules.sh b/tests/ci-commitmessage-submodules.sh index 2403579d..8ce077c3 100755 --- a/tests/ci-commitmessage-submodules.sh +++ b/tests/ci-commitmessage-submodules.sh @@ -1,5 +1,6 @@ #!/bin/bash set -euo pipefail + # Copyright 2017 Colin Walters # Licensed under the new-BSD license (http://www.opensource.org/licenses/bsd-license.php) @@ -12,6 +13,10 @@ set -euo pipefail # It's very common for people to accidentally change submodules, and having this # requirement is a small hurdle to pass. +# if running under RHCI, use the branch/PR HEAD actually +# being tested rather than the merge sha +HEAD=${RHCI_COMMIT:-HEAD} + tmpd=$(mktemp -d) touch ${tmpd}/.tmpdir cleanup_tmp() { @@ -22,13 +27,13 @@ cleanup_tmp() { } trap cleanup_tmp EXIT -gitdir=$(pwd) +gitdir=$(realpath $(pwd)) # Create a temporary copy of this (using cp not git clone) so git doesn't # try to read the submodules from the Internet again. If we wanted to # require a newer git, we could use `git worktree`. cp -a ${gitdir} ${tmpd}/workdir cd ${tmpd}/workdir -git log --pretty=oneline origin/master.. | while read logline; do +git log --pretty=oneline origin/master..$HEAD | while read logline; do commit=$(echo ${logline} | cut -f 1 -d ' ') git diff --name-only ${commit}^..${commit} > ${tmpd}/diff.txt git log -1 ${commit} > ${tmpd}/log.txt