Parse output of 'git status' more conservatively.

Also make 'review sync' say when it has switched back to master.

Change-Id: I9f17e32e9d306eb3193103da36796877967059d2
diff --git a/review.go b/review.go
index ed5267a..cb4309e 100644
--- a/review.go
+++ b/review.go
@@ -103,9 +103,10 @@
 	if !hasStagedChanges() {
 		dief("no staged changes.\nDid you forget to 'git add'?")
 	}
-	if currentBranch() != "master" {
-		dief("must run 'create' from the master branch.\n" +
-			"(Try 'review sync' or 'git checkout master' first.)")
+	if b := currentBranch(); b != "master" {
+		dief("must run 'create' from the master branch (now on %q).\n"+
+			"(Try 'review sync' or 'git checkout master' first.)",
+			b)
 	}
 	run("git", "checkout", "-q", "-b", name)
 	if err := runErr("git", "commit", "-q"); err != nil {
@@ -152,6 +153,8 @@
 		run("git", "checkout", "-q", "master")
 		run("git", "merge", "-q", "--ff-only", "origin/master")
 		run("git", "branch", "-q", "-d", branch)
+		fmt.Printf("Change on %q submitted; branch deleted.\n"+
+			"On master branch.\n", branch)
 		return
 	}
 
@@ -163,10 +166,11 @@
 	if headSubmitted(branch) {
 		run("git", "checkout", "-q", "master")
 		run("git", "merge", "-q", "--ff-only", "origin/master")
-		fmt.Fprintf(os.Stderr, "Switched back to master from %q, "+
-			"which I think has been submitted.\n"+
-			"If you agree, and no longer need branch %q, run:\n"+
-			"\tgit branch -D %v\n",
+		fmt.Fprintf(os.Stderr,
+			"I think the change on %q has been submitted.\n"+
+				"If you agree, and no longer need branch %q, "+
+				"run:\n\tgit branch -D %v\n"+
+				"On master branch.\n",
 			branch, branch, branch)
 		return
 	}
@@ -267,14 +271,7 @@
 }
 
 func currentBranch() string {
-	const p = "## "
-	for _, s := range gitStatus() {
-		if strings.HasPrefix(s, p) {
-			return strings.TrimPrefix(s, p)
-		}
-	}
-	dief("could not find current branch with 'git status'.")
-	panic("unreachable")
+	return strings.TrimSpace(runOutput("git", "rev-parse", "--abbrev-ref", "HEAD"))
 }
 
 func gitStatus() []string {