You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2015/06/14 22:58:16 UTC
svn commit: r1685464 [5/43] - in /subversion/branches/fsx-1.10: ./ build/
build/ac-macros/ build/generator/ build/generator/templates/
contrib/client-side/svncopy/ doc/ notes/ subversion/bindings/javahl/
subversion/bindings/javahl/native/ subversion/bi...
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java Sun Jun 14 20:58:10 2015
@@ -34,138 +34,138 @@ import org.apache.subversion.javahl.type
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
+ /**
+ * 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,
+ * @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;
+ 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
+ /**
+ * 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
+ * @throws ClientException throw in case of problem
* @since 1.9
- */
- public abstract void hotcopy(File path, File targetPath,
+ */
+ 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)
+ 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;
+ 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
+ /**
+ * 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 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
+ * @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,
+ */
+ public abstract void load(File path, InputStream dataInput,
Revision start, Revision end,
boolean ignoreUUID, boolean forceUUID,
boolean usePreCommitHook,
@@ -176,27 +176,27 @@ public interface ISVNRepos {
ReposNotifyCallback callback)
throws ClientException;
- /**
- * Load the data of a dump into a repository. Sets
+ /**
+ * 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 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 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,
@@ -205,163 +205,163 @@ 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;
-
- /**
- * 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
+ * @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
* @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
+ */
+ 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 keepGoing continue verification even if a revision is bad
* @param checkNormalization report directory entry and mergeinfo name collisions
* caused by denormalized Unicode representations
* @param metadataOnly check only metadata, not file contents
* @param callback the callback to receive notifications
- * @throws ClientException If an error occurred.
+ * @throws ClientException If an error occurred.
* @since 1.9
- */
- public abstract void verify(File path, Revision start, Revision end,
+ */
+ public abstract void verify(File path, Revision start, Revision end,
boolean keepGoing, boolean checkNormalization,
boolean metadataOnly,
ReposNotifyCallback callback)
throws ClientException;
- /**
- * 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
+ /**
+ * 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 receive notifications
- * @throws ClientException If an error occurred.
- */
- public abstract void verify(File path, Revision start, Revision end,
+ * @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
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java Sun Jun 14 20:58:10 2015
@@ -142,10 +142,10 @@ public class NativeResources
private static final void init()
{
version = new Version();
- if (!version.isAtLeast(1, 9, 0))
+ if (!version.isAtLeast(1, 10, 0))
{
throw new LinkageError("Native library version must be at least " +
- "1.9.0, but is only " + version);
+ "1.10.0, but is only " + version);
}
runtimeVersion = new RuntimeVersion();
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Sun Jun 14 20:58:10 2015
@@ -240,11 +240,24 @@ public class SVNClient implements ISVNCl
public native void copy(List<CopySource> sources, String destPath,
boolean copyAsChild, boolean makeParents,
- boolean ignoreExternals,
+ boolean ignoreExternals, boolean metadataOnly,
+ boolean pinExternals,
+ Map<String, List<ExternalItem>> externalsToPin,
Map<String, String> revpropTable,
CommitMessageCallback handler, CommitCallback callback)
throws ClientException;
+ public void copy(List<CopySource> sources, String destPath,
+ boolean copyAsChild, boolean makeParents,
+ boolean ignoreExternals,
+ Map<String, String> revpropTable,
+ CommitMessageCallback handler, CommitCallback callback)
+ throws ClientException
+ {
+ copy(sources, destPath, copyAsChild, makeParents, ignoreExternals,
+ false, false, null, revpropTable, handler, callback);
+ }
+
public native void move(Set<String> srcPaths, String destPath,
boolean force, boolean moveAsChild,
boolean makeParents, boolean metadataOnly,
@@ -281,7 +294,7 @@ public class SVNClient implements ISVNCl
public void cleanup(String path) throws ClientException
{
- cleanup(path, false, true, true, true, false);
+ cleanup(path, true, true, true, true, false);
}
public native void resolve(String path, Depth depth,
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java Sun Jun 14 20:58:10 2015
@@ -33,6 +33,7 @@ import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.SimpleTimeZone;
import java.io.InputStream;
+import java.io.IOException;
import java.nio.charset.Charset;
/**
@@ -78,6 +79,14 @@ class StatusEditor implements ISVNEditor
long replacesRevision)
{
//DEBUG:System.err.println(" [J] StatusEditor.addFile");
+ if (contents != null) {
+ try {
+ contents.close();
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
checkState();
receiver.addedFile(relativePath);
}
@@ -120,6 +129,14 @@ class StatusEditor implements ISVNEditor
Map<String, byte[]> properties)
{
//DEBUG:System.err.println(" [J] StatusEditor.alterFile");
+ if (contents != null) {
+ try {
+ contents.close();
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
checkState();
receiver.modifiedFile(relativePath,
(checksum != null && contents != null),
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java Sun Jun 14 20:58:10 2015
@@ -41,6 +41,21 @@ public class VersionExtended
}
/**
+ * Release the native peer. This method must be called to release
+ * the native resources held by this object.
+ * <p>
+ * Once this method is called, all object references obtained from
+ * the iterators returned by {@link #getLinkedLibs()} and
+ * {@link #getLoadedLibs()} become invalid and should no longer be used.
+ */
+ public native void dispose();
+
+ /**
+ * release the native peer (should use dispose instead)
+ */
+ public native void finalize();
+
+ /**
* @return The date when the libsvn_subr library was compiled, in
* the format defined by the C standard macro #__DATE__.
*/
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java Sun Jun 14 20:58:10 2015
@@ -2418,18 +2418,18 @@ public class SVNClient implements SVNCli
{
try
{
- final List<org.apache.subversion.javahl.types.Info> infos =
- new ArrayList<org.apache.subversion.javahl.types.Info>();
- aSVNClient.info2(path,
- org.apache.subversion.javahl.types.Revision.HEAD,
- org.apache.subversion.javahl.types.Revision.HEAD,
- org.apache.subversion.javahl.types.Depth.empty,
- null, new org.apache.subversion.javahl.callback.InfoCallback()
- {
- public void singleInfo(org.apache.subversion.javahl.types.Info info) {
- infos.add(info);
- }
- });
+ final List<org.apache.subversion.javahl.types.Info> infos =
+ new ArrayList<org.apache.subversion.javahl.types.Info>();
+ aSVNClient.info2(path,
+ org.apache.subversion.javahl.types.Revision.HEAD,
+ org.apache.subversion.javahl.types.Revision.HEAD,
+ org.apache.subversion.javahl.types.Depth.empty,
+ null, new org.apache.subversion.javahl.callback.InfoCallback()
+ {
+ public void singleInfo(org.apache.subversion.javahl.types.Info info) {
+ infos.add(info);
+ }
+ });
return new Info(infos.get(0));
}
catch (org.apache.subversion.javahl.ClientException ex)
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Sun Jun 14 20:58:10 2015
@@ -139,9 +139,10 @@ public class BasicTests extends SVNTests
*/
public void testVersionExtendedQuiet() throws Throwable
{
+ VersionExtended vx = null;
try
{
- VersionExtended vx = client.getVersionExtended(false);
+ vx = client.getVersionExtended(false);
String result = vx.getBuildDate();
if (result == null || result.trim().length() == 0)
throw new Exception("Build date empty");
@@ -160,6 +161,11 @@ public class BasicTests extends SVNTests
fail("VersionExtended should always be available unless the " +
"native libraries failed to initialize: " + e);
}
+ finally
+ {
+ if (vx != null)
+ vx.dispose();
+ }
}
/**
@@ -168,9 +174,10 @@ public class BasicTests extends SVNTests
*/
public void testVersionExtendedVerbose() throws Throwable
{
+ VersionExtended vx = null;
try
{
- VersionExtended vx = client.getVersionExtended(true);
+ vx = client.getVersionExtended(true);
String result = vx.getRuntimeHost();
if (result == null || result.trim().length() == 0)
throw new Exception("Runtime host empty");
@@ -216,6 +223,11 @@ public class BasicTests extends SVNTests
fail("VersionExtended should always be available unless the " +
"native libraries failed to initialize: " + e);
}
+ finally
+ {
+ if (vx != null)
+ vx.dispose();
+ }
}
/**
@@ -269,7 +281,7 @@ public class BasicTests extends SVNTests
}
catch(JNIError e)
{
- return; // Test passes!
+ return; // Test passes!
}
fail("A JNIError should have been thrown here.");
}
@@ -1060,7 +1072,7 @@ public class BasicTests extends SVNTests
}
client.copy(sources,
new File(thisTest.getWorkingCopy(), "A/B/F").getPath(),
- true, false, false, null, null, null);
+ true, false, false, false, false, null, null, null, null);
// Commit the changes, and check the state of the WC.
checkCommitRevision(thisTest,
@@ -1077,7 +1089,7 @@ public class BasicTests extends SVNTests
"A/B").getPath(), Revision.WORKING,
Revision.WORKING));
client.copy(wcSource, thisTest.getUrl() + "/parent/A/B",
- true, true, false, null,
+ true, true, false, false, false, null, null,
new ConstMsg("Copy WC to URL"), null);
// update the WC to get new folder and confirm the copy
@@ -1085,6 +1097,221 @@ public class BasicTests extends SVNTests
update(thisTest), 3);
}
+
+ // Set up externals references in the working copy for the
+ // pin-externals tests.
+ private void setupPinExternalsTest(OneTest thisTest) throws Throwable
+ {
+ byte[] extref = ("^/A/D/H ADHext\n" +
+ "^/A/D/H ADHext2\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H revvedADHext\n").getBytes();
+ Set<String> paths = new HashSet<String>();
+ paths.add(thisTest.getWCPath() + "/A/B");
+
+ // Add an externals reference to the working copy.
+ client.propertySetLocal(paths, "svn:externals", extref,
+ Depth.empty, null, false);
+
+ // Commit the externals definition
+ client.commit(thisTest.getWCPathSet(), Depth.infinity,
+ false, false, null, null,
+ new ConstMsg("Set svn:externals"), null);
+
+ // Update the working copy to bring in the external subtree.
+ client.update(thisTest.getWCPathSet(), Revision.HEAD,
+ Depth.unknown, false, false, false, false);
+ }
+
+ /**
+ * Test WC-to-WC copy with implicit pinned externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_wc2wc() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(thisTest.getWCPath() + "/A/B", null, null));
+ String target = thisTest.getWCPath() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false, false,
+ true, // pinExternals
+ null, // externalsToPin
+ null, null, null);
+
+ // Verification
+ String expected = ("^/A/D/H@2 ADHext\n" +
+ "^/A/D/H@2 ADHext2\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H@2 revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null, null));
+
+ assertEquals(expected, actual);
+ }
+
+ /**
+ * Test WC-to-REPO copy with implicit pinned externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_wc2repo() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(thisTest.getWCPath() + "/A/B", null, null));
+ String target = thisTest.getUrl() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false, false,
+ true, // pinExternals
+ null, // externalsToPin
+ null, new ConstMsg("Copy WC to REPO"), null);
+
+ // Verification
+ String expected = ("^/A/D/H@2 ADHext\n" +
+ "^/A/D/H@2 ADHext2\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H@2 revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null, null));
+
+ assertEquals(expected, actual);
+ }
+
+ /**
+ * Test REPO-to-WC copy with implicit pinned externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_repo2wc() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(thisTest.getUrl() + "/A/B", null, null));
+ String target = thisTest.getWCPath() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false, false,
+ true, // pinExternals
+ null, // externalsToPin
+ null, null, null);
+
+ // Verification
+ String expected = ("^/A/D/H@2 ADHext\n" +
+ "^/A/D/H@2 ADHext2\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H@2 revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null, null));
+
+ assertEquals(expected, actual);
+ }
+
+ /**
+ * Test REPO-to-REPO copy with implicit pinned externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_repo2repo() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(thisTest.getUrl() + "/A/B", null, null));
+ String target = thisTest.getUrl() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false, false,
+ true, // pinExternals
+ null, // externalsToPin
+ null, new ConstMsg("Copy WC to REPO"), null);
+
+ // Verification
+ String expected = ("^/A/D/H@2 ADHext\n" +
+ "^/A/D/H@2 ADHext2\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H@2 revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null, null));
+
+ assertEquals(expected, actual);
+ }
+
+ /**
+ * Test REPO-to-REPO copy with eplicit pinned externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_repo2repo_explicit() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ String sourceUrl = thisTest.getUrl() + "/A/B";
+ Map<String, List<ExternalItem>> externalsToPin =
+ new HashMap<String, List<ExternalItem>>();
+ List<ExternalItem> items = new ArrayList<ExternalItem>(1);
+ items.add(new ExternalItem("ADHext", "^/A/D/H", null, null));
+ externalsToPin.put(sourceUrl, items);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(sourceUrl, null, null));
+ String target = thisTest.getUrl() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false, false,
+ true, // pinExternals
+ externalsToPin,
+ null, new ConstMsg("Copy WC to REPO"), null);
+
+ // Verification
+ String expected = ("^/A/D/H@2 ADHext\n" +
+ "^/A/D/H ADHext2\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null, null));
+
+ assertEquals(expected, actual);
+ }
+
+ /**
+ * Test REPO-to-REPO copy with explicit pinned externals that
+ * don't correspond to actual externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_repo2repo_corkscrew() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ String sourceUrl = thisTest.getUrl() + "/A/B";
+ Map<String, List<ExternalItem>> externalsToPin =
+ new HashMap<String, List<ExternalItem>>();
+ List<ExternalItem> items = new ArrayList<ExternalItem>(1);
+ items.add(new ExternalItem("ADHext", "^/A/D/H", null, null));
+ externalsToPin.put(sourceUrl + "/A", items);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(sourceUrl, null, null));
+ String target = thisTest.getUrl() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false, false,
+ true, // pinExternals
+ externalsToPin,
+ null, new ConstMsg("Copy WC to REPO"), null);
+
+ // Verification
+ String expected = ("^/A/D/H ADHext\n" +
+ "^/A/D/H ADHext2\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null, null));
+
+ assertEquals(expected, actual);
+ }
+
/**
* Test the {@link SVNClientInterface.move()} API.
* @since 1.5
@@ -3003,7 +3230,7 @@ public class BasicTests extends SVNTests
srcs.add(new CopySource(thisTest.getUrl() + "/A", Revision.HEAD,
Revision.HEAD));
client.copy(srcs, thisTest.getUrl() + "/branches/A",
- true, false, false, null,
+ true, false, false, false, false, null, null,
new ConstMsg("create A branch"), null);
// update the WC (to r3) so that it has the branches folder
@@ -3046,7 +3273,7 @@ public class BasicTests extends SVNTests
// Do nothing, right now.
return false;
}
- });
+ });
}
/**
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java Sun Jun 14 20:58:10 2015
@@ -95,6 +95,7 @@ public class RunTests
suite.addTestSuite(UtilTests.class);
suite.addTestSuite(SVNRemoteTests.class);
suite.addTestSuite(SVNReposTests.class);
+ suite.addTestSuite(ExceptionTests.class);
}
else
{
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java Sun Jun 14 20:58:10 2015
@@ -53,15 +53,35 @@ import java.security.NoSuchAlgorithmExce
*/
public class SVNRemoteTests extends SVNTests
{
+ /**
+ * Base name of all our tests.
+ */
+ public final static String testName = "remote_test";
+
protected OneTest thisTest;
public SVNRemoteTests()
{
+ init();
}
public SVNRemoteTests(String name)
{
super(name);
+ init();
+ }
+
+ /**
+ * Initialize the testBaseName and the testCounter, if this is the
+ * first test of this class.
+ */
+ private void init()
+ {
+ if (!testName.equals(testBaseName))
+ {
+ testCounter = 0;
+ testBaseName = testName;
+ }
}
protected void setUp() throws Exception
@@ -937,6 +957,7 @@ public class SVNRemoteTests extends SVNT
0, false, false, false, null,
receiver);
assertEquals(1, receiver.logs.size());
+ assertTrue(receiver.logs.get(0).revprops.size() > 0);
receiver.logs.clear();
session.reparent(getTestRepoUrl() + "/A");
@@ -945,6 +966,7 @@ public class SVNRemoteTests extends SVNT
0, 0, false, false, false, null,
receiver);
assertEquals(2, receiver.logs.size());
+ assertTrue(receiver.logs.get(0).revprops.size() > 0);
}
public void testGetLogMissing() throws Exception
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java Sun Jun 14 20:58:10 2015
@@ -40,13 +40,33 @@ import java.util.Map;
*/
public class SVNReposTests extends SVNTests
{
+ /**
+ * Base name of all our tests.
+ */
+ public final static String testName = "repos_test";
+
public SVNReposTests()
{
+ init();
}
public SVNReposTests(String name)
{
super(name);
+ init();
+ }
+
+ /**
+ * Initialize the testBaseName and the testCounter, if this is the
+ * first test of this class.
+ */
+ private void init()
+ {
+ if (!testName.equals(testBaseName))
+ {
+ testCounter = 0;
+ testBaseName = testName;
+ }
}
/**
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java Sun Jun 14 20:58:10 2015
@@ -80,6 +80,17 @@ class SVNTests extends TestCase
protected static int testCounter;
/**
+ * Set to true if tests should clean up after themselves.
+ */
+ protected boolean cleanupAfterTests = false;
+
+ /**
+ * this list contains the names of all repository and working copy
+ * directories created by one test case.
+ */
+ protected static List<File> testDirs;
+
+ /**
* the file in which the sample repository has been dumped.
*/
protected File greekDump;
@@ -173,6 +184,10 @@ class SVNTests extends TestCase
private void init()
{
+ String cleanupProp = System.getProperty("test.cleanup");
+ if (cleanupProp != null)
+ cleanupAfterTests = (0 < cleanupProp.trim().length());
+
String disableCredStore = System.getProperty("test.disablecredstore");
if (disableCredStore != null)
{
@@ -510,6 +525,16 @@ class SVNTests extends TestCase
client.dispose();
// remove the temporary directory
removeDirOrFile(localTmp);
+
+ // optionally remove the test directories
+ List<File> td = testDirs;
+ testDirs = null;
+ if (cleanupAfterTests && td != null)
+ {
+ for(File f: td)
+ removeDirOrFile(f);
+ }
+
super.tearDown();
}
@@ -788,6 +813,13 @@ class SVNTests extends TestCase
return wc;
}
+ private void trackDir(File dir)
+ {
+ if (testDirs == null)
+ testDirs = new ArrayList<File>();
+ testDirs.add(dir);
+ }
+
/**
* Create the repository for the beginning of the test.
* Assumes that {@link #testName} has been set.
@@ -804,6 +836,7 @@ class SVNTests extends TestCase
// build a clean repository directory
File repos = new File(repositories, this.testName);
removeDirOrFile(repos);
+ trackDir(repos);
// create and load the repository from the default repository dump
admin.create(repos, true, false, conf, fsType);
if (loadGreek)
@@ -829,6 +862,7 @@ class SVNTests extends TestCase
URI uri = makeReposUrl(repos);
workingCopy = new File(workingCopies, this.testName);
removeDirOrFile(workingCopy);
+ trackDir(workingCopy);
// checkout the repository
client.checkout(uri.toString(), workingCopy.getAbsolutePath(),
null, null, Depth.infinity, false, false);
Modified: subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNAdminTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNAdminTests.java?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNAdminTests.java (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNAdminTests.java Sun Jun 14 20:58:10 2015
@@ -35,13 +35,33 @@ import org.tigris.subversion.javahl.Subv
*/
public class SVNAdminTests extends SVNTests
{
+ /**
+ * Base name of all our tests.
+ */
+ public final static String testName = "admin_test";
+
public SVNAdminTests()
{
+ init();
}
public SVNAdminTests(String name)
{
super(name);
+ init();
+ }
+
+ /**
+ * Initialize the testBaseName and the testCounter, if this is the
+ * first test of this class.
+ */
+ private void init()
+ {
+ if (!testName.equals(testBaseName))
+ {
+ testCounter = 0;
+ testBaseName = testName;
+ }
}
/**
Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/INSTALL?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/INSTALL (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/INSTALL Sun Jun 14 20:58:10 2015
@@ -65,7 +65,7 @@ BUILDING SWIG BINDINGS FOR SVN ON UNIX
Step 1: Install a suitable version of SWIG (which is
- currently SWIG version 1.3.24 or later).
+ currently SWIG version 1.3.24 or later, but not SWIG 3.0.0 or newer).
* Perhaps your distribution packages a suitable version - if it does
install it, and skip to the last bullet point in this section.
Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/core.i
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/core.i?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/core.i (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/core.i Sun Jun 14 20:58:10 2015
@@ -532,8 +532,10 @@
$1 = NULL;
}
else if (SvPOK($input)) {
- if (_global_pool == NULL)
+ if (_global_pool == NULL) {
_global_pool = svn_swig_pl_make_pool((SV *)NULL);
+ SPAGAIN;
+ }
$1 = apr_pstrdup(_global_pool, SvPV_nolen($input));
}
else {
Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/include/apr.swg
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/include/apr.swg?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/include/apr.swg (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/include/apr.swg Sun Jun 14 20:58:10 2015
@@ -31,23 +31,21 @@
*/
#ifdef SWIGPERL
%typemap(out) long long {
- char temp[256];
+ char temp[30];
sprintf(temp, "%" APR_INT64_T_FMT, (apr_int64_t) $1);
- ST(argvi) = sv_newmortal();
- sv_setpv((SV*)ST(argvi++), temp);
+ %append_output(sv_2mortal(newSVpv(temp, 0)));
}
%typemap(out) unsigned long long {
- char temp[256];
+ char temp[30];
sprintf(temp, "%" APR_UINT64_T_FMT, (apr_uint64_t) $1);
- ST(argvi) = sv_newmortal();
- sv_setpv((SV*)ST(argvi++), temp);
+ %append_output(sv_2mortal(newSVpv(temp, 0)));
}
%typemap(in, numinputs=0) long long *OUTPUT (apr_int64_t temp)
"$1 = &temp;";
%typemap(argout) long long *OUTPUT {
- char temp[256];
+ char temp[30];
sprintf(temp, "%" APR_INT64_T_FMT, (apr_int64_t)*($1));
%append_output(sv_2mortal(newSVpv(temp, 0)));
}
@@ -55,7 +53,7 @@
%typemap(in, numinputs=0) unsigned long long *OUTPUT (apr_uint64_t temp)
"$1 = &temp;";
%typemap(argout) unsigned long long *OUTPUT {
- char temp[256];
+ char temp[30];
sprintf(temp, "%" APR_UINT64_T_FMT, (apr_uint64_t)*($1));
%append_output(sv_2mortal(newSVpv(temp, 0)));
}
Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_containers.swg
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_containers.swg?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_containers.swg (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_containers.swg Sun Jun 14 20:58:10 2015
@@ -269,8 +269,10 @@
%typemap(in) apr_hash_t *PROPHASH
(apr_pool_t *_global_pool = NULL)
{
- if (_global_pool == NULL)
+ if (_global_pool == NULL) {
_global_pool = svn_swig_pl_make_pool((SV *)NULL);
+ SPAGAIN;
+ }
$1 = svn_swig_pl_hash_to_prophash($input, _global_pool);
}
%typemap(out) apr_hash_t *PROPHASH
@@ -426,6 +428,25 @@
{
$1 = svn_swig_py_path_revs_hash_from_dict($input, _global_pool);
}
+%typemap(in) apr_hash_t *unlock_targets
+{
+ $1 = svn_swig_py_stringhash_from_dict($input, _global_pool);
+}
+%typemap(in) apr_hash_t *lock_targets
+ (apr_pool_t *_global_pool, PyObject *_global_pool = NULL)
+{
+ if (_global_pool == NULL)
+ {
+ if (svn_swig_py_get_parent_pool(args, $descriptor(apr_pool_t *),
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ }
+ $1 = svn_swig_py_struct_ptr_hash_from_dict($input,
+ $descriptor(svn_fs_lock_target_t *), _global_pool);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+}
#endif
#ifdef SWIGPERL
Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_string.swg
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_string.swg?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_string.swg (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_string.swg Sun Jun 14 20:58:10 2015
@@ -90,6 +90,7 @@ typedef struct svn_string_t svn_string_t
%typemap(in) svn_stringbuf_t * {
apr_size_t len;
char *buf;
+ apr_pool_t *pool;
if (!SvOK($input)) {
$1 = NULL;
@@ -97,8 +98,9 @@ typedef struct svn_string_t svn_string_t
buf = SvPV($input, len);
/* Another case of ugly pool handling, this should use the current
default pool, or make a new one if it doesn't exist yet */
- $1 = svn_stringbuf_ncreate(buf,len,
- svn_swig_pl_make_pool ((SV *)NULL));
+ pool = svn_swig_pl_make_pool ((SV *)NULL);
+ SPAGAIN;
+ $1 = svn_stringbuf_ncreate(buf,len, pool);
} else {
croak("Not a string");
}
Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_types.swg?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/include/svn_types.swg Sun Jun 14 20:58:10 2015
@@ -423,9 +423,11 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
if (SvOK(exception_handler)) {
SV *callback_result;
+ PUTBACK;
svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
&callback_result, "S", $1,
$1_descriptor);
+ SPAGAIN;
} else {
$result = SWIG_NewPointerObj($1, $1_descriptor, 0);
argvi++;
@@ -548,6 +550,7 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
%typemap(in) apr_pool_t *pool "";
%typemap(default) apr_pool_t *pool(apr_pool_t *_global_pool) {
_global_pool = $1 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
}
#endif
#ifdef SWIGRUBY
@@ -935,15 +938,24 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
#ifdef SWIGPERL
%typemap(in) svn_stream_t * {
svn_swig_pl_make_stream (&$1, $input);
+ SPAGAIN;
}
%typemap(out) svn_stream_t * {
- $result = svn_swig_pl_from_stream ($1);
+ SV* tmp;
+ PUTBACK;
+ tmp = svn_swig_pl_from_stream ($1);
+ SPAGAIN;
+ $result = tmp;
argvi++;
}
%typemap(argout) svn_stream_t ** {
- %append_output(svn_swig_pl_from_stream(*$1));
+ SV *tmp;
+ PUTBACK;
+ tmp = svn_swig_pl_from_stream(*$1);
+ SPAGAIN;
+ %append_output(tmp);
}
#endif
@@ -1116,11 +1128,11 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
}
%typemap(argout) unsigned char *result_digest {
- /* FIXME: This code is clearly buggy. The return value of sv_newmortal()
- is immediately overwritten by the return value
- of svn_swig_pl_from_md5(). */
- ST(argvi) = sv_newmortal();
- ST(argvi++) = svn_swig_pl_from_md5($1);
+ SV *tmp;
+ PUTBACK;
+ tmp = svn_swig_pl_from_md5($1);
+ SPAGAIN;
+ %append_output(tmp);
}
#endif
@@ -1174,8 +1186,10 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
%typemap(in) svn_opt_revision_t *
(svn_opt_revision_t rev, apr_pool_t *_global_pool = NULL)
{
- if (_global_pool == NULL)
+ if (_global_pool == NULL) {
_global_pool = svn_swig_pl_make_pool((SV *)NULL);
+ SPAGAIN;
+ }
$1 = svn_swig_pl_set_revision(&rev, $input, TRUE, _global_pool);
}
#endif
Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Sun Jun 14 20:58:10 2015
@@ -130,11 +130,11 @@ static void *convert_pl_revision_range(S
/* this will assign to range */
SWIG_ConvertPtr(value, (void **)&range, _SWIG_TYPE("svn_opt_revision_range_t *"), 0);
return range;
- }
+ }
- if (SvROK(value)
+ if (SvROK(value)
&& SvTYPE(SvRV(value)) == SVt_PVAV
- && av_len((AV *)SvRV(value)) == 1) {
+ && av_len((AV *)SvRV(value)) == 1) {
/* value is a two-element ARRAY */
AV* array = (AV *)SvRV(value);
svn_opt_revision_t temp_start, temp_end;
@@ -143,17 +143,17 @@ static void *convert_pl_revision_range(S
/* Note: Due to how svn_swig_pl_set_revision works,
* either the passed in svn_opt_revision_t is modified
- * (and the original pointer returned) or a different pointer
+ * (and the original pointer returned) or a different pointer
* is returned. svn_swig_pl_set_revision may return NULL
* only if croak_on_error is FALSE.
*/
- start = svn_swig_pl_set_revision(&temp_start,
- *av_fetch(array, 0, 0),
+ start = svn_swig_pl_set_revision(&temp_start,
+ *av_fetch(array, 0, 0),
croak_on_error, pool);
if (start == NULL)
return NULL;
- end = svn_swig_pl_set_revision(&temp_end,
- *av_fetch(array, 1, 0),
+ end = svn_swig_pl_set_revision(&temp_end,
+ *av_fetch(array, 1, 0),
croak_on_error, pool);
if (end == NULL)
return NULL;
@@ -163,7 +163,7 @@ static void *convert_pl_revision_range(S
range->start = *start;
range->end = *end;
return range;
- }
+ }
if (croak_on_error)
croak("unknown revision range: "
@@ -283,7 +283,7 @@ apr_array_header_t *svn_swig_pl_objs_to_
}
/* Convert a single revision range or an array of revisions ranges
- * Note: We can't simply use svn_swig_pl_to_array() as is, since
+ * Note: We can't simply use svn_swig_pl_to_array() as is, since
* it immediatley checks whether source is an array reference and then
* proceeds to treat this as the "array of ..." case. But a revision range
* may be specified as a (two-element) array. Hence we first try to
@@ -297,7 +297,7 @@ apr_array_header_t *svn_swig_pl_array_to
svn_opt_revision_range_t *range;
if ((range = convert_pl_revision_range(source, &croak_on_error, pool))) {
- apr_array_header_t *temp = apr_array_make(pool, 1,
+ apr_array_header_t *temp = apr_array_make(pool, 1,
sizeof(svn_opt_revision_range_t *));
temp->nelts = 1;
APR_ARRAY_IDX(temp, 0, svn_opt_revision_range_t *) = range;
@@ -306,7 +306,7 @@ apr_array_header_t *svn_swig_pl_array_to
if (SvROK(source) && SvTYPE(SvRV(source)) == SVt_PVAV) {
croak_on_error = TRUE;
- return svn_swig_pl_to_array(source, convert_pl_revision_range,
+ return svn_swig_pl_to_array(source, convert_pl_revision_range,
&croak_on_error, pool);
}
@@ -314,7 +314,7 @@ apr_array_header_t *svn_swig_pl_array_to
/* This return is actually unreachable because of the croak above,
* however, Visual Studio's compiler doesn't like if all paths don't have
- * a return and errors out otherwise. */
+ * a return and errors out otherwise. */
return NULL;
}
@@ -430,8 +430,8 @@ SV *svn_swig_pl_revnums_to_list(const ap
}
/* perl -> c svn_opt_revision_t conversion */
-svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev,
- SV *source,
+svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev,
+ SV *source,
svn_boolean_t croak_on_error,
apr_pool_t *pool)
{
@@ -471,7 +471,7 @@ svn_opt_revision_t *svn_swig_pl_set_revi
maybe_croak(("unknown opt_revision_t string \"%s\": "
"missing closing brace for \"{DATE}\"", input));
*end = '\0';
- err = svn_parse_date (&matched, &tm,
+ err = svn_parse_date (&matched, &tm,
input + 1, apr_time_now(), pool);
if (err) {
svn_error_clear (err);
@@ -520,6 +520,7 @@ svn_opt_revision_t *svn_swig_pl_set_revi
put returned value in result if result is not NULL
*/
+/* NOTE: calls back into Perl (directly) */
svn_error_t *svn_swig_pl_callback_thunk(perl_func_invoker_t caller_func,
void *func,
SV **result,
@@ -670,6 +671,7 @@ static item_baton * make_baton(apr_pool_
return newb;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * close_baton(void *baton, const char *method, apr_pool_t *pool)
{
item_baton *ib = baton;
@@ -690,6 +692,7 @@ static svn_error_t * close_baton(void *b
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_set_target_revision(void *edit_baton,
svn_revnum_t target_revision,
apr_pool_t *pool)
@@ -703,6 +706,7 @@ static svn_error_t * thunk_set_target_re
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_open_root(void *edit_baton,
svn_revnum_t base_revision,
apr_pool_t *dir_pool,
@@ -720,6 +724,7 @@ static svn_error_t * thunk_open_root(voi
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_delete_entry(const char *path,
svn_revnum_t revision,
void *parent_baton,
@@ -734,6 +739,7 @@ static svn_error_t * thunk_delete_entry(
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_add_directory(const char *path,
void *parent_baton,
const char *copyfrom_path,
@@ -753,6 +759,7 @@ static svn_error_t * thunk_add_directory
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_open_directory(const char *path,
void *parent_baton,
svn_revnum_t base_revision,
@@ -772,6 +779,7 @@ static svn_error_t * thunk_open_director
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_change_dir_prop(void *dir_baton,
const char *name,
const svn_string_t *value,
@@ -787,12 +795,14 @@ static svn_error_t * thunk_change_dir_pr
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling close_baton) */
static svn_error_t * thunk_close_directory(void *dir_baton,
apr_pool_t *pool)
{
return close_baton(dir_baton, "close_directory", pool);
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_absent_directory(const char *path,
void *parent_baton,
apr_pool_t *pool)
@@ -807,6 +817,7 @@ static svn_error_t * thunk_absent_direct
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_add_file(const char *path,
void *parent_baton,
const char *copyfrom_path,
@@ -827,6 +838,7 @@ static svn_error_t * thunk_add_file(cons
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_open_file(const char *path,
void *parent_baton,
svn_revnum_t base_revision,
@@ -845,6 +857,7 @@ static svn_error_t * thunk_open_file(con
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_window_handler(svn_txdelta_window_t *window,
void *baton)
{
@@ -865,6 +878,7 @@ static svn_error_t * thunk_window_handle
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t *
thunk_apply_textdelta(void *file_baton,
const char *base_checksum,
@@ -909,6 +923,7 @@ thunk_apply_textdelta(void *file_baton,
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_change_file_prop(void *file_baton,
const char *name,
const svn_string_t *value,
@@ -924,6 +939,7 @@ static svn_error_t * thunk_change_file_p
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_close_file(void *file_baton,
const char *text_checksum,
apr_pool_t *pool)
@@ -940,6 +956,7 @@ static svn_error_t * thunk_close_file(vo
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_absent_file(const char *path,
void *parent_baton,
apr_pool_t *pool)
@@ -954,12 +971,14 @@ static svn_error_t * thunk_absent_file(c
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling close_baton) */
static svn_error_t * thunk_close_edit(void *edit_baton,
apr_pool_t *pool)
{
return close_baton(edit_baton, "close_edit", pool);
}
+/* NOTE: calls back into Perl (by calling close_baton) */
static svn_error_t * thunk_abort_edit(void *edit_baton,
apr_pool_t *pool)
{
@@ -967,18 +986,6 @@ static svn_error_t * thunk_abort_edit(vo
}
-void
-svn_swig_pl_wrap_window_handler(svn_txdelta_window_handler_t *handler,
- void **h_baton,
- SV *callback,
- apr_pool_t *pool)
-{
- *handler = thunk_window_handler;
- *h_baton = callback;
- SvREFCNT_inc(callback);
- svn_swig_pl_hold_ref_in_pool(pool, callback);
-}
-
void svn_swig_pl_make_editor(svn_delta_editor_t **editor,
void **edit_baton,
SV *perl_editor,
@@ -1008,6 +1015,7 @@ void svn_swig_pl_make_editor(svn_delta_e
svn_swig_pl_hold_ref_in_pool(pool, perl_editor);
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_log_receiver(void *baton,
apr_hash_t *changed_paths,
svn_revnum_t rev,
@@ -1032,6 +1040,7 @@ svn_error_t *svn_swig_pl_thunk_log_recei
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_log_entry_receiver(void *baton,
svn_log_entry_t *log_entry,
apr_pool_t *pool)
@@ -1043,13 +1052,14 @@ svn_error_t *svn_swig_pl_thunk_log_entry
svn_swig_pl_callback_thunk(CALL_SV,
receiver, NULL,
- "SS",
+ "SS",
log_entry, _SWIG_TYPE("svn_log_entry_t *"),
pool, POOLINFO);
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t * svn_swig_pl_thunk_client_diff_summarize_func(
const svn_client_diff_summarize_t *diff,
void *baton,
@@ -1069,6 +1079,7 @@ svn_error_t * svn_swig_pl_thunk_client_d
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_history_func(void *baton,
const char *path,
svn_revnum_t revision,
@@ -1086,6 +1097,7 @@ svn_error_t *svn_swig_pl_thunk_history_f
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_authz_func(svn_boolean_t *allowed,
svn_fs_root_t *root,
const char *path,
@@ -1108,6 +1120,7 @@ svn_error_t *svn_swig_pl_thunk_authz_fun
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_commit_callback(svn_revnum_t new_revision,
const char *date,
const char *author,
@@ -1122,6 +1135,7 @@ svn_error_t *svn_swig_pl_thunk_commit_ca
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_commit_callback2(const svn_commit_info_t *commit_info,
void *baton,
apr_pool_t *pool)
@@ -1140,6 +1154,7 @@ svn_error_t *svn_swig_pl_thunk_commit_ca
/* Wrap RA */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_open_tmp_file(apr_file_t **fp,
void *callback_baton,
apr_pool_t *pool)
@@ -1158,11 +1173,12 @@ static svn_error_t * thunk_open_tmp_file
return SVN_NO_ERROR;
}
-svn_error_t *thunk_get_wc_prop(void *baton,
- const char *relpath,
- const char *name,
- const svn_string_t **value,
- apr_pool_t *pool)
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
+static svn_error_t *thunk_get_wc_prop(void *baton,
+ const char *relpath,
+ const char *name,
+ const svn_string_t **value,
+ apr_pool_t *pool)
{
SV *result;
char *data;
@@ -1215,6 +1231,7 @@ svn_error_t *svn_swig_pl_make_callbacks(
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_gnome_keyring_unlock_prompt(char **keyring_password,
const char *keyring_name,
void *baton,
@@ -1243,6 +1260,7 @@ svn_error_t *svn_swig_pl_thunk_gnome_key
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_simple_prompt(svn_auth_cred_simple_t **cred,
void *baton,
const char *realm,
@@ -1264,6 +1282,7 @@ svn_error_t *svn_swig_pl_thunk_simple_pr
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_username_prompt(svn_auth_cred_username_t **cred,
void *baton,
const char *realm,
@@ -1284,6 +1303,7 @@ svn_error_t *svn_swig_pl_thunk_username_
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_ssl_server_trust_prompt(
svn_auth_cred_ssl_server_trust_t **cred,
void *baton,
@@ -1318,6 +1338,7 @@ svn_error_t *svn_swig_pl_thunk_ssl_serve
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_ssl_client_cert_prompt(
svn_auth_cred_ssl_client_cert_t **cred,
void *baton,
@@ -1339,6 +1360,7 @@ svn_error_t *svn_swig_pl_thunk_ssl_clien
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_ssl_client_cert_pw_prompt(
svn_auth_cred_ssl_client_cert_pw_t **cred,
void *baton,
@@ -1361,6 +1383,7 @@ svn_error_t *svn_swig_pl_thunk_ssl_clien
}
/* Thunked version of svn_wc_notify_func_t callback type */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
void svn_swig_pl_notify_func(void * baton,
const char *path,
svn_wc_notify_action_t action,
@@ -1382,6 +1405,7 @@ void svn_swig_pl_notify_func(void * bato
}
/* Thunked version of svn_client_get_commit_log3_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_get_commit_log_func(const char **log_msg,
const char **tmp_file,
const apr_array_header_t *
@@ -1444,6 +1468,7 @@ svn_error_t *svn_swig_pl_get_commit_log_
}
/* Thunked version of svn_client_info_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_info_receiver(void *baton,
const char *path,
const svn_info_t *info,
@@ -1475,6 +1500,7 @@ svn_error_t *svn_swig_pl_info_receiver(v
/* Thunked version of svn_wc_cancel_func_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_cancel_func(void *cancel_baton) {
SV *result;
svn_error_t *ret_val;
@@ -1504,6 +1530,7 @@ svn_error_t *svn_swig_pl_cancel_func(voi
}
/* Thunked version of svn_wc_status_func_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
void svn_swig_pl_status_func(void *baton,
const char *path,
svn_wc_status_t *status)
@@ -1520,6 +1547,7 @@ void svn_swig_pl_status_func(void *baton
}
/* Thunked version of svn_wc_status_func2_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
void svn_swig_pl_status_func2(void *baton,
const char *path,
svn_wc_status2_t *status)
@@ -1536,6 +1564,7 @@ void svn_swig_pl_status_func2(void *bato
}
/* Thunked version of svn_wc_status_func3_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_status_func3(void *baton,
const char *path,
svn_wc_status2_t *status,
@@ -1568,6 +1597,7 @@ svn_error_t *svn_swig_pl_status_func3(vo
/* Thunked version of svn_client_blame_receiver_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_blame_func(void *baton,
apr_int64_t line_no,
svn_revnum_t revision,
@@ -1596,6 +1626,7 @@ svn_error_t *svn_swig_pl_blame_func(void
}
/* Thunked config enumerator */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_boolean_t svn_swig_pl_thunk_config_enumerator(const char *name, const char *value, void *baton)
{
SV *result;
@@ -1639,6 +1670,7 @@ void svn_swig_pl_set_current_pool(apr_po
set_current_pool_cb(pool);
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
apr_pool_t *svn_swig_pl_make_pool(SV *obj)
{
apr_pool_t *pool;
@@ -1667,6 +1699,7 @@ typedef struct io_baton_t {
IO *io;
} io_baton_t;
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t *io_handle_read(void *baton,
char *buffer,
apr_size_t *len)
@@ -1690,6 +1723,7 @@ static svn_error_t *io_handle_read(void
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t *io_handle_write(void *baton,
const char *data,
apr_size_t *len)
@@ -1710,6 +1744,7 @@ static svn_error_t *io_handle_write(void
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t *io_handle_close(void *baton)
{
io_baton_t *io = baton;
@@ -1733,6 +1768,7 @@ static apr_status_t io_handle_cleanup(vo
return APR_SUCCESS;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_make_stream(svn_stream_t **stream, SV *obj)
{
IO *io;
@@ -1778,6 +1814,7 @@ svn_error_t *svn_swig_pl_make_stream(svn
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_ra_lock_callback(
void *baton,
const char *path,
@@ -1797,6 +1834,7 @@ svn_error_t *svn_swig_pl_ra_lock_callbac
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
SV *svn_swig_pl_from_stream(svn_stream_t *stream)
{
SV *ret;
@@ -1848,6 +1886,7 @@ void svn_swig_pl_hold_ref_in_pool(apr_po
apr_pool_cleanup_register(pool, sv, cleanup_refcnt, apr_pool_cleanup_null);
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
SV *svn_swig_pl_from_md5(unsigned char *digest)
{
SV *ret;