python / python/cherry-picker

Problems with pushing into remote repository

Open
#121 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Python
Stars
65
Forks
47
Avg merge
5m
Merged PRs (30d)
1

Description

Something gone wrong, so I decided to recreate the backport. But the second attempt failed. As well as all following. Here is the result of the last failure.:

$ cherry_picker --continue
🐍 🍒 ⛏
Failed to push to origin ☹
To github.com:serhiy-storchaka/cpython.git
 ! [rejected]              backport-8f60298-3.11 -> backport-8f60298-3.11 (stale info)
error: не вдалося надіслати деякі посилання в «github.com:serhiy-storchaka/cpython.git»

branch backport-8f60298-3.11 has been deleted.

Backport PR:
...

I tried to remove the branch in my GitHub clone, but it did not help until I pulled from it into my local clone.

It seems, that when something gone wrong, cherry_picker pushed the broken branch into my remote repository on GitHub and removed it from the local repository. In the following attempts it failed to push into the remote repository (either because it already existed, or because it was removed, but it did not know about this), but removed the branch from the local repository anyway.

I expect from it to use more forced method to push the branch into the remote repository (if it is already not used), and if the operation fails due to stale info, try to pull from the remote repository and repeat.

And of course it should not just remove the branch from the local repository. Instead it should keep it until you fix the error and continue with cherry_picker --continue, or give up and cancel it with cherry_picker --abort.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the reported cherry_picker --continue flow and inspect the branch push and cleanup handling around the backport operation. Done means a failed push preserves the local branch, stale remote information is retried appropriately, and --continue and --abort remain usable.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.