diff --git a/.gitattributes b/.gitattributes index 72cf50db637..a5a77c9fda1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,4 +6,11 @@ app-k9mail/build.gradle.kts merge=merge_gradle app-thunderbird/build.gradle.kts merge=merge_gradle + +app-thunderbird/src/release/res/raw/changelog_master.xml merge=ours +app-thunderbird/src/beta/res/raw/changelog_master.xml merge=ours app-k9mail/src/main/res/raw/changelog_master.xml merge=ours + +app-metadata/com.fsck.k9/*/changelogs/** merge=ours +app-metadata/net.thunderbird.android.beta/*/changelogs/** merge=ours +app-metadata/net.thunderbird.android/*/changelogs/** merge=ours \ No newline at end of file diff --git a/scripts/ci/merges/do_merge.sh b/scripts/ci/merges/do_merge.sh index 909759563a8..37dc89be2a5 100755 --- a/scripts/ci/merges/do_merge.sh +++ b/scripts/ci/merges/do_merge.sh @@ -43,8 +43,9 @@ git checkout ${into_branch} git pull git config merge.ours.driver true git config merge.merge_gradle.driver "python3 scripts/ci/merges/merge_gradle.py %A %B" +git config merge.merge_changelog.driver "scripts/ci/merges/merge_changelog.sh %A %O %B" set +e -git merge "origin/${from_branch}" +git merge -Xtheirs "origin/${from_branch}" 2>&1 | grep --color=always -E '\bCONFLICT\b|$' ret=$? set +x diff --git a/scripts/ci/merges/merge_changelog.sh b/scripts/ci/merges/merge_changelog.sh new file mode 100644 index 00000000000..9f034cb1244 --- /dev/null +++ b/scripts/ci/merges/merge_changelog.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +# This merge driver exists to override the -Xtheirs CLI option used when merging +# two trees together (e.g. main -> beta). + +A="$1" # File A (ours) +O="$2" # Common ancestor +B="$3" # File B (theirs) + +git merge-file -- "$A" "$O" "$B"