From e83beff143f84b644d3843e2fd7f0e77fab4caee Mon Sep 17 00:00:00 2001 From: Chirayu Desai Date: Mon, 10 Jan 2022 04:07:45 +0530 Subject: [PATCH] aosp-merger: Improve merge commit message * Merge and commit separately, to get newline between commit content and Change-Id * Install prepare-commit-msg git hook, for nicer conflict messages https://gist.github.com/mikeNG/e55ef8e7a1e5cd596a950386503054fd/ Change-Id: I97370b352ccf4f146b4b6ea89af75e032fb13730 --- aosp-merger/_merge_helper.sh | 7 ++++++- aosp-merger/prepare-commit-msg | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 aosp-merger/prepare-commit-msg diff --git a/aosp-merger/_merge_helper.sh b/aosp-merger/_merge_helper.sh index 5087631..63eef19 100755 --- a/aosp-merger/_merge_helper.sh +++ b/aosp-merger/_merge_helper.sh @@ -32,6 +32,8 @@ readonly vars_path="${script_path}/../vars" source "${vars_path}/common" +readonly hook="${script_path}/prepare-commit-msg" + TOP="${script_path}/../../.." BRANCH="${calyxos_branch}" STAGINGBRANCH="staging/${BRANCH}_${OPERATION}-${NEWTAG}" @@ -40,6 +42,9 @@ cd "${TOP}/${PROJECTPATH}" repo start "${STAGINGBRANCH}" . git fetch -q --tags aosp "${NEWTAG}" +[[ ! -e .git/hooks/prepare-commit-msg ]] && cp "${hook}" .git/hooks/ +chmod +x .git/hooks/prepare-commit-msg + PROJECTOPERATION="${OPERATION}" # Check if we've actually changed anything before attempting to merge @@ -67,7 +72,7 @@ fi if [[ "${PROJECTOPERATION}" == "merge" ]]; then echo "#### Merging ${NEWTAG} into ${PROJECTPATH} ####" - git merge --no-edit --log "${NEWTAG}" + git merge --no-commit --log "${NEWTAG}" && git commit --no-edit elif [[ "${PROJECTOPERATION}" == "rebase" ]]; then echo "#### Rebasing ${PROJECTPATH} onto ${NEWTAG} ####" git rebase --onto "${NEWTAG}" "${OLDTAG}" diff --git a/aosp-merger/prepare-commit-msg b/aosp-merger/prepare-commit-msg new file mode 100644 index 0000000..184741d --- /dev/null +++ b/aosp-merger/prepare-commit-msg @@ -0,0 +1,14 @@ +#!/bin/sh + +case "$2,$3" in + merge,) + if grep -q "# It looks like you may be committing a merge." "$1"; then + sed -i -e '/# ------------------------ >8 ------------------------/,+3d' "$1" + /usr/bin/perl -i.bak -ne 's/^#// if /^# Conflicts/ .. /^#\R/; print' "$1" + sed -i '/ It looks like you may be committing a merge./i # ------------------------ >8 ------------------------' "$1" + fi + ;; + + *) + ;; +esac