]> source.dussan.org Git - jgit.git/commitdiff
Extract method to output the first header line of a git diff 03/10003/4
authorTobias Pfeifer <to.pfeifer@sap.com>
Thu, 17 Jan 2013 13:45:00 +0000 (14:45 +0100)
committerTobias Pfeifer <to.pfeifer@sap.com>
Wed, 30 Jan 2013 12:27:50 +0000 (13:27 +0100)
In order to be able to determine the range of the first header line
(e.g. "diff --git a/file1 b/file2") in subclasses, the code that formats
the first header line is extracted.

Required by egit's change: Ia61398146c0336ab332234f24d341561292554db

Change-Id: I9dd5eb964ed8b6869745c3162159b7425ac2c44a
Signed-off-by: Tobias Pfeifer <to.pfeifer@sap.com>
org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java

index 4af1084bf40a95ac8336feb17fc760c4c1b530f5..fe0db33d3a073019a6943725cbb70a207635cbc5 100644 (file)
@@ -299,7 +299,7 @@ public class DiffFormatter {
 
        /**
         * Get the prefix applied in front of new file paths.
-        * 
+        *
         * @return the prefix
         * @since 2.0
         */
@@ -1008,6 +1008,31 @@ public class DiffFormatter {
                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 @@ public class DiffFormatter {
                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: