diff --git a/git-codereview/api.go b/git-codereview/api.go
index b52dffb..f79d770 100644
--- a/git-codereview/api.go
+++ b/git-codereview/api.go
@@ -40,10 +40,9 @@
 		return
 	}
 
+	// Gerrit must be set as Git's origin remote.
 	origin := getOutput("git", "config", "remote.origin.url")
-	if origin == "" {
-		dief("git config remote.origin.url: origin not found")
-	}
+
 	if strings.Contains(origin, "//github.com/") {
 		dief("git origin must be a Gerrit host, not GitHub: %s", origin)
 	}
@@ -85,7 +84,7 @@
 
 	// First look in Git's http.cookiefile, which is where Gerrit
 	// now tells users to store this information.
-	if cookieFile := getOutput("git", "config", "http.cookiefile"); cookieFile != "" {
+	if cookieFile, _ := getOutputErr("git", "config", "http.cookiefile"); cookieFile != "" {
 		data, _ := ioutil.ReadFile(cookieFile)
 		for _, line := range strings.Split(string(data), "\n") {
 			f := strings.Split(line, "\t")
diff --git a/git-codereview/review.go b/git-codereview/review.go
index 0b0ee8e..a2a60fb 100644
--- a/git-codereview/review.go
+++ b/git-codereview/review.go
@@ -195,9 +195,21 @@
 
 // getOutput runs the specified command and returns its combined standard
 // output and standard error outputs.
+// It dies on command errors.
 // NOTE: It should only be used to run commands that return information,
 // **not** commands that make any actual changes.
 func getOutput(command string, args ...string) string {
+	s, err := getOutputErr(command, args...)
+	if err != nil {
+		fmt.Fprintf(os.Stderr, "%v\n%s\n", commandString(command, args), s)
+		dief("%v", err)
+	}
+	return s
+}
+
+// Given a command and its arguments, getOutputErr returns the same
+// trimmed output as getOutput, but it returns any error instead of exiting.
+func getOutputErr(command string, args ...string) (string, error) {
 	// NOTE: We only show these non-state-modifying commands with -v -v.
 	// Otherwise things like 'git sync -v' show all our internal "find out about
 	// the git repo" commands, which is confusing if you are just trying to find
@@ -206,11 +218,7 @@
 		fmt.Fprintln(os.Stderr, commandString(command, args))
 	}
 	b, err := exec.Command(command, args...).CombinedOutput()
-	if err != nil {
-		fmt.Fprintf(os.Stderr, "%v\n%s\n", commandString(command, args), b)
-		dief("%v", err)
-	}
-	return string(bytes.TrimSpace(b))
+	return string(bytes.TrimSpace(b)), err
 }
 
 // getLines is like getOutput but it returns only non-empty output lines,
