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