public class SvnDiffGenerator extends java.lang.Object implements ISvnDiffGenerator
Modifier and Type | Class and Description |
---|---|
private class |
SvnDiffGenerator.EmptyDetectionOutputStream |
Modifier and Type | Field and Description |
---|---|
private SvnTarget |
baseTarget |
private boolean |
diffAdded |
private boolean |
diffDeleted |
private SVNDiffOptions |
diffOptions |
private java.lang.String |
encoding |
private byte[] |
eol |
private java.lang.String |
externalDiffCommand |
private boolean |
fallbackToAbsolutePath |
private boolean |
forcedBinaryDiff |
private boolean |
forceEmpty |
protected static java.lang.String |
HEADER_ENCODING |
protected static java.lang.String |
HEADER_SEPARATOR |
private boolean |
ignoreProperties |
private ISVNOptions |
options |
private SvnTarget |
originalTarget1 |
private SvnTarget |
originalTarget2 |
protected static java.lang.String |
PROPERTIES_SEPARATOR |
private boolean |
propertiesOnly |
private java.util.List<java.lang.String> |
rawDiffOptions |
private SvnTarget |
relativeToTarget |
private SvnTarget |
repositoryRoot |
private boolean |
useGitFormat |
private java.util.Set<java.lang.String> |
visitedPaths |
protected static java.lang.String |
WC_REVISION_LABEL |
Constructor and Description |
---|
SvnDiffGenerator() |
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
adjustRelativeToReposRoot(java.lang.String targetString) |
private java.lang.String |
computeLabel(java.lang.String targetString,
java.lang.String originalTargetString) |
void |
displayAddedDirectory(SvnTarget target,
java.lang.String revision1,
java.lang.String revision2,
java.io.OutputStream outputStream) |
private void |
displayBinary(java.lang.String mimeType1,
java.lang.String mimeType2,
java.io.OutputStream outputStream,
boolean leftIsBinary,
boolean rightIsBinary) |
private void |
displayCannotDisplayFileMarkedBinary(java.io.OutputStream outputStream) |
void |
displayContentChanged(SvnTarget target,
java.io.File leftFile,
java.io.File rightFile,
java.lang.String revision1,
java.lang.String revision2,
java.lang.String mimeType1,
java.lang.String mimeType2,
SvnDiffCallback.OperationKind operation,
java.io.File copyFromPath,
SVNProperties originalProperties,
SVNProperties propChanges,
java.io.OutputStream outputStream) |
void |
displayDeletedDirectory(SvnTarget target,
java.lang.String revision1,
java.lang.String revision2,
java.io.OutputStream outputStream) |
private void |
displayEOL(java.io.OutputStream os) |
private void |
displayFirstGitLabelPath(java.io.OutputStream outputStream,
java.lang.String path1,
java.lang.String revision1,
SvnDiffCallback.OperationKind operation) |
private void |
displayFirstGitPath(java.io.OutputStream outputStream,
java.lang.String path1) |
private void |
displayGitDiffHeader(java.io.OutputStream outputStream,
SvnDiffCallback.OperationKind operationKind,
java.lang.String path1,
java.lang.String path2,
java.lang.String copyFromPath) |
private void |
displayGitDiffHeaderAdded(java.io.OutputStream outputStream,
java.lang.String path1,
java.lang.String path2,
java.lang.String copyFromPath) |
private void |
displayGitDiffHeaderCopied(java.io.OutputStream outputStream,
java.lang.String path1,
java.lang.String path2,
java.lang.String copyFromPath) |
private void |
displayGitDiffHeaderDeleted(java.io.OutputStream outputStream,
java.lang.String path1,
java.lang.String path2,
java.lang.String copyFromPath) |
private void |
displayGitDiffHeaderModified(java.io.OutputStream outputStream,
java.lang.String path1,
java.lang.String path2,
java.lang.String copyFromPath) |
private void |
displayGitDiffHeaderRenamed(java.io.OutputStream outputStream,
java.lang.String path1,
java.lang.String path2,
java.lang.String copyFromPath) |
private void |
displayGitHeaderFields(java.io.OutputStream outputStream,
SvnTarget target,
java.lang.String revision1,
java.lang.String revision2,
SvnDiffCallback.OperationKind operation,
java.lang.String copyFromPath) |
private void |
displayGitPath(java.io.OutputStream outputStream,
java.lang.String path1,
java.lang.String pathPrefix,
boolean label) |
protected boolean |
displayHeader(java.io.OutputStream os,
java.lang.String path,
boolean deleted,
boolean added,
SvnDiffCallback.OperationKind operation) |
protected void |
displayHeaderFields(java.io.OutputStream os,
java.lang.String label1,
java.lang.String label2) |
private void |
displayMergeInfoDiff(java.io.OutputStream outputStream,
java.lang.String oldValue,
java.lang.String newValue) |
private void |
displayMimeType(java.io.OutputStream outputStream,
java.lang.String mimeType) |
private void |
displayMimeTypes(java.io.OutputStream outputStream,
java.lang.String mimeType1,
java.lang.String mimeType2) |
private void |
displayPropDiffValues(java.io.OutputStream outputStream,
SVNProperties diff,
SVNProperties baseProps) |
private void |
displayPropertyChangesOn(java.lang.String path,
java.io.OutputStream outputStream) |
void |
displayPropsChanged(SvnTarget target,
java.lang.String revision1,
java.lang.String revision2,
boolean dirWasAdded,
SVNProperties originalProps,
SVNProperties propChanges,
java.io.OutputStream outputStream) |
private void |
displaySecondGitLabelPath(java.io.OutputStream outputStream,
java.lang.String path2,
java.lang.String revision2,
SvnDiffCallback.OperationKind operation) |
private void |
displaySecondGitPath(java.io.OutputStream outputStream,
java.lang.String path2) |
private void |
displayString(java.io.OutputStream outputStream,
java.lang.String s) |
private void |
ensureEncodingAndEOLSet() |
private java.lang.String |
getAdjustedPath(java.lang.String displayPath,
java.lang.String path1,
java.lang.String commonAncestor) |
private java.lang.String |
getAdjustedPathWithLabel(java.lang.String displayPath,
java.lang.String path,
java.lang.String revision,
java.lang.String commonAncestor) |
private java.lang.String |
getChildPath(java.lang.String path,
java.lang.String relativeToPath) |
SVNDiffOptions |
getDiffOptions() |
private java.lang.String |
getDisplayPath(SvnTarget target) |
java.lang.String |
getEncoding() |
byte[] |
getEOL() |
private java.lang.String |
getExternalDiffCommand() |
private java.lang.String |
getGitDiffLabel1(SvnDiffCallback.OperationKind operationKind,
java.lang.String path1,
java.lang.String path2,
java.lang.String copyFromPath,
java.lang.String revision) |
private java.lang.String |
getGitDiffLabel2(SvnDiffCallback.OperationKind operationKind,
java.lang.String path1,
java.lang.String path2,
java.lang.String copyFromPath,
java.lang.String revision) |
java.lang.String |
getGlobalEncoding() |
private java.lang.String |
getHeaderFieldsString(SvnTarget target,
java.lang.String displayPath,
java.lang.String label1,
java.lang.String label2,
java.lang.String revision1,
java.lang.String revision2,
SvnDiffCallback.OperationKind operation,
java.lang.String copyFromPath) |
private java.lang.String |
getHeaderString(SvnTarget target,
java.lang.String displayPath,
boolean deleted,
boolean added,
SvnDiffCallback.OperationKind operation,
java.lang.String copyFromPath) |
protected java.lang.String |
getLabel(java.lang.String path,
java.lang.String revToken) |
ISVNOptions |
getOptions() |
private byte[] |
getPropertyAsBytes(SVNPropertyValue value,
java.lang.String encoding) |
private java.lang.String |
getRelativePath(java.lang.String targetString,
java.lang.String baseTargetString) |
private java.lang.String |
getRelativeToRootPath(SvnTarget target,
SvnTarget originalTarget) |
private void |
internalDiff(SvnTarget target,
java.io.OutputStream outputStream,
java.lang.String displayPath,
java.io.File file1,
java.io.File file2,
java.lang.String label1,
java.lang.String label2,
SvnDiffCallback.OperationKind operation,
java.lang.String copyFromPath,
java.lang.String revision1,
java.lang.String revision2) |
boolean |
isDiffAdded() |
boolean |
isDiffDeleted() |
boolean |
isForcedBinaryDiff() |
boolean |
isIgnoreProperties() |
boolean |
isPropertiesOnly() |
private byte[] |
maybeAppendEOL(byte[] buffer) |
private void |
runExternalDiffCommand(java.io.OutputStream outputStream,
java.lang.String diffCommand,
java.io.File file1,
java.io.File file2,
java.lang.String label1,
java.lang.String label2) |
void |
setAnchors(SvnTarget originalTarget1,
SvnTarget originalTarget2) |
void |
setBasePath(java.io.File absoluteFile) |
void |
setBaseTarget(SvnTarget baseTarget) |
void |
setDiffAdded(boolean diffAdded) |
void |
setDiffDeleted(boolean diffDeleted) |
void |
setDiffOptions(SVNDiffOptions diffOptions) |
void |
setEncoding(java.lang.String encoding) |
void |
setEOL(byte[] eol) |
void |
setExternalDiffCommand(java.lang.String externalDiffCommand) |
void |
setFallbackToAbsolutePath(boolean fallbackToAbsolutePath) |
void |
setForcedBinaryDiff(boolean forcedBinaryDiff) |
void |
setForceEmpty(boolean forceEmpty) |
void |
setIgnoreProperties(boolean ignoreProperties) |
void |
setOptions(ISVNOptions options) |
void |
setOriginalTargets(SvnTarget originalTarget1,
SvnTarget originalTarget2) |
void |
setPropertiesOnly(boolean propertiesOnly) |
void |
setRawDiffOptions(java.util.List<java.lang.String> rawDiffOptions) |
void |
setRelativeToTarget(SvnTarget relativeToTarget) |
void |
setRepositoryRoot(SvnTarget repositoryRoot) |
void |
setUseGitFormat(boolean useGitFormat) |
private void |
throwBadRelativePathException(java.lang.String displayPath,
java.lang.String relativeToPath) |
private boolean |
useLocalFileSeparatorChar() |
private void |
wrapException(java.io.IOException e) |
protected static final java.lang.String WC_REVISION_LABEL
protected static final java.lang.String PROPERTIES_SEPARATOR
protected static final java.lang.String HEADER_SEPARATOR
protected static final java.lang.String HEADER_ENCODING
private SvnTarget originalTarget1
private SvnTarget originalTarget2
private SvnTarget baseTarget
private SvnTarget relativeToTarget
private SvnTarget repositoryRoot
private java.lang.String encoding
private byte[] eol
private boolean useGitFormat
private boolean forcedBinaryDiff
private boolean diffDeleted
private boolean diffAdded
private java.util.List<java.lang.String> rawDiffOptions
private boolean forceEmpty
private java.util.Set<java.lang.String> visitedPaths
private java.lang.String externalDiffCommand
private SVNDiffOptions diffOptions
private boolean fallbackToAbsolutePath
private ISVNOptions options
private boolean propertiesOnly
private boolean ignoreProperties
private java.lang.String getDisplayPath(SvnTarget target)
private java.lang.String getRelativeToRootPath(SvnTarget target, SvnTarget originalTarget)
private java.lang.String getRelativePath(java.lang.String targetString, java.lang.String baseTargetString)
private java.lang.String getChildPath(java.lang.String path, java.lang.String relativeToPath)
public void setBaseTarget(SvnTarget baseTarget)
setBaseTarget
in interface ISvnDiffGenerator
public void setUseGitFormat(boolean useGitFormat)
setUseGitFormat
in interface ISvnDiffGenerator
public void setOriginalTargets(SvnTarget originalTarget1, SvnTarget originalTarget2)
setOriginalTargets
in interface ISvnDiffGenerator
public void setRelativeToTarget(SvnTarget relativeToTarget)
public void setAnchors(SvnTarget originalTarget1, SvnTarget originalTarget2)
setAnchors
in interface ISvnDiffGenerator
public void setRepositoryRoot(SvnTarget repositoryRoot)
setRepositoryRoot
in interface ISvnDiffGenerator
public void setForceEmpty(boolean forceEmpty)
setForceEmpty
in interface ISvnDiffGenerator
public void setEncoding(java.lang.String encoding)
setEncoding
in interface ISvnDiffGenerator
public java.lang.String getEncoding()
getEncoding
in interface ISvnDiffGenerator
public java.lang.String getGlobalEncoding()
getGlobalEncoding
in interface ISvnDiffGenerator
public void setEOL(byte[] eol)
setEOL
in interface ISvnDiffGenerator
public byte[] getEOL()
getEOL
in interface ISvnDiffGenerator
public boolean isForcedBinaryDiff()
isForcedBinaryDiff
in interface ISvnDiffGenerator
public void setForcedBinaryDiff(boolean forcedBinaryDiff)
setForcedBinaryDiff
in interface ISvnDiffGenerator
public boolean isPropertiesOnly()
public void setPropertiesOnly(boolean propertiesOnly)
public boolean isIgnoreProperties()
public void setIgnoreProperties(boolean ignoreProperties)
public void displayDeletedDirectory(SvnTarget target, java.lang.String revision1, java.lang.String revision2, java.io.OutputStream outputStream) throws SVNException
displayDeletedDirectory
in interface ISvnDiffGenerator
SVNException
public void displayAddedDirectory(SvnTarget target, java.lang.String revision1, java.lang.String revision2, java.io.OutputStream outputStream) throws SVNException
displayAddedDirectory
in interface ISvnDiffGenerator
SVNException
public void displayPropsChanged(SvnTarget target, java.lang.String revision1, java.lang.String revision2, boolean dirWasAdded, SVNProperties originalProps, SVNProperties propChanges, java.io.OutputStream outputStream) throws SVNException
displayPropsChanged
in interface ISvnDiffGenerator
SVNException
private void throwBadRelativePathException(java.lang.String displayPath, java.lang.String relativeToPath) throws SVNException
SVNException
private void displayGitHeaderFields(java.io.OutputStream outputStream, SvnTarget target, java.lang.String revision1, java.lang.String revision2, SvnDiffCallback.OperationKind operation, java.lang.String copyFromPath) throws SVNException
SVNException
private java.lang.String adjustRelativeToReposRoot(java.lang.String targetString)
private java.lang.String computeLabel(java.lang.String targetString, java.lang.String originalTargetString)
public void displayContentChanged(SvnTarget target, java.io.File leftFile, java.io.File rightFile, java.lang.String revision1, java.lang.String revision2, java.lang.String mimeType1, java.lang.String mimeType2, SvnDiffCallback.OperationKind operation, java.io.File copyFromPath, SVNProperties originalProperties, SVNProperties propChanges, java.io.OutputStream outputStream) throws SVNException
displayContentChanged
in interface ISvnDiffGenerator
SVNException
private void displayBinary(java.lang.String mimeType1, java.lang.String mimeType2, java.io.OutputStream outputStream, boolean leftIsBinary, boolean rightIsBinary) throws SVNException
SVNException
private void internalDiff(SvnTarget target, java.io.OutputStream outputStream, java.lang.String displayPath, java.io.File file1, java.io.File file2, java.lang.String label1, java.lang.String label2, SvnDiffCallback.OperationKind operation, java.lang.String copyFromPath, java.lang.String revision1, java.lang.String revision2) throws SVNException
SVNException
private java.lang.String getHeaderFieldsString(SvnTarget target, java.lang.String displayPath, java.lang.String label1, java.lang.String label2, java.lang.String revision1, java.lang.String revision2, SvnDiffCallback.OperationKind operation, java.lang.String copyFromPath) throws SVNException
SVNException
private java.lang.String getHeaderString(SvnTarget target, java.lang.String displayPath, boolean deleted, boolean added, SvnDiffCallback.OperationKind operation, java.lang.String copyFromPath) throws SVNException
SVNException
private void runExternalDiffCommand(java.io.OutputStream outputStream, java.lang.String diffCommand, java.io.File file1, java.io.File file2, java.lang.String label1, java.lang.String label2) throws SVNException
SVNException
private java.lang.String getExternalDiffCommand()
private void displayMimeType(java.io.OutputStream outputStream, java.lang.String mimeType) throws SVNException
SVNException
private void displayMimeTypes(java.io.OutputStream outputStream, java.lang.String mimeType1, java.lang.String mimeType2) throws SVNException
SVNException
private void displayCannotDisplayFileMarkedBinary(java.io.OutputStream outputStream) throws SVNException
SVNException
private void ensureEncodingAndEOLSet()
private void displayPropDiffValues(java.io.OutputStream outputStream, SVNProperties diff, SVNProperties baseProps) throws SVNException
SVNException
private byte[] maybeAppendEOL(byte[] buffer)
private java.lang.String getGitDiffLabel1(SvnDiffCallback.OperationKind operationKind, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath, java.lang.String revision)
private java.lang.String getGitDiffLabel2(SvnDiffCallback.OperationKind operationKind, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath, java.lang.String revision)
private void displayGitDiffHeader(java.io.OutputStream outputStream, SvnDiffCallback.OperationKind operationKind, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath) throws SVNException
SVNException
private void displayGitDiffHeaderAdded(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath) throws SVNException
SVNException
private void displayGitDiffHeaderDeleted(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath) throws SVNException
SVNException
private void displayGitDiffHeaderCopied(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath) throws SVNException
SVNException
private void displayGitDiffHeaderRenamed(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath) throws SVNException
SVNException
private void displayGitDiffHeaderModified(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath) throws SVNException
SVNException
private void displayFirstGitPath(java.io.OutputStream outputStream, java.lang.String path1) throws java.io.IOException
java.io.IOException
private void displaySecondGitPath(java.io.OutputStream outputStream, java.lang.String path2) throws java.io.IOException
java.io.IOException
private void displayFirstGitLabelPath(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String revision1, SvnDiffCallback.OperationKind operation) throws java.io.IOException
java.io.IOException
private void displaySecondGitLabelPath(java.io.OutputStream outputStream, java.lang.String path2, java.lang.String revision2, SvnDiffCallback.OperationKind operation) throws java.io.IOException
java.io.IOException
private void displayGitPath(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String pathPrefix, boolean label) throws java.io.IOException
java.io.IOException
private java.lang.String getAdjustedPathWithLabel(java.lang.String displayPath, java.lang.String path, java.lang.String revision, java.lang.String commonAncestor)
private java.lang.String getAdjustedPath(java.lang.String displayPath, java.lang.String path1, java.lang.String commonAncestor)
protected java.lang.String getLabel(java.lang.String path, java.lang.String revToken)
protected boolean displayHeader(java.io.OutputStream os, java.lang.String path, boolean deleted, boolean added, SvnDiffCallback.OperationKind operation) throws SVNException
SVNException
protected void displayHeaderFields(java.io.OutputStream os, java.lang.String label1, java.lang.String label2) throws SVNException
SVNException
private void displayPropertyChangesOn(java.lang.String path, java.io.OutputStream outputStream) throws SVNException
SVNException
private byte[] getPropertyAsBytes(SVNPropertyValue value, java.lang.String encoding)
private void displayMergeInfoDiff(java.io.OutputStream outputStream, java.lang.String oldValue, java.lang.String newValue) throws SVNException, java.io.IOException
SVNException
java.io.IOException
private boolean useLocalFileSeparatorChar()
public boolean isDiffDeleted()
public boolean isDiffAdded()
private void wrapException(java.io.IOException e) throws SVNException
SVNException
private void displayString(java.io.OutputStream outputStream, java.lang.String s) throws java.io.IOException
java.io.IOException
private void displayEOL(java.io.OutputStream os) throws java.io.IOException
java.io.IOException
public SVNDiffOptions getDiffOptions()
public void setExternalDiffCommand(java.lang.String externalDiffCommand)
public void setRawDiffOptions(java.util.List<java.lang.String> rawDiffOptions)
public void setDiffOptions(SVNDiffOptions diffOptions)
public void setDiffDeleted(boolean diffDeleted)
public void setDiffAdded(boolean diffAdded)
public void setBasePath(java.io.File absoluteFile)
public void setFallbackToAbsolutePath(boolean fallbackToAbsolutePath)
public void setOptions(ISVNOptions options)
public ISVNOptions getOptions()