Merge "Extract method to output the first header line of a git diff"
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java
index 4af1084..fe0db33 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java
@@ -299,7 +299,7 @@ public void setNewPrefix(String prefix) {
 
 	/**
 	 * Get the prefix applied in front of new file paths.
-	 * 
+	 *
 	 * @return the prefix
 	 * @since 2.0
 	 */
@@ -1008,6 +1008,31 @@ private boolean isBinary() {
 		return false;
 	}
 
+	/**
+	 * Output the first header line
+	 *
+	 * @param o
+	 *            The stream the formatter will write the first header line to
+	 * @param type
+	 *            The {@link ChangeType}
+	 * @param oldPath
+	 *            old path to the file
+	 * @param newPath
+	 *            new path to the file
+	 * @throws IOException
+	 *             the stream threw an exception while writing to it.
+	 */
+	protected void formatGitDiffFirstHeaderLine(ByteArrayOutputStream o,
+			final ChangeType type, final String oldPath, final String newPath)
+			throws IOException {
+		o.write(encodeASCII("diff --git ")); //$NON-NLS-1$
+		o.write(encode(quotePath(oldPrefix + (type == ADD ? newPath : oldPath))));
+		o.write(' ');
+		o.write(encode(quotePath(newPrefix
+				+ (type == DELETE ? oldPath : newPath))));
+		o.write('\n');
+	}
+
 	private void formatHeader(ByteArrayOutputStream o, DiffEntry ent)
 			throws IOException {
 		final ChangeType type = ent.getChangeType();
@@ -1016,11 +1041,7 @@ private void formatHeader(ByteArrayOutputStream o, DiffEntry ent)
 		final FileMode oldMode = ent.getOldMode();
 		final FileMode newMode = ent.getNewMode();
 
-		o.write(encodeASCII("diff --git ")); //$NON-NLS-1$
-		o.write(encode(quotePath(oldPrefix + (type == ADD ? newp : oldp))));
-		o.write(' ');
-		o.write(encode(quotePath(newPrefix + (type == DELETE ? oldp : newp))));
-		o.write('\n');
+		formatGitDiffFirstHeaderLine(o, type, oldp, newp);
 
 		switch (type) {
 		case ADD: