diff options
| author | Russ Cox <rsc@golang.org> | 2021-02-18 16:20:18 -0500 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2021-02-18 21:25:49 +0000 |
| commit | 19899311a872616f0eb00d6eadccc1109d9047d3 (patch) | |
| tree | 5f7935425f151b58a721ce134eb522e90e1f1d90 | |
| parent | 840efbcaa4b8a3f0bd99f59d1eb822fecdd4bd74 (diff) | |
| download | go-x-review-1.0.2.tar.xz | |
git-codereview: fix active rebase detectionv1.0.2
A sync + merge conflict + git rebase --continue can leave behind
a REBASE_HEAD even though it really should not. So don't use that
as the signal that there's an active rebase.
The rebase-merge directory is a better signal and seems to be
cleaned up more diligently than REBASE_HEAD.
Change-Id: Ie5bc20156e19fc7ce3e32333babea784242dc770
Reviewed-on: https://go-review.googlesource.com/c/review/+/293838
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
| -rw-r--r-- | git-codereview/change.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/git-codereview/change.go b/git-codereview/change.go index 24cbb71..045fe9c 100644 --- a/git-codereview/change.go +++ b/git-codereview/change.go @@ -6,6 +6,8 @@ package main import ( "fmt" + "os" + "path/filepath" "regexp" "strconv" "strings" @@ -29,7 +31,9 @@ func cmdChange(args []string) { if _, err := cmdOutputErr("git", "rev-parse", "--abbrev-ref", "MERGE_HEAD"); err == nil { diePendingMerge("change") } - if _, err := cmdOutputErr("git", "rev-parse", "--abbrev-ref", "REBASE_HEAD"); err == nil { + // Note: A rebase with a conflict + rebase --continue sometimes leaves behind REBASE_HEAD. + // So check for the rebase-merge directory instead, which it does a better job cleaning up. + if _, err := os.Stat(filepath.Join(gitPathDir(), "rebase-merge")); err == nil { dief("cannot change: found pending rebase or sync") } |
