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 classSvnDiffGenerator.EmptyDetectionOutputStream
-
Field Summary
Fields Modifier and Type Field Description private SvnTargetbaseTargetprivate booleandiffAddedprivate booleandiffDeletedprivate SVNDiffOptionsdiffOptionsprivate java.lang.Stringencodingprivate byte[]eolprivate java.lang.StringexternalDiffCommandprivate booleanfallbackToAbsolutePathprivate booleanforcedBinaryDiffprivate booleanforceEmptyprotected static java.lang.StringHEADER_ENCODINGprotected static java.lang.StringHEADER_SEPARATORprivate booleanignorePropertiesprivate ISVNOptionsoptionsprivate SvnTargetoriginalTarget1private SvnTargetoriginalTarget2protected static java.lang.StringPROPERTIES_SEPARATORprivate booleanpropertiesOnlyprivate java.util.List<java.lang.String>rawDiffOptionsprivate SvnTargetrelativeToTargetprivate SvnTargetrepositoryRootprivate booleanuseGitFormatprivate java.util.Set<java.lang.String>visitedPathsprotected static java.lang.StringWC_REVISION_LABEL
-
Constructor Summary
Constructors Constructor Description SvnDiffGenerator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.StringadjustRelativeToReposRoot(java.lang.String targetString)private java.lang.StringcomputeLabel(java.lang.String targetString, java.lang.String originalTargetString)voiddisplayAddedDirectory(SvnTarget target, java.lang.String revision1, java.lang.String revision2, java.io.OutputStream outputStream)private voiddisplayBinary(java.lang.String mimeType1, java.lang.String mimeType2, java.io.OutputStream outputStream, boolean leftIsBinary, boolean rightIsBinary)private voiddisplayCannotDisplayFileMarkedBinary(java.io.OutputStream outputStream)voiddisplayContentChanged(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)voiddisplayDeletedDirectory(SvnTarget target, java.lang.String revision1, java.lang.String revision2, java.io.OutputStream outputStream)private voiddisplayEOL(java.io.OutputStream os)private voiddisplayFirstGitLabelPath(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String revision1, SvnDiffCallback.OperationKind operation)private voiddisplayFirstGitPath(java.io.OutputStream outputStream, java.lang.String path1)private voiddisplayGitDiffHeader(java.io.OutputStream outputStream, SvnDiffCallback.OperationKind operationKind, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath)private voiddisplayGitDiffHeaderAdded(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath)private voiddisplayGitDiffHeaderCopied(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath)private voiddisplayGitDiffHeaderDeleted(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath)private voiddisplayGitDiffHeaderModified(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath)private voiddisplayGitDiffHeaderRenamed(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath)private voiddisplayGitHeaderFields(java.io.OutputStream outputStream, SvnTarget target, java.lang.String revision1, java.lang.String revision2, SvnDiffCallback.OperationKind operation, java.lang.String copyFromPath)private voiddisplayGitPath(java.io.OutputStream outputStream, java.lang.String path1, java.lang.String pathPrefix, boolean label)protected booleandisplayHeader(java.io.OutputStream os, java.lang.String path, boolean deleted, boolean added, SvnDiffCallback.OperationKind operation)protected voiddisplayHeaderFields(java.io.OutputStream os, java.lang.String label1, java.lang.String label2)private voiddisplayMergeInfoDiff(java.io.OutputStream outputStream, java.lang.String oldValue, java.lang.String newValue)private voiddisplayMimeType(java.io.OutputStream outputStream, java.lang.String mimeType)private voiddisplayMimeTypes(java.io.OutputStream outputStream, java.lang.String mimeType1, java.lang.String mimeType2)private voiddisplayPropDiffValues(java.io.OutputStream outputStream, SVNProperties diff, SVNProperties baseProps)private voiddisplayPropertyChangesOn(java.lang.String path, java.io.OutputStream outputStream)voiddisplayPropsChanged(SvnTarget target, java.lang.String revision1, java.lang.String revision2, boolean dirWasAdded, SVNProperties originalProps, SVNProperties propChanges, java.io.OutputStream outputStream)private voiddisplaySecondGitLabelPath(java.io.OutputStream outputStream, java.lang.String path2, java.lang.String revision2, SvnDiffCallback.OperationKind operation)private voiddisplaySecondGitPath(java.io.OutputStream outputStream, java.lang.String path2)private voiddisplayString(java.io.OutputStream outputStream, java.lang.String s)private voidensureEncodingAndEOLSet()private java.lang.StringgetAdjustedPath(java.lang.String displayPath, java.lang.String path1, java.lang.String commonAncestor)private java.lang.StringgetAdjustedPathWithLabel(java.lang.String displayPath, java.lang.String path, java.lang.String revision, java.lang.String commonAncestor)private java.lang.StringgetChildPath(java.lang.String path, java.lang.String relativeToPath)SVNDiffOptionsgetDiffOptions()private java.lang.StringgetDisplayPath(SvnTarget target)java.lang.StringgetEncoding()byte[]getEOL()private java.lang.StringgetExternalDiffCommand()private java.lang.StringgetGitDiffLabel1(SvnDiffCallback.OperationKind operationKind, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath, java.lang.String revision)private java.lang.StringgetGitDiffLabel2(SvnDiffCallback.OperationKind operationKind, java.lang.String path1, java.lang.String path2, java.lang.String copyFromPath, java.lang.String revision)java.lang.StringgetGlobalEncoding()private java.lang.StringgetHeaderFieldsString(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.StringgetHeaderString(SvnTarget target, java.lang.String displayPath, boolean deleted, boolean added, SvnDiffCallback.OperationKind operation, java.lang.String copyFromPath)protected java.lang.StringgetLabel(java.lang.String path, java.lang.String revToken)ISVNOptionsgetOptions()private byte[]getPropertyAsBytes(SVNPropertyValue value, java.lang.String encoding)private java.lang.StringgetRelativePath(java.lang.String targetString, java.lang.String baseTargetString)private java.lang.StringgetRelativeToRootPath(SvnTarget target, SvnTarget originalTarget)private voidinternalDiff(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)booleanisDiffAdded()booleanisDiffDeleted()booleanisForcedBinaryDiff()booleanisIgnoreProperties()booleanisPropertiesOnly()private byte[]maybeAppendEOL(byte[] buffer)private voidrunExternalDiffCommand(java.io.OutputStream outputStream, java.lang.String diffCommand, java.io.File file1, java.io.File file2, java.lang.String label1, java.lang.String label2)voidsetAnchors(SvnTarget originalTarget1, SvnTarget originalTarget2)voidsetBasePath(java.io.File absoluteFile)voidsetBaseTarget(SvnTarget baseTarget)voidsetDiffAdded(boolean diffAdded)voidsetDiffDeleted(boolean diffDeleted)voidsetDiffOptions(SVNDiffOptions diffOptions)voidsetEncoding(java.lang.String encoding)voidsetEOL(byte[] eol)voidsetExternalDiffCommand(java.lang.String externalDiffCommand)voidsetFallbackToAbsolutePath(boolean fallbackToAbsolutePath)voidsetForcedBinaryDiff(boolean forcedBinaryDiff)voidsetForceEmpty(boolean forceEmpty)voidsetIgnoreProperties(boolean ignoreProperties)voidsetOptions(ISVNOptions options)voidsetOriginalTargets(SvnTarget originalTarget1, SvnTarget originalTarget2)voidsetPropertiesOnly(boolean propertiesOnly)voidsetRawDiffOptions(java.util.List<java.lang.String> rawDiffOptions)voidsetRelativeToTarget(SvnTarget relativeToTarget)voidsetRepositoryRoot(SvnTarget repositoryRoot)voidsetUseGitFormat(boolean useGitFormat)private voidthrowBadRelativePathException(java.lang.String displayPath, java.lang.String relativeToPath)private booleanuseLocalFileSeparatorChar()private voidwrapException(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:
setBaseTargetin interfaceISvnDiffGenerator
-
setUseGitFormat
public void setUseGitFormat(boolean useGitFormat)
- Specified by:
setUseGitFormatin interfaceISvnDiffGenerator
-
setOriginalTargets
public void setOriginalTargets(SvnTarget originalTarget1, SvnTarget originalTarget2)
- Specified by:
setOriginalTargetsin interfaceISvnDiffGenerator
-
setRelativeToTarget
public void setRelativeToTarget(SvnTarget relativeToTarget)
-
setAnchors
public void setAnchors(SvnTarget originalTarget1, SvnTarget originalTarget2)
- Specified by:
setAnchorsin interfaceISvnDiffGenerator
-
setRepositoryRoot
public void setRepositoryRoot(SvnTarget repositoryRoot)
- Specified by:
setRepositoryRootin interfaceISvnDiffGenerator
-
setForceEmpty
public void setForceEmpty(boolean forceEmpty)
- Specified by:
setForceEmptyin interfaceISvnDiffGenerator
-
setEncoding
public void setEncoding(java.lang.String encoding)
- Specified by:
setEncodingin interfaceISvnDiffGenerator
-
getEncoding
public java.lang.String getEncoding()
- Specified by:
getEncodingin interfaceISvnDiffGenerator
-
getGlobalEncoding
public java.lang.String getGlobalEncoding()
- Specified by:
getGlobalEncodingin interfaceISvnDiffGenerator
-
setEOL
public void setEOL(byte[] eol)
- Specified by:
setEOLin interfaceISvnDiffGenerator
-
getEOL
public byte[] getEOL()
- Specified by:
getEOLin interfaceISvnDiffGenerator
-
isForcedBinaryDiff
public boolean isForcedBinaryDiff()
- Specified by:
isForcedBinaryDiffin interfaceISvnDiffGenerator
-
setForcedBinaryDiff
public void setForcedBinaryDiff(boolean forcedBinaryDiff)
- Specified by:
setForcedBinaryDiffin 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:
displayDeletedDirectoryin 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:
displayAddedDirectoryin 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:
displayPropsChangedin 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:
displayContentChangedin 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:
SVNExceptionjava.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()
-
-