git-codereview: avoid Gerrit timeout for missing Change-Id during pending

If a commit is missing a Change-Id line, pending queries

	https://go-review.googlesource.com/a/changes/go~master~?o=DETAILED_LABELS&o=CURRENT_REVISION&o=MESSAGES&o=DETAILED_ACCOUNTS

(that's go~master~CHANGEID?... with CHANGEID=""),
which must cause Gerrit to iterate over all possible CLs
or something like that, because it takes forever.

Don't bother: if the commit we care about has no Change-Id,
it is by definition not on the server at all.

This makes 'git pending' not just hang when you have a
commit without a Change-Id.

Change-Id: I548a51b4190db723538af35ea6a14169861d6bc3
Reviewed-on: https://go-review.googlesource.com/67570
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
diff --git a/git-codereview/branch.go b/git-codereview/branch.go
index 5d47dc9..13193ff 100644
--- a/git-codereview/branch.go
+++ b/git-codereview/branch.go
@@ -307,6 +307,9 @@
 	if !b.HasPendingCommit() {
 		return nil, fmt.Errorf("no changes pending")
 	}
+	if c.ChangeID == "" {
+		return nil, fmt.Errorf("missing Change-Id")
+	}
 	id := fullChangeID(b, c)
 	for i, x := range extra {
 		if i == 0 {