cmd/apidiff: in -incompatible mode, don't show header

Currently if there's some breaking change we're OK with, we have to do
something like this:

```
apidiff -incompatible | \
    grep -v ThingImOkWith | \
    grep -v "Incompatible changes" | \
    (! read)
```

This CL changes the -incompatible flag to not show the header, meaning we
don't have to grep exclude it out. The experience ends up being a bit nicer.

Also, apart from the scripting niceties we get from this CL, the header is not
really required if I already specified that I want incompatible changes.

Change-Id: I6e40fcb36a14255d85f8cc0c3db7a8cf58a840d2
Reviewed-on: https://go-review.googlesource.com/c/155459
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/apidiff/report.go b/apidiff/report.go
index 454ff35..fd346b1 100644
--- a/apidiff/report.go
+++ b/apidiff/report.go
@@ -20,14 +20,17 @@
 }
 
 func (r Report) Text(w io.Writer) error {
-	if err := r.TextIncompatible(w); err != nil {
+	if err := r.TextIncompatible(w, true); err != nil {
 		return err
 	}
 	return r.TextCompatible(w)
 }
 
-func (r Report) TextIncompatible(w io.Writer) error {
-	return r.writeMessages(w, "Incompatible changes:", r.Incompatible)
+func (r Report) TextIncompatible(w io.Writer, withHeader bool) error {
+	if withHeader {
+		return r.writeMessages(w, "Incompatible changes:", r.Incompatible)
+	}
+	return r.writeMessages(w, "", r.Incompatible)
 }
 
 func (r Report) TextCompatible(w io.Writer) error {
@@ -38,8 +41,10 @@
 	if len(msgs) == 0 {
 		return nil
 	}
-	if _, err := fmt.Fprintf(w, "%s\n", header); err != nil {
-		return err
+	if header != "" {
+		if _, err := fmt.Fprintf(w, "%s\n", header); err != nil {
+			return err
+		}
 	}
 	for _, m := range msgs {
 		if _, err := fmt.Fprintf(w, "- %s\n", m); err != nil {
diff --git a/cmd/apidiff/main.go b/cmd/apidiff/main.go
index 7cc0caf..aeaf1a7 100644
--- a/cmd/apidiff/main.go
+++ b/cmd/apidiff/main.go
@@ -55,7 +55,7 @@
 		report := apidiff.Changes(oldpkg, newpkg)
 		var err error
 		if *incompatibleOnly {
-			err = report.TextIncompatible(os.Stdout)
+			err = report.TextIncompatible(os.Stdout, false)
 		} else {
 			err = report.Text(os.Stdout)
 		}