diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-04-25 15:03:54 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-04-25 15:03:54 +0900 |
commit | 09ce223b0b297359fd7f9a5d629a70be32157302 (patch) | |
tree | 70271f623ba53fc173af9b859e15aad3bd87b24d /defs | |
parent | d0ba4abf1a00339ebbb5d405db3240a8bdb7b68b (diff) | |
download | ruby-09ce223b0b297359fd7f9a5d629a70be32157302.tar.gz |
Rebase the pull request in a worktree
A pull request based on an old commit may rewind too many files,
even if unnecessary. As rewinding some files, e.g., common header
files, configure.ac, will result in full-rebuild, rebase in a
separate directory to get rid of such rewind.
Diffstat (limited to 'defs')
-rw-r--r-- | defs/gmake.mk | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/defs/gmake.mk b/defs/gmake.mk index 73ae01bf12..4e0e2330fe 100644 --- a/defs/gmake.mk +++ b/defs/gmake.mk @@ -170,10 +170,12 @@ fetch-github: .PHONY: merge-github merge-github: fetch-github - $(Q) $(eval GITHUB_MERGE_BASE := $(shell git -C "$(srcdir)" log -1 --format=format:%H)) - git -C "$(srcdir)" checkout "gh-$(PR)" - git -C "$(srcdir)" rebase - - git -C "$(srcdir)" checkout - + $(eval GITHUB_MERGE_BASE := $(shell git -C "$(srcdir)" log -1 --format=format:%H)) + $(eval GITHUB_MERGE_BRANCH := $(shell git -C "$(srcdir)" symbolic-ref --short HEAD)) + $(eval GITHUB_MERGE_WORKTREE := $(shell mktemp -d gh-$(PR)-XXXXXX)) + git -C "$(srcdir)" worktree add $(GITHUB_MERGE_WORKTREE) "gh-$(PR)" + git -C "$(GITHUB_MERGE_WORKTREE)" rebase $(GITHUB_MERGE_BRANCH) + git -C "$(srcdir)" worktree remove "$(GITHUB_MERGE_WORKTREE)" git -C "$(srcdir)" merge --ff-only "gh-$(PR)" git -C "$(srcdir)" branch -D "gh-$(PR)" git -C "$(srcdir)" filter-branch -f \ |