From: Don Zickus <dzickus(a)redhat.com>
Octopus merges are too conservative, serialize instead
There are some commits in an octous merge that may overlap and the
octopus merging is to conservative. Serializing the merges is more
successfull. Convert to that.
Signed-off-by: Don Zickus <dzickus(a)redhat.com>
diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -56,23 +56,20 @@ ark_git_mirror()
# Merge wrapper in case issues arise
ark_git_merge()
{
- # support octopus merging with source_branch 1|2
-
target_branch="$1"
- source_branch1="$2"
- source_branch2="$3"
+ source_branch="$2"
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
- ark_git_branch "$target_branch" "${source_branch1}"
+ ark_git_branch "$target_branch" "${source_branch}"
git checkout "$target_branch"
- msg="Merge '${source_branch1} ${source_branch2}' into
'$target_branch'"
- if ! git merge -m "$msg" "${source_branch1}"
"${source_branch2}"; then
+ msg="Merge '${source_branch}' into '$target_branch'"
+ if ! git merge -m "$msg" "${source_branch}"; then
git merge --abort
printf "Merge conflict; halting!\n"
printf "To reproduce:\n"
printf "* git checkout %s\n" "${target_branch}"
- printf "* git merge %s\n" "${source_branch1} ${source_branch2}"
+ printf "* git merge %s\n" "${source_branch}"
die "Merge conflicts"
fi
diff --git a/redhat/scripts/ci/ark-merge-rt.sh b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -125,7 +125,6 @@ if test "$UPSTREAM_RT_DEVEL_VER" !=
"$RT_DEVEL_VER" -o \
# rebases usually go from prev version to new version
# rebuild the prev merge base as it isn't saved.
# then rebuild the current merge base as it isn't saved either
- # because we use an octopus merge below.
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
temp_prev_branch="_temp_prev_rt_devel_$(date +%F)"
git branch -D "$temp_prev_branch" 2>/dev/null
@@ -133,7 +132,7 @@ if test "$UPSTREAM_RT_DEVEL_VER" !=
"$RT_DEVEL_VER" -o \
git checkout -b "$temp_prev_branch"
"kernel-${OS_BUILD_VER_prev}.0-0"
git merge "$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_PREV_BRANCH"
- # create devel merge branch to base octopus merge on.
+ # create devel merge branch to base merge on.
temp_devel_branch="_temp_devel_rt_devel_$(date +%F)"
git branch -D "$temp_devel_branch" 2>/dev/null
git checkout -b "$temp_devel_branch" "$OS_BUILD_BASE_BRANCH"
@@ -148,14 +147,16 @@ if test "$UPSTREAM_RT_DEVEL_VER" !=
"$RT_DEVEL_VER" -o \
fi
## Build -rt-devel branch, generate pending-rhel configs
-ark_git_merge "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
+ark_git_merge "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_merge "$RT_DEVEL_BRANCH"
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
# don't care if configs were added or not hence '|| true'
ark_update_configs "$RT_DEVEL_BRANCH" || true
# skip pushing config update MRs, keep them in pending-rhel
ark_push_changes "$RT_DEVEL_BRANCH" "skip"
## Build -automotive-devel branch, generate pending-rhel configs
-ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
+ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH"
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
# don't care if configs were added or not hence '|| true'
ark_update_configs "$AUTOMOTIVE_DEVEL_BRANCH" || true
# skip pushing config update MRs, keep them in pending-rhel
--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2972