diff options
author | zeripath <art27@cantab.net> | 2023-01-19 22:31:44 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-19 17:31:44 -0500 |
commit | 4199d28053b228376a68a957297f332026fafa4e (patch) | |
tree | 225702fd4f01432ada95f186c2b4b664354214a2 /services/pull | |
parent | b383652e02294796fdab7270e2cdb5a0d7413511 (diff) | |
download | gitea-4199d28053b228376a68a957297f332026fafa4e.tar.gz gitea-4199d28053b228376a68a957297f332026fafa4e.zip |
When updating by rebase we need to set the environment for head repo (#22535)
The update by rebase code reuses the merge code but shortcircuits and
pushes back up to the head. However, it doesn't set the correct pushing
environment - and just uses the same environment as the base repo. This
leads to the push update failing and thence the PR becomes out-of-sync
with the head.
This PR fixes this and adjusts the trace logging elsewhere to help make
this clearer.
Fix #18802
Signed-off-by: Andrew Thornton <art27@cantab.net>
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
Diffstat (limited to 'services/pull')
-rw-r--r-- | services/pull/merge.go | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/services/pull/merge.go b/services/pull/merge.go index d0ec943cfa..bdd2cb0e86 100644 --- a/services/pull/merge.go +++ b/services/pull/merge.go @@ -595,19 +595,25 @@ func rawMerge(ctx context.Context, pr *issues_model.PullRequest, doer *user_mode headUser = pr.HeadRepo.Owner } - env = repo_module.FullPushingEnvironment( - headUser, - doer, - pr.BaseRepo, - pr.BaseRepo.Name, - pr.ID, - ) - var pushCmd *git.Command if mergeStyle == repo_model.MergeStyleRebaseUpdate { // force push the rebase result to head branch + env = repo_module.FullPushingEnvironment( + headUser, + doer, + pr.HeadRepo, + pr.HeadRepo.Name, + pr.ID, + ) pushCmd = git.NewCommand(ctx, "push", "-f", "head_repo").AddDynamicArguments(stagingBranch + ":" + git.BranchPrefix + pr.HeadBranch) } else { + env = repo_module.FullPushingEnvironment( + headUser, + doer, + pr.BaseRepo, + pr.BaseRepo.Name, + pr.ID, + ) pushCmd = git.NewCommand(ctx, "push", "origin").AddDynamicArguments(baseBranch + ":" + git.BranchPrefix + pr.BaseBranch) } |