Browse Source

Extract method to output the first header line of a git diff

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>
stable-2.3
Tobias Pfeifer 12 years ago
parent
commit
0d09b1cab7
  1. 33
      org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java

33
org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java

@ -299,7 +299,7 @@ public class DiffFormatter {
/** /**
* Get the prefix applied in front of new file paths. * Get the prefix applied in front of new file paths.
* *
* @return the prefix * @return the prefix
* @since 2.0 * @since 2.0
*/ */
@ -1008,6 +1008,31 @@ public class DiffFormatter {
return false; 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) private void formatHeader(ByteArrayOutputStream o, DiffEntry ent)
throws IOException { throws IOException {
final ChangeType type = ent.getChangeType(); final ChangeType type = ent.getChangeType();
@ -1016,11 +1041,7 @@ public class DiffFormatter {
final FileMode oldMode = ent.getOldMode(); final FileMode oldMode = ent.getOldMode();
final FileMode newMode = ent.getNewMode(); final FileMode newMode = ent.getNewMode();
o.write(encodeASCII("diff --git ")); //$NON-NLS-1$ formatGitDiffFirstHeaderLine(o, type, oldp, newp);
o.write(encode(quotePath(oldPrefix + (type == ADD ? newp : oldp))));
o.write(' ');
o.write(encode(quotePath(newPrefix + (type == DELETE ? oldp : newp))));
o.write('\n');
switch (type) { switch (type) {
case ADD: case ADD:

Loading…
Cancel
Save