diff --git a/.hooks/pre-commit.d/check_portepoch b/.hooks/pre-commit.d/check_portepoch index 34d93e2efcf4..1a59a39b5407 100755 --- a/.hooks/pre-commit.d/check_portepoch +++ b/.hooks/pre-commit.d/check_portepoch @@ -1,27 +1,27 @@ #!/bin/sh # # Check that PORTEPOCH is not being dropped, and is non-decreasing # check_epoch() { local makefile="$1" - local old_epoch=$(git diff --cached -U0 "${makefile}" | grep '^-PORTEPOCH.*=' | grep -oE '[0-9]+') - local new_epoch=$(git diff --cached -U0 "${makefile}" | grep '^+PORTEPOCH.*=' | grep -oE '[0-9]+') - if [ -z "${new_epoch}" -a -n "${old_epoch}" ] ; then + local old_epoch=$(git diff --cached -U0 "${makefile}" | grep '^\-PORTEPOCH' | grep -oE '[0-9]+') + local new_epoch=$(git diff --cached -U0 "${makefile}" | grep '^\+PORTEPOCH' | grep -oE '[0-9]+') + if [ -z "${new_epoch}" ] ; then echo "[pre-commit] dropped PORTEPOCH ${old_epoch} in ${makefile}" exit 1 fi if [ -n "${old_epoch}" ] ; then if [ ${new_epoch} -lt ${old_epoch} ] ; then echo "[pre-commit] PORTEPOCH decreasing from ${old_epoch} to ${new_epoch} in ${makefile}" exit 2 fi fi } modified_makefiles=$(git diff --name-only --cached --diff-filter=M -GPORTEPOCH | grep -E '^[^/]+/[^/]+/Makefile$') if [ $? -eq 0 ] ; then for modified_makefile in ${modified_makefiles} ; do check_epoch ${modified_makefile} done fi