Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cli: rework git-backport #1025

wants to merge 1 commit into from

cli: rework git-backport #1025

wants to merge 1 commit into from


Copy link

@edvbld edvbld commented Feb 19, 2021

Hi all,

please review this patch that reworks how git-backport functions. git-backport is now much smaller (and more focused) than it used to be and now composes much better with other Skara CLI tools like git-pr-create. git-backport now simply fetches a commit from a remote repository and cherry-picks the fetched commit on top of the current branch (without committing). git-backport then finally makes a commit with the proper backport commit message (a commit message of the form Backport <HASH>).

The tool git-backport is now meant to be used in combination with git-pr-create, git-pr-set and git-pr-integrate. The following example shows how a commit can be backported, a pull request created, marking the pull request as clean and then finally integrating the pull request:

$ git checkout -b backport-5a01c3d68ac2
$ git backport --from=openjdk/jdk 5a01c3d68ac22b7ee6f0746405a9bdef43281cb7
$ git pr create
$ sleep 15 # give the bots some time to work
$ git pr set --clean
$ sleep 15 # allow the bots to do some more work
$ git pr integrate
$ git checkout -

All (or parts) of the above can of course be wrapped into a git alias for those that don't like to type. The following show an example alias defined in ~/.gitconfig:

bp = "!f() { \
        git checkout -b backport-$1 && \
        git backport --from=openjdk/jdk $1 && \
        git pr create; \
      }; f"

A user can then simply run git bp 5a01c3d68ac22b7ee6f0746405a9bdef43281cb7.

The --from parameter to git-backport is configurable, so a user who most likely often backports from openjdk/jdk can run the following to never have to set --from on the command-line:

$ git config --global backport.from

Note that git-backport only requires a personal access token (PAT) in the case when the --from option contains a simple repository name, for example jdk. In all other cases there is no need for a PAT, making the command accessible for those who are not using PATs.


  • Manual testing on Linux x64



  • Change must not contain extraneous whitespace
  • Change must be properly reviewed



$ git fetch pull/1025/head:pull/1025
$ git checkout pull/1025

Copy link

@bridgekeeper bridgekeeper bot commented Feb 19, 2021

👋 Welcome back ehelin! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot added the rfr label Feb 19, 2021
Copy link

@mlbridge mlbridge bot commented Feb 19, 2021


Copy link

@rwestberg rwestberg left a comment

Looks good!

Copy link

@openjdk openjdk bot commented Feb 19, 2021

@edvbld This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file for details.

🔍 One or more changes in this pull request modifies files in areas of the source code that often require two reviewers. Please consider if this is the case for this pull request, and if so, await a second reviewer to approve this pull request before you integrate it.

🌎 Applicable reviewers for one or more changes in this pull request are spread across multiple different time zones. Please consider waiting with integrating this pull request until it has been out for review for at least 24 hours to give all reviewers a chance to review the pull request.

After integration, the commit message for the final commit will be:

cli: rework git-backport

Reviewed-by: rwestberg

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 1 new commit pushed to the master branch:

Please see this link for an up-to-date comparison between the source branch of this pull request and the master branch.
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready label Feb 19, 2021
Copy link

@RealCLanger RealCLanger commented Feb 19, 2021

Cool. Looking forward to this being integrated. When will the /backport comment be enabled?

Copy link
Member Author

@edvbld edvbld commented Feb 22, 2021


@openjdk openjdk bot closed this Feb 22, 2021
@openjdk openjdk bot added integrated and removed ready rfr labels Feb 22, 2021
Copy link

@openjdk openjdk bot commented Feb 22, 2021

@edvbld Since your change was applied there has been 1 commit pushed to the master branch:

Your commit was automatically rebased without conflicts.

Pushed as commit 3acaa00.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
3 participants