diff --git a/.gitignore b/.gitignore index 5359c1eb3e..b91ecf0488 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ libtool /isc-config.sh /configure.lineno autom4te.cache/ +*.rej +*.orig *.o *.lo *.so diff --git a/util/git-replay-merge.sh b/util/git-replay-merge.sh index ec8180c850..81ee5c4eee 100644 --- a/util/git-replay-merge.sh +++ b/util/git-replay-merge.sh @@ -147,34 +147,15 @@ resume() { die_with_continue_instructions fi fi - # Announce the plan. - echo "Attempting to merge ${REPLAY_BRANCH} into ${TARGET_BRANCH}..." - # Check if a local branch with the same name as the target branch - # exists. If it does not, switch to a new local branch with the same - # name as the target branch. Otherwise, ensure the local branch is not - # behind the target branch at the target remote, then switch to it. - if ! branch_exists "${TARGET_BRANCH}"; then - git checkout -t -b "${TARGET_BRANCH}" "${TARGET_REF}" >/dev/null - else - die_if_local_behind_target - git checkout "${TARGET_BRANCH}" &>/dev/null - fi - # Use the original commit message with a modified subject line. - COMMIT_MSG="$( - git log --max-count=1 --format="%B" "${SOURCE_COMMIT}" | - sed "1s/.*/Merge branch '${REPLAY_BRANCH}' into '${TARGET_BRANCH}'/;" - )" - # Merge the replay branch into the local target branch. - git merge --no-ff -m "${COMMIT_MSG}" "${REPLAY_BRANCH}" - cat <<-EOF - Replayed ${SOURCE_BRANCH} onto ${TARGET_BRANCH}. - To push the replay, use: + git push ${TARGET_REMOTE} -u ${REPLAY_BRANCH} - git push ${TARGET_REMOTE} ${TARGET_BRANCH}:${TARGET_BRANCH} + REPLAY_COMMIT_TITLE="$(git show --format="%b" "${SOURCE_COMMIT}" 2>&1 | head -1)" - EOF + gitlab create_merge_request 1 "${REPLAY_COMMIT_TITLE}" "{source_branch: '${REPLAY_BRANCH}', target_branch: '${TARGET_BRANCH}'}" + cleanup + exit 0 } cleanup() { @@ -184,7 +165,6 @@ cleanup() { git merge --abort git cherry-pick --abort git checkout "${CHECKED_OUT_BRANCH}" - git branch -D "${REPLAY_BRANCH}" } &>/dev/null || true rm -f "${STATE_FILE}" }