DefaultSVNDiffGenerator is a default implementation of
ISVNDiffGenerator.
By default, if there's no any specified implementation of the diff generator's
interface, SVNKit uses this default implementation. To set a custom
diff driver use
setDiffGenerator().
EMPTY_FILE_IS
protected static final InputStream EMPTY_FILE_IS
EOL
protected static final byte[] EOL
HEADER_SEPARATOR
protected static final byte[] HEADER_SEPARATOR
PROPERTIES_SEPARATOR
protected static final byte[] PROPERTIES_SEPARATOR
WC_REVISION_LABEL
protected static final String WC_REVISION_LABEL
createTempDirectory
public File createTempDirectory()
throws SVNException Creates a temporary directory (when necessary) where temporary files
will be created.
This temporary directory exists till the end of the diff operation.
- createTempDirectory in interface ISVNDiffGenerator
- an abstract pathname denoting a newly-created temporary
directory
displayAddedDirectory
public void displayAddedDirectory(String path,
String rev1,
String rev2)
throws SVNException Does nothing.
- displayAddedDirectory in interface ISVNDiffGenerator
path - a directory pathrev1 - the first diff revisionrev2 - the second diff revision
displayBinary
protected void displayBinary(OutputStream os,
String mimeType1,
String mimeType2)
throws IOException
displayDeletedDirectory
public void displayDeletedDirectory(String path,
String rev1,
String rev2)
throws SVNException Does nothing.
- displayDeletedDirectory in interface ISVNDiffGenerator
path - a directory pathrev1 - the first diff revisionrev2 - the second diff revision
displayFileDiff
public void displayFileDiff(String path,
File file1,
File file2,
String rev1,
String rev2,
String mimeType1,
String mimeType2,
OutputStream result)
throws SVNException Generates and writes differences between two files to the specified
output stream.
file1 or
file2 may be temporary files crteated
to get file contents from the repository (when running diff on URLs).
These temporary files will be deleted with the temporary directory
(created by
ISVNDiffGenerator.createTempDirectory()) when the operation ends up.
- displayFileDiff in interface ISVNDiffGenerator
path - a file path on which the differences are
generated and written to the outputfile1 - a file with old contentsfile2 - a file with new contentsrev1 - the first diff revision of file1rev2 - the second diff revision of file2mimeType1 - the MIME-type of file1mimeType2 - the MIME-type of file2result - the target OutputStream where
the differences will be written to
displayHeader
protected boolean displayHeader(OutputStream os,
String path,
boolean deleted)
throws IOException
displayHeaderFields
protected void displayHeaderFields(OutputStream os,
String path1,
String rev1,
String path2,
String rev2)
throws IOException
displayPropDiff
public void displayPropDiff(String path,
Map baseProps,
Map diff,
OutputStream result)
throws SVNException Writes the differences in file properties to the specified output
stream.
- displayPropDiff in interface ISVNDiffGenerator
path - a file path on which the property changes
are written to the outputbaseProps - a Map of old properties
(property names are mapped to their values)diff - a Map of changed properties
(property names are mapped to their values)result - the target OutputStream where
the differences will be written to
getBasePath
protected File getBasePath()
getDiffOptions
public SVNDiffOptions getDiffOptions()
Gets the diff options that are used by this generator.
Creates a new one if none was used before.
getDisplayPath
protected String getDisplayPath(String path)
getEncoding
public String getEncoding()
Gets the encoding charset being in use for a diff output.
- getEncoding in interface ISVNDiffGenerator
- the name of the charset being in use
init
public void init(String anchorPath1,
String anchorPath2) Initializes the driver setting up the paths/URLs that should be compared, or
root paths/URLs for those paths to which a diff operation should be restricted.
These paths have got the same meaning as
OLD-TGT (
anchorPath1)
and
NEW-TGT (
anchorPath2) in the SVN command line client's
'svn diff' command. So, they can be either local paths, or URLs pointing to
repository locations. If one of them (or both) is a URL it may differ from that
one passed to an appropriate
doDiff() method of
SVNDiffClient in that
case when in a peg revision it's one URL, but in the target revision it was changed
(moved?) to some other one. So, this method should receive the real one.
- init in interface ISVNDiffGenerator
anchorPath1 - an old path/URLanchorPath2 - a new path/URL
isDiffAdded
public boolean isDiffAdded()
Tells whether added files are enabled to be diffed.
This switch is relevant to
SVNLookClient's diff
operations.
- isDiffAdded in interface ISVNDiffGenerator
- true if added files
should be diffed, otherwise
false
isDiffCopied
public boolean isDiffCopied()
Tells whether copied files are enabled to be diffed against their
copy sources. This switch is relevant to
SVNLookClient's diff
operations.
- isDiffCopied in interface ISVNDiffGenerator
- true if copied files
should be diffed against copy sources;
false if copied files
should be treated as newly added
isDiffDeleted
public boolean isDiffDeleted()
Tells whether deleted files are enabled to be diffed.
- isDiffDeleted in interface ISVNDiffGenerator
- true if deleted files
should be diffed (the driver is set to generate differences
for deleted files as well), otherwise
false
isDiffUnversioned
public boolean isDiffUnversioned()
Says if unversioned files are also diffed or ignored.
By default unversioned files are ignored.
- isDiffUnversioned in interface ISVNDiffGenerator
- true if diffed,
false if ignored
isHeaderForced
protected boolean isHeaderForced(File file1,
File file2)
setBasePath
public void setBasePath(File basePath)
Sets the root path for this diff generator.
This can be used to make all paths in a diff output be relative
to this base path.
- setBasePath in interface ISVNDiffGenerator
basePath - a base path for this driver
setDiffAdded
public void setDiffAdded(boolean isDiffAdded)
Enables or disables generating differences for added
files. This switch is relevant to
SVNLookClient's diff
operations.
Like the
'--no-diff-added' option of the
'svnlook diff' command.
- setDiffAdded in interface ISVNDiffGenerator
isDiffAdded - if true then
added files will be diffed, otherwise not
setDiffCopied
public void setDiffCopied(boolean isDiffCopied)
Enables or disables generating differences against copy source
for copied files. This switch is relevant to
SVNLookClient's diff
operations.
Like the
'--diff-copy-from' option of the
'svnlook diff' command.
- setDiffCopied in interface ISVNDiffGenerator
isDiffCopied - if true then
copied files will be diffed against copy sources,
otherwise they will be treated as newly added files
setDiffDeleted
public void setDiffDeleted(boolean isDiffDeleted)
Enables or disables generating differences for deleted
files.
Like the
'--no-diff-deleted' option of the
'svn diff'
or
'svnlook diff' commands.
- setDiffDeleted in interface ISVNDiffGenerator
isDiffDeleted - if true then
deleted files will be diffed, otherwise not
setDiffOptions
public void setDiffOptions(SVNDiffOptions options)
Sets diff options containing diff rules.
setDiffUnversioned
public void setDiffUnversioned(boolean diffUnversioned)
Includes or not unversioned files into diff processing.
If a diff operation is invoked on a versioned directory and
diffUnversioned is
true
then all unversioned files that may be met in the directory will
be processed as added. Otherwise if
diffUnversioned
is
false such files are ignored.
By default unversioned files are ignored.
- setDiffUnversioned in interface ISVNDiffGenerator
diffUnversioned - controls whether to diff unversioned files
or not
setEncoding
public void setEncoding(String encoding)
Sets the encoding charset to be used for a diff output.
- setEncoding in interface ISVNDiffGenerator
encoding - the name of a charset
setForcedBinaryDiff
public void setForcedBinaryDiff(boolean forced)
Enables or disables generating differnces between files having
a binary MIME type.
Like the
'--force' option of the
'svn diff' command.
- setForcedBinaryDiff in interface ISVNDiffGenerator
forced - if true binary
files will also be diffed, otherwise not
useLocalFileSeparatorChar
protected boolean useLocalFileSeparatorChar()