diff options
Diffstat (limited to 'lib/hooks/git/pre-push_signed-off-by')
-rwxr-xr-x | lib/hooks/git/pre-push_signed-off-by | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/hooks/git/pre-push_signed-off-by b/lib/hooks/git/pre-push_signed-off-by index 11e182d6..775f505c 100755 --- a/lib/hooks/git/pre-push_signed-off-by +++ b/lib/hooks/git/pre-push_signed-off-by @@ -42,8 +42,11 @@ while read local_ref local_sha remote_ref remote_sha; do while read ref; do msg=$(git log -n 1 --format=%B "$ref") if ! grep -q '^Signed-off-by: ' <<<"$msg"; then - echo >&2 "Unsigned-off commit $ref" - exit 1 + # allow merge commits through + if [ -z "$(git rev-list -1 --merges $ref~1..$ref)" ]; then + echo >&2 "Unsigned-off non-merge commit $ref" + exit 1 + fi fi done < <(git rev-list "$range") # The process substitution above is a hack to make sure loop runs in |