summaryrefslogtreecommitdiff
path: root/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java')
-rw-r--r--subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java521
1 files changed, 298 insertions, 223 deletions
diff --git a/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java b/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
index 2fc28c2..80c5a33 100644
--- a/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
+++ b/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
@@ -29,133 +29,175 @@ import java.io.InputStream;
import java.io.File;
import org.apache.subversion.javahl.callback.ReposNotifyCallback;
+import org.apache.subversion.javahl.callback.ReposVerifyCallback;
import org.apache.subversion.javahl.callback.ReposFreezeAction;
import org.apache.subversion.javahl.types.*;
public interface ISVNRepos {
- /**
- * interface to receive the messages
- */
- public static interface MessageReceiver
- {
- /**
- * receive one message line
- * @param message one line of message
- */
- public void receiveMessageLine(String message);
- }
-
- /**
- * release the native peer (should not depend on finalize)
- */
- public abstract void dispose();
-
- /**
- * Filesystem in a Berkeley DB
- */
- public static final String BDB = "bdb";
- /**
- * Filesystem in the filesystem
- */
- public static final String FSFS = "fsfs";
-
- /**
- * @return Version information about the underlying native libraries.
- */
- public abstract Version getVersion();
-
- /**
- * create a subversion repository.
- * @param path the path where the repository will been
- * created.
- * @param disableFsyncCommit disable to fsync at the commit (BDB).
- * @param keepLog keep the log files (BDB).
- * @param configPath optional path for user configuration files.
- * @param fstype the type of the filesystem (BDB or FSFS)
- * @throws ClientException throw in case of problem
- */
- public abstract void create(File path, boolean disableFsyncCommit,
- boolean keepLog, File configPath, String fstype)
- throws ClientException;
-
- /**
- * deltify the revisions in the repository
- * @param path the path to the repository
- * @param start start revision
- * @param end end revision
- * @throws ClientException throw in case of problem
- */
- public abstract void deltify(File path, Revision start, Revision end)
- throws ClientException;
-
- /**
- * dump the data in a repository
- * @param path the path to the repository
- * @param dataOut the data will be outputed here
- * @param start the first revision to be dumped
- * @param end the last revision to be dumped
- * @param incremental the dump will be incremantal
- * @param useDeltas the dump will contain deltas between nodes
- * @param callback the callback to recieve notifications
- * @throws ClientException throw in case of problem
- */
- public abstract void dump(File path, OutputStream dataOut,
+ /**
+ * interface to receive the messages
+ */
+ public static interface MessageReceiver
+ {
+ /**
+ * receive one message line
+ * @param message one line of message
+ */
+ public void receiveMessageLine(String message);
+ }
+
+ /**
+ * release the native peer (should not depend on finalize)
+ */
+ public abstract void dispose();
+
+ /**
+ * Filesystem in a Berkeley DB
+ */
+ public static final String BDB = "bdb";
+ /**
+ * Filesystem in the filesystem
+ */
+ public static final String FSFS = "fsfs";
+
+ /**
+ * @return Version information about the underlying native libraries.
+ */
+ public abstract Version getVersion();
+
+ /**
+ * create a subversion repository.
+ * @param path the path where the repository will been
+ * created.
+ * @param disableFsyncCommit disable to fsync at the commit (BDB).
+ * @param keepLog keep the log files (BDB).
+ * @param configPath optional path for user configuration files.
+ * @param fstype the type of the filesystem (BDB or FSFS)
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void create(File path, boolean disableFsyncCommit,
+ boolean keepLog, File configPath, String fstype)
+ throws ClientException;
+
+ /**
+ * deltify the revisions in the repository
+ * @param path the path to the repository
+ * @param start start revision
+ * @param end end revision
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void deltify(File path, Revision start, Revision end)
+ throws ClientException;
+
+ /**
+ * dump the data in a repository
+ * @param path the path to the repository
+ * @param dataOut the data will be outputed here
+ * @param start the first revision to be dumped
+ * @param end the last revision to be dumped
+ * @param incremental the dump will be incremantal
+ * @param useDeltas the dump will contain deltas between nodes
+ * @param callback the callback to receive notifications
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void dump(File path, OutputStream dataOut,
Revision start, Revision end, boolean incremental,
boolean useDeltas, ReposNotifyCallback callback)
- throws ClientException;
-
- /**
- * make a hot copy of the repository
- * @param path the path to the source repository
- * @param targetPath the path to the target repository
- * @param cleanLogs clean the unused log files in the source
- * repository
- * @throws ClientException throw in case of problem
- */
- public abstract void hotcopy(File path, File targetPath,
- boolean cleanLogs, boolean incremental) throws ClientException;
-
- public abstract void hotcopy(File path, File targetPath,
- boolean cleanLogs) throws ClientException;
-
- /**
- * list all logfiles (BDB) in use or not)
- * @param path the path to the repository
- * @param receiver interface to receive the logfile names
- * @throws ClientException throw in case of problem
- */
- public abstract void listDBLogs(File path, MessageReceiver receiver)
- throws ClientException;
-
- /**
- * list unused logfiles
- * @param path the path to the repository
- * @param receiver interface to receive the logfile names
- * @throws ClientException throw in case of problem
- */
- public abstract void listUnusedDBLogs(File path, MessageReceiver receiver)
- throws ClientException;
-
-
- /**
- * load the data of a dump into a repository
- * @param path the path to the repository
- * @param dataInput the data input source
+ throws ClientException;
+
+ /**
+ * make a hot copy of the repository
+ * @param path the path to the source repository
+ * @param targetPath the path to the target repository
+ * @param cleanLogs clean the unused log files in the source
+ * repository
+ * @param callback the callback to receive notifications
+ * @throws ClientException throw in case of problem
+ * @since 1.9
+ */
+ public abstract void hotcopy(File path, File targetPath,
+ boolean cleanLogs, boolean incremental,
+ ReposNotifyCallback callback)
+ throws ClientException;
+
+ public abstract void hotcopy(File path, File targetPath,
+ boolean cleanLogs, boolean incremental)
+ throws ClientException;
+
+ public abstract void hotcopy(File path, File targetPath,
+ boolean cleanLogs) throws ClientException;
+
+ /**
+ * list all logfiles (BDB) in use or not)
+ * @param path the path to the repository
+ * @param receiver interface to receive the logfile names
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void listDBLogs(File path, MessageReceiver receiver)
+ throws ClientException;
+
+ /**
+ * list unused logfiles
+ * @param path the path to the repository
+ * @param receiver interface to receive the logfile names
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void listUnusedDBLogs(File path, MessageReceiver receiver)
+ throws ClientException;
+
+
+ /**
+ * load the data of a dump into a repository
+ * @param path the path to the repository
+ * @param dataInput the data input source
* @param start the first revision to load
* @param end the last revision to load
- * @param ignoreUUID ignore any UUID found in the input stream
- * @param forceUUID set the repository UUID to any found in the
- * stream
- * @param usePreCommitHook use the pre-commit hook when processing commits
- * @param usePostCommitHook use the post-commit hook when processing commits
- * @param relativePath the directory in the repository, where the data
- * in put optional.
- * @param callback the target for processing messages
- * @throws ClientException throw in case of problem
+ * @param ignoreUUID ignore any UUID found in the input stream
+ * @param forceUUID set the repository UUID to any found in the
+ * stream
+ * @param usePreCommitHook use the pre-commit hook when processing commits
+ * @param usePostCommitHook use the post-commit hook when processing commits
+ * @param validateProps validate "svn:" revision and node properties
+ * @param ignoreDates ignore revision datestamps in the dump stream
+ * @param relativePath the directory in the repository, where the data
+ * in put optional.
+ * @param callback the target for processing messages
+ * @throws ClientException throw in case of problem
+ * @since 1.9
+ */
+ public abstract void load(File path, InputStream dataInput,
+ Revision start, Revision end,
+ boolean ignoreUUID, boolean forceUUID,
+ boolean usePreCommitHook,
+ boolean usePostCommitHook,
+ boolean validateProps,
+ boolean ignoreDates,
+ String relativePath,
+ ReposNotifyCallback callback)
+ throws ClientException;
+
+ /**
+ * Load the data of a dump into a repository. Sets
+ * <code>validateProps</code> and <code>ignoreDates</code> to
+ * <code>false</code>.
+ *
+ * @param path the path to the repository
+ * @param dataInput the data input source
+ * @param start the first revision to load
+ * @param end the last revision to load
+ * @param ignoreUUID ignore any UUID found in the input stream
+ * @param forceUUID set the repository UUID to any found in the
+ * stream
+ * @param usePreCommitHook use the pre-commit hook when processing commits
+ * @param usePostCommitHook use the post-commit hook when processing commits
+ * @param relativePath the directory in the repository, where the data
+ * in put optional.
+ * @param callback the target for processing messages
+ * @throws ClientException throw in case of problem
* @since 1.8
- */
- public abstract void load(File path, InputStream dataInput,
+ */
+ public abstract void load(File path, InputStream dataInput,
Revision start, Revision end,
boolean ignoreUUID, boolean forceUUID,
boolean usePreCommitHook,
@@ -164,142 +206,175 @@ public interface ISVNRepos {
ReposNotifyCallback callback)
throws ClientException;
- /**
- * load the data of a dump into a repository
- * @param path the path to the repository
- * @param dataInput the data input source
- * @param ignoreUUID ignore any UUID found in the input stream
- * @param forceUUID set the repository UUID to any found in the
- * stream
- * @param usePreCommitHook use the pre-commit hook when processing commits
- * @param usePostCommitHook use the post-commit hook when processing commits
- * @param relativePath the directory in the repository, where the data
- * in put optional.
- * @param callback the target for processing messages
- * @throws ClientException throw in case of problem
+ /**
+ * load the data of a dump into a repository
+ * @param path the path to the repository
+ * @param dataInput the data input source
+ * @param ignoreUUID ignore any UUID found in the input stream
+ * @param forceUUID set the repository UUID to any found in the
+ * stream
+ * @param usePreCommitHook use the pre-commit hook when processing commits
+ * @param usePostCommitHook use the post-commit hook when processing commits
+ * @param relativePath the directory in the repository, where the data
+ * in put optional.
+ * @param callback the target for processing messages
+ * @throws ClientException throw in case of problem
* @note behaves like the 1.8 vesion with the revision
* parameters set to Revision.START and Revision.HEAD.
- */
- public abstract void load(File path, InputStream dataInput,
- boolean ignoreUUID, boolean forceUUID, boolean usePreCommitHook,
+ */
+ public abstract void load(File path, InputStream dataInput,
+ boolean ignoreUUID, boolean forceUUID, boolean usePreCommitHook,
boolean usePostCommitHook, String relativePath,
ReposNotifyCallback callback)
throws ClientException;
- /**
- * list all open transactions in a repository
- * @param path the path to the repository
- * @param receiver receives one transaction name per call
- * @throws ClientException throw in case of problem
- */
- public abstract void lstxns(File path, MessageReceiver receiver)
- throws ClientException;
-
- /**
- * recover the filesystem backend of a repository
- * @param path the path to the repository
+ /**
+ * list all open transactions in a repository
+ * @param path the path to the repository
+ * @param receiver receives one transaction name per call
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void lstxns(File path, MessageReceiver receiver)
+ throws ClientException;
+
+ /**
+ * recover the filesystem backend of a repository
+ * @param path the path to the repository
* @return youngest revision
- * @throws ClientException throw in case of problem
- */
- public abstract long recover(File path, ReposNotifyCallback callback)
+ * @throws ClientException throw in case of problem
+ */
+ public abstract long recover(File path, ReposNotifyCallback callback)
throws ClientException;
- /**
- * Take an exclusive lock on each of the listed repositories
- * to prevent commits; then, while holding all the locks, call
- * the action.invoke().
- *
- * The repositories may or may not be readable by Subversion
- * while frozen, depending on implementation details of the
- * repository's filesystem backend.
- *
- * Repositories are locked in the listed order.
- * @param action describes the action to perform
- * @param paths the set of repository paths
- * @throws ClientException
+ /**
+ * Take an exclusive lock on each of the listed repositories
+ * to prevent commits; then, while holding all the locks, call
+ * the action.invoke().
+ *
+ * The repositories may or may not be readable by Subversion
+ * while frozen, depending on implementation details of the
+ * repository's filesystem backend.
+ *
+ * Repositories are locked in the listed order.
+ * @param action describes the action to perform
+ * @param paths the set of repository paths
+ * @throws ClientException
* @since 1.8
- */
- public abstract void freeze(ReposFreezeAction action,
- File... paths)
- throws ClientException;
-
- /**
- * remove open transaction in a repository
- * @param path the path to the repository
- * @param transactions the transactions to be removed
- * @throws ClientException throw in case of problem
- */
- public abstract void rmtxns(File path, String[] transactions)
- throws ClientException;
-
- /**
- * Change the value of the revision property <code>propName</code>
- * to <code>propValue</code>. By default, does not run
- * pre-/post-revprop-change hook scripts.
- *
- * @param path The path to the repository.
- * @param rev The revision for which to change a property value.
- * @param propName The name of the property to change.
- * @param propValue The new value to set for the property.
- * @param usePreRevPropChangeHook Whether to run the
- * <i>pre-revprop-change</i> hook script.
- * @param usePostRevPropChangeHook Whether to run the
- * <i>post-revprop-change</i> hook script.
- * @throws SubversionException If a problem occurs.
- */
- public abstract void setRevProp(File path, Revision rev, String propName,
- String propValue, boolean usePreRevPropChangeHook,
- boolean usePostRevPropChangeHook) throws SubversionException;
-
- /**
- * Verify the repository at <code>path</code> between revisions
- * <code>start</code> and <code>end</code>.
- *
- * @param path the path to the repository
- * @param start the first revision
- * @param end the last revision
- * @param callback the callback to recieve notifications
- * @throws ClientException If an error occurred.
- */
- public abstract void verify(File path, Revision start, Revision end,
+ */
+ public abstract void freeze(ReposFreezeAction action,
+ File... paths)
+ throws ClientException;
+
+ /**
+ * remove open transaction in a repository
+ * @param path the path to the repository
+ * @param transactions the transactions to be removed
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void rmtxns(File path, String[] transactions)
+ throws ClientException;
+
+ /**
+ * Change the value of the revision property <code>propName</code>
+ * to <code>propValue</code>. By default, does not run
+ * pre-/post-revprop-change hook scripts.
+ *
+ * @param path The path to the repository.
+ * @param rev The revision for which to change a property value.
+ * @param propName The name of the property to change.
+ * @param propValue The new value to set for the property.
+ * @param usePreRevPropChangeHook Whether to run the
+ * <i>pre-revprop-change</i> hook script.
+ * @param usePostRevPropChangeHook Whether to run the
+ * <i>post-revprop-change</i> hook script.
+ * @throws SubversionException If a problem occurs.
+ */
+ public abstract void setRevProp(File path, Revision rev, String propName,
+ String propValue, boolean usePreRevPropChangeHook,
+ boolean usePostRevPropChangeHook) throws SubversionException;
+
+ /**
+ * Verify the repository at <code>path</code> between revisions
+ * <code>start</code> and <code>end</code>.
+ *<p>
+ * If <code>verifyCallback</code> is <code>null</code>, verification
+ * will stop at the first encountered error. Otherwise, the verification
+ * process may continue, depending on the value returned from the
+ * invocation of <code>verifyCallback</code>.
+ *
+ * @param path the path to the repository
+ * @param start the first revision
+ * @param end the last revision
+ * @param checkNormalization report directory entry and mergeinfo name collisions
+ * caused by denormalized Unicode representations
+ * @param metadataOnly check only metadata, not file contents
+ * @param notifyCallback the callback to receive notifications
+ * @param verifyCallback the callback to receive verification status
+ * @throws ClientException If an error occurred.
+ * @since 1.9
+ */
+ public abstract void verify(File path, Revision start, Revision end,
+ boolean checkNormalization,
+ boolean metadataOnly,
+ ReposNotifyCallback notifyCallback,
+ ReposVerifyCallback verifyCallback)
+ throws ClientException;
+
+ /**
+ * Verify the repository at <code>path</code> between revisions
+ * <code>start</code> and <code>end</code>.
+ *<p>
+ *<b>Note:</b> Behaves like the 1.9 version with
+ * <code>checkNormailzation</code> and
+ * <code>metadataOnly</code> set to <code>false</code>
+ * and <code>verifyCallback</code> set to
+ * <code>null</code>.
+ *
+ * @param path the path to the repository
+ * @param start the first revision
+ * @param end the last revision
+ * @param callback the callback to receive notifications
+ * @throws ClientException If an error occurred.
+ */
+ public abstract void verify(File path, Revision start, Revision end,
ReposNotifyCallback callback)
throws ClientException;
- /**
- * list all locks in the repository
- * @param path the path to the repository
+ /**
+ * list all locks in the repository
+ * @param path the path to the repository
* @param depth the depth to recurse
- * @throws ClientException throw in case of problem
- */
- public abstract Set<Lock> lslocks(File path, Depth depth)
+ * @throws ClientException throw in case of problem
+ */
+ public abstract Set<Lock> lslocks(File path, Depth depth)
throws ClientException;
- /**
- * remove multiple locks from the repository
- * @param path the path to the repository
- * @param locks the name of the locked items
- * @throws ClientException throw in case of problem
- */
- public abstract void rmlocks(File path, String[] locks)
- throws ClientException;
+ /**
+ * remove multiple locks from the repository
+ * @param path the path to the repository
+ * @param locks the name of the locked items
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void rmlocks(File path, String[] locks)
+ throws ClientException;
/**
* upgrade the repository format
* @param path the path to the repository
* @param callback for notification
- * @throws ClientException throw in case of problem
+ * @throws ClientException throw in case of problem
*/
public abstract void upgrade(File path, ReposNotifyCallback callback)
- throws ClientException;
+ throws ClientException;
/**
* pack the repository
* @param path the path to the repository
* @param callback for notification
- * @throws ClientException throw in case of problem
+ * @throws ClientException throw in case of problem
*/
public abstract void pack(File path, ReposNotifyCallback callback)
- throws ClientException;
+ throws ClientException;
/**
* cancel the active operation