You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by gb...@apache.org on 2013/09/26 15:47:26 UTC
svn commit: r1526487 [2/10] - in
/subversion/branches/invoke-diff-cmd-feature: ./ build/ac-macros/
build/generator/ build/generator/templates/ contrib/client-side/emacs/
notes/ subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apach...
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.cpp?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.cpp (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.cpp Thu Sep 26 13:47:21 2013
@@ -28,11 +28,11 @@
#include "JNIUtil.h"
#include "../include/org_apache_subversion_javahl_NativeResources.h"
-JNIEXPORT void JNICALL
+JNIEXPORT jboolean JNICALL
Java_org_apache_subversion_javahl_NativeResources_initNativeLibrary
(JNIEnv *env, jclass jclazz)
{
// No usual JNIEntry here, as the prerequisite native library
// initialization is performed here.
- JNIUtil::JNIGlobalInit(env);
+ return jboolean(JNIUtil::JNIGlobalInit(env));
}
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Thu Sep 26 13:47:21 2013
@@ -1634,21 +1634,6 @@ Java_org_apache_subversion_javahl_SVNCli
cl->getClientContext().setConfigDirectory(configDir);
}
-JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_setConfigEventHandler
-(JNIEnv *env, jobject jthis, jobject jconfigHandler)
-{
- JNIEntry(SVNClient, setConfigDirectory);
- SVNClient *cl = SVNClient::getCppObject(jthis);
- if (cl == NULL)
- {
- JNIUtil::throwError(_("bad C++ this"));
- return;
- }
-
- cl->getClientContext().setConfigCallback(jconfigHandler);
-}
-
JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_SVNClient_getConfigDirectory
(JNIEnv *env, jobject jthis)
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp Thu Sep 26 13:47:21 2013
@@ -182,16 +182,6 @@ Java_org_apache_subversion_javahl_remote
editor->move(jsrc_relpath, jsrc_revision, jdst_relpath, jreplaces_revision);
}
-//JNIEXPORT void JNICALL
-//Java_org_apache_subversion_javahl_remote_CommitEditor_rotate(
-// JNIEnv* env, jobject jthis, jobject jelements)
-//{
-// JNIEntry(CommitEditor, rotate);
-// CommitEditor *editor = CommitEditor::getCppObject(jthis);
-// CPPADDR_NULL_PTR(editor,);
-// editor->rotate(jelements);
-//}
-
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_remote_CommitEditor_complete(
JNIEnv* env, jobject jthis)
Propchange: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp Thu Sep 26 13:47:21 2013
@@ -38,7 +38,7 @@ JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_remote_RemoteFactory_open(
JNIEnv *env, jclass jclass, jint jretryAttempts,
jstring jurl, jstring juuid,
- jstring jconfigDirectory, jobject jconfigHandler,
+ jstring jconfigDirectory,
jstring jusername, jstring jpassword,
jobject jprompter, jobject jprogress)
{
@@ -51,8 +51,7 @@ Java_org_apache_subversion_javahl_remote
*/
jobject jremoteSession = RemoteSession::open(
jretryAttempts, jurl, juuid,
- jconfigDirectory, jconfigHandler,
- jusername, jpassword, jprompter, jprogress);
+ jconfigDirectory, jusername, jpassword, jprompter, jprogress);
if (JNIUtil::isJavaExceptionThrown())
return NULL;
Propchange: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.cpp?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.cpp (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.cpp Thu Sep 26 13:47:21 2013
@@ -35,7 +35,7 @@
#include "svn_diff.h"
-JNIEXPORT void JNICALL
+JNIEXPORT jboolean JNICALL
Java_org_apache_subversion_javahl_util_DiffLib_nativeFileDiff(
JNIEnv* env, jobject jthis,
jstring joriginal_file,
@@ -60,13 +60,13 @@ Java_org_apache_subversion_javahl_util_D
Path original(joriginal_file, pool);
if (JNIUtil::isJavaExceptionThrown())
- return;
- SVN_JNI_ERR(original.error_occurred(),);
+ return false;
+ SVN_JNI_ERR(original.error_occurred(), false);
Path modified(jmodified_file, pool);
if (JNIUtil::isJavaExceptionThrown())
- return;
- SVN_JNI_ERR(modified.error_occurred(),);
+ return false;
+ SVN_JNI_ERR(modified.error_occurred(), false);
svn_diff_t* diff;
svn_diff_file_options_t* diff_options =
@@ -79,24 +79,27 @@ Java_org_apache_subversion_javahl_util_D
original.c_str(),
modified.c_str(),
diff_options,
- pool.getPool()),);
+ pool.getPool()),
+ false);
+
+ const jboolean diffs = svn_diff_contains_diffs(diff);
JNIStringHolder original_header(joriginal_header);
if (JNIUtil::isJavaExceptionThrown())
- return;
+ return false;
JNIStringHolder modified_header(jmodified_header);
if (JNIUtil::isJavaExceptionThrown())
- return;
+ return false;
JNIStringHolder header_encoding(jheader_encoding);
if (JNIUtil::isJavaExceptionThrown())
- return;
+ return false;
JNIStringHolder relative_to_dir(jrelative_to_dir);
if (JNIUtil::isJavaExceptionThrown())
- return;
-
+ return false;
+
OutputStream result_stream(jresult_stream);
SVN_JNI_ERR(svn_diff_file_output_unified3(
@@ -105,10 +108,13 @@ Java_org_apache_subversion_javahl_util_D
original_header.c_str(), modified_header.c_str(),
header_encoding.c_str(), relative_to_dir.c_str(),
diff_options->show_c_function,
- pool.getPool()),);
+ pool.getPool()),
+ false);
+
+ return diffs;
}
-JNIEXPORT void JNICALL
+JNIEXPORT jboolean JNICALL
Java_org_apache_subversion_javahl_util_DiffLib_nativeFileMerge(
JNIEnv* env, jobject jthis,
jstring joriginal_file,
@@ -135,18 +141,18 @@ Java_org_apache_subversion_javahl_util_D
Path original(joriginal_file, pool);
if (JNIUtil::isJavaExceptionThrown())
- return;
- SVN_JNI_ERR(original.error_occurred(),);
+ return false;
+ SVN_JNI_ERR(original.error_occurred(), false);
Path modified(jmodified_file, pool);
if (JNIUtil::isJavaExceptionThrown())
- return;
- SVN_JNI_ERR(modified.error_occurred(),);
+ return false;
+ SVN_JNI_ERR(modified.error_occurred(), false);
Path latest(jlatest_file, pool);
if (JNIUtil::isJavaExceptionThrown())
- return;
- SVN_JNI_ERR(latest.error_occurred(),);
+ return false;
+ SVN_JNI_ERR(latest.error_occurred(), false);
svn_diff_t* diff;
svn_diff_file_options_t* diff_options =
@@ -160,24 +166,27 @@ Java_org_apache_subversion_javahl_util_D
modified.c_str(),
latest.c_str(),
diff_options,
- pool.getPool()),);
+ pool.getPool()),
+ false);
+
+ const jboolean conflicts = svn_diff_contains_conflicts(diff);
JNIStringHolder conflict_original(jconflict_original);
if (JNIUtil::isJavaExceptionThrown())
- return;
+ return false;
JNIStringHolder conflict_modified(jconflict_modified);
if (JNIUtil::isJavaExceptionThrown())
- return;
+ return false;
JNIStringHolder conflict_latest(jconflict_latest);
if (JNIUtil::isJavaExceptionThrown())
- return;
+ return false;
JNIStringHolder conflict_separator(jconflict_separator);
if (JNIUtil::isJavaExceptionThrown())
- return;
-
+ return false;
+
OutputStream result_stream(jresult_stream);
SVN_JNI_ERR(svn_diff_file_output_merge2(
@@ -188,5 +197,8 @@ Java_org_apache_subversion_javahl_util_D
conflict_latest.c_str(),
conflict_separator.c_str(),
svn_diff_conflict_display_style_t(jconflict_style_ordinal),
- pool.getPool()),);
+ pool.getPool()),
+ false);
+
+ return conflicts;
}
Propchange: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Thu Sep 26 13:47:21 2013
@@ -1069,12 +1069,6 @@ public interface ISVNClient
void setConfigDirectory(String configDir) throws ClientException;
/**
- * Set an event handler that will be called every time the
- * configuration is loaded.
- */
- void setConfigEventHandler(ConfigEvent configHandler);
-
- /**
* Get the configuration directory
* @return the directory
* @throws ClientException
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java Thu Sep 26 13:47:21 2013
@@ -112,19 +112,19 @@ public interface ISVNConfig
public static final String HTTP_CHUNKED_REQUESTS = "http-chunked-requests";
/**
- * "true" value in configuraition. One of the values returned by
+ * "true" value in configuration. One of the values returned by
* {@link Category#getYesNoAsk}.
*/
public static final String TRUE = "TRUE";
/**
- * "false" value in configuraition. One of the values returned by
+ * "false" value in configuration. One of the values returned by
* {@link Category#getYesNoAsk}.
*/
public static final String FALSE = "FALSE";
/**
- * "ask" value in configuraition. One of the values returned by
+ * "ask" value in configuration. One of the values returned by
* {@link Category#getYesNoAsk}.
*/
public static final String ASK = "ASK";
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java Thu Sep 26 13:47:21 2013
@@ -261,8 +261,7 @@ public interface ISVNEditor
* <code>sourceRelativePath</code> at the start of the whole edit
* and<code>sourceRelativePath</code> at
* <code>sourceRevision</code> must lie within the same node-rev
- * (aka history-segment). This is just like the #delete() and
- * #rotate().
+ * (aka history-segment). This is just like the #delete().
* <p>
* For a description of <code>replacesRevision</code>, see #addFile().
*
@@ -274,42 +273,6 @@ public interface ISVNEditor
long replacesRevision)
throws ClientException;
-// Not implemented in the native API
-// /**
-// * Perform a rotation among multiple nodes in the target tree.
-// * <p>
-// * The <code>elements</code> list specifies the nodes in the tree
-// * which are located at a path and expected to be at a specific
-// * revision. These nodes are simultaneously moved in a rotation
-// * pattern. For example, the node at index 0
-// * <code>elements</code> will be moved to the relative path
-// * specified at index 1 of <code>elements</code>. The node at
-// * index 1 will be moved to the location at index 2. The node at
-// * index N-1 will be moved to the relative path specified at index 0.
-// * <p>
-// * The simplest form of this operation is to swap nodes A and
-// * B. One may think to move A to a temporary location T, then move
-// * B to A, then move T to B. However, this last move violations
-// * the Once Rule by moving T (which had already by edited by the
-// * move from A). In order to keep the restrictions against
-// * multiple moves of a single node, the rotation operation is
-// * needed for certain types of tree edits.
-// *
-// * @throws ClientException
-// */
-// void rotate(Iterable<RotatePair> elements) throws ClientException;
-//
-// public static final class RotatePair
-// {
-// public RotatePair(String relativePath, long revision)
-// {
-// this.relativePath = relativePath;
-// this.revision = revision;
-// }
-// public final String relativePath;
-// public final long revision;
-// }
-
/**
* Signal that the edit has been completed successfully.
* After this method is called, the editor is considered closed.
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java Thu Sep 26 13:47:21 2013
@@ -129,7 +129,9 @@ public class NativeResources
*/
private static final void init()
{
- initNativeLibrary();
+ if (!initNativeLibrary())
+ throw new LinkageError("Native library initialization failed");
+
version = new Version();
if (!version.isAtLeast(1, 9, 0))
{
@@ -141,5 +143,5 @@ public class NativeResources
/**
* Initialize the native library layer.
*/
- private static native void initNativeLibrary();
+ private static native boolean initNativeLibrary();
}
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Thu Sep 26 13:47:21 2013
@@ -573,8 +573,6 @@ public class SVNClient implements ISVNCl
public native void setConfigDirectory(String configDir)
throws ClientException;
- public native void setConfigEventHandler(ConfigEvent configHandler);
-
public native String getConfigDirectory()
throws ClientException;
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNUtil.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNUtil.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNUtil.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNUtil.java Thu Sep 26 13:47:21 2013
@@ -23,12 +23,97 @@
package org.apache.subversion.javahl;
+import org.apache.subversion.javahl.callback.*;
import org.apache.subversion.javahl.util.*;
import java.io.OutputStream;
public class SVNUtil
{
+ //
+ // Global configuration
+ //
+
+ /**
+ * Enable storing authentication credentials in Subversion's
+ * standard credentials store in the configuration directory and
+ * system-specific secure locations.
+ * <p>
+ * The standard credentials store is enabled by default.
+ * <p>
+ * This setting will be inherited by all ISVNClient and ISVNRemote
+ * objects. Changing the setting will not affect existing such
+ * objects.
+ * @throws ClientException
+ */
+ public static void enableNativeCredentialsStore()
+ throws ClientException
+ {
+ new ConfigLib().enableNativeCredentialsStore();
+ }
+
+ /**
+ * Disable storing authentication credentials in Subversion's
+ * standard credentials store in the configuration directory and
+ * system-specific secure locations. In this mode, the
+ * authentication (see {@link ISVNClient#setPrompt} and {@link
+ * remote.RemoteFactory#setPrompt}) will be called every time the
+ * underlying library needs access to the credentials.
+ * <p>
+ * This mode is intented to support client implementations that
+ * use their own credentials store.
+ * <p>
+ * The standard credentials store is enabled by default.
+ * <p>
+ * This setting will be inherited by all ISVNClient and ISVNRemote
+ * objects. Changing the setting will not affect existing such
+ * objects.
+ * @throws ClientException
+ */
+ public static void disableNativeCredentialsStore()
+ throws ClientException
+ {
+ new ConfigLib().disableNativeCredentialsStore();
+ }
+
+ /**
+ * Find out if the standard credentials store is enabled.
+ */
+ public static boolean isNativeCredentialsStoreEnabled()
+ throws ClientException
+ {
+ return new ConfigLib().isNativeCredentialsStoreEnabled();
+ }
+
+ /**
+ * Set an event handler that will be called every time the
+ * configuration is loaded.
+ * <p>
+ * This setting will be inherited by all ISVNClient and ISVNRemote
+ * objects. Changing the setting will not affect existing such
+ * objects.
+ * @throws ClientException
+ */
+ public static void setConfigEventHandler(ConfigEvent configHandler)
+ throws ClientException
+ {
+ new ConfigLib().setConfigEventHandler(configHandler);
+ }
+
+ /**
+ * Return a reference to the installed configuration event
+ * handler. The returned value may be <code>null</code>.
+ */
+ public static ConfigEvent getConfigEventHandler()
+ throws ClientException
+ {
+ return new ConfigLib().getConfigEventHandler();
+ }
+
+ //
+ // Diff and Merge
+ //
+
/**
* Options to control the behaviour of the file diff routines.
*/
@@ -131,23 +216,25 @@ public class SVNUtil
* This path will be stripped from the beginning of those
* file names if they are used in the unidiff index header.
* @param resultStream The stream that receives the merged output.
+ * @return <code>true</code> if there were differences between the files.
* @throws ClientException
*/
- public static void FileDiff(String originalFile,
- String modifiedFile,
- SVNUtil.DiffOptions diffOptions,
-
- String originalHeader,
- String modifiedHeader,
- String headerEncoding,
- String relativeToDir,
+ public static boolean fileDiff(String originalFile,
+ String modifiedFile,
+ SVNUtil.DiffOptions diffOptions,
+
+ String originalHeader,
+ String modifiedHeader,
+ String headerEncoding,
+ String relativeToDir,
- OutputStream resultStream)
+ OutputStream resultStream)
throws ClientException
{
- new DiffLib().FileDiff(originalFile, modifiedFile, diffOptions,
- originalHeader, modifiedHeader, headerEncoding,
- relativeToDir, resultStream);
+ return new DiffLib().fileDiff(originalFile, modifiedFile, diffOptions,
+ originalHeader, modifiedHeader,
+ headerEncoding,
+ relativeToDir, resultStream);
}
@@ -171,26 +258,27 @@ public class SVNUtil
* @param conflictSeparator Optional custom conflict separator.
* @param conflictStyle Determines how conflicts are displayed.
* @param resultStream The stream that receives the merged output.
+ * @return <code>true</code> if there were any conflicts.
* @throws ClientException
*/
- public static void FileMerge(String originalFile,
- String modifiedFile,
- String latestFile,
- DiffOptions diffOptions,
-
- String conflictOriginal,
- String conflictModified,
- String conflictLatest,
- String conflictSeparator,
- ConflictDisplayStyle conflictStyle,
+ public static boolean fileMerge(String originalFile,
+ String modifiedFile,
+ String latestFile,
+ DiffOptions diffOptions,
+
+ String conflictOriginal,
+ String conflictModified,
+ String conflictLatest,
+ String conflictSeparator,
+ ConflictDisplayStyle conflictStyle,
- OutputStream resultStream)
+ OutputStream resultStream)
throws ClientException
{
- new DiffLib().FileMerge(originalFile, modifiedFile, latestFile,
- diffOptions,
- conflictOriginal, conflictModified,
- conflictLatest, conflictSeparator,
- conflictStyle, resultStream);
+ return new DiffLib().fileMerge(originalFile, modifiedFile, latestFile,
+ diffOptions,
+ conflictOriginal, conflictModified,
+ conflictLatest, conflictSeparator,
+ conflictStyle, resultStream);
}
-}
\ No newline at end of file
+}
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java Thu Sep 26 13:47:21 2013
@@ -29,6 +29,7 @@ import org.apache.subversion.javahl.call
import org.apache.subversion.javahl.ISVNEditor;
import org.apache.subversion.javahl.JNIObject;
import org.apache.subversion.javahl.ClientException;
+import org.apache.subversion.javahl.NativeResources;
import java.io.InputStream;
import java.util.Map;
@@ -40,6 +41,14 @@ import java.util.Set;
*/
public class CommitEditor extends JNIObject implements ISVNEditor
{
+ /**
+ * Load the required native library.
+ */
+ static
+ {
+ NativeResources.loadNativeLibrary();
+ }
+
public void dispose()
{
session.disposeEditor(this);
@@ -111,9 +120,6 @@ public class CommitEditor extends JNIObj
long replacesRevision)
throws ClientException;
-// public native void rotate(Iterable<RotatePair> elements)
-// throws ClientException;
-
public native void complete() throws ClientException;
public native void abort() throws ClientException;
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java Thu Sep 26 13:47:21 2013
@@ -57,13 +57,11 @@ public class RemoteFactory
* Initializing constructor. Any or all of its arguments may be null.
*/
public RemoteFactory(String configDirectory,
- ConfigEvent configHandler,
String username, String password,
UserPasswordCallback prompt,
ProgressCallback progress)
{
setConfigDirectory(configDirectory);
- setConfigEventHandler(configHandler);
setUsername(username);
setPassword(password);
setPrompt(prompt);
@@ -127,16 +125,6 @@ public class RemoteFactory
}
/**
- * Set an event handler that will be called every time the
- * configuration is loaded.
- */
- public void setConfigEventHandler(ConfigEvent configHandler)
- {
- this.configHandler = configHandler;
- }
-
-
- /**
* Open a persistent session to a repository.
* <p>
* <b>Note:</b> The URL can point to a subtree of the repository.
@@ -152,8 +140,7 @@ public class RemoteFactory
public ISVNRemote openRemoteSession(String url)
throws ClientException, SubversionException
{
- return open(1, url, null,
- configDirectory, configHandler,
+ return open(1, url, null, configDirectory,
username, password, prompt, progress);
}
@@ -180,8 +167,7 @@ public class RemoteFactory
if (retryAttempts <= 0)
throw new IllegalArgumentException(
"retryAttempts must be positive");
- return open(retryAttempts, url, null,
- configDirectory, configHandler,
+ return open(retryAttempts, url, null, configDirectory,
username, password, prompt, progress);
}
@@ -208,8 +194,7 @@ public class RemoteFactory
{
if (reposUUID == null)
throw new IllegalArgumentException("reposUUID may not be null");
- return open(1, url, reposUUID,
- configDirectory, configHandler,
+ return open(1, url, reposUUID, configDirectory,
username, password, prompt, progress);
}
@@ -243,13 +228,11 @@ public class RemoteFactory
if (retryAttempts <= 0)
throw new IllegalArgumentException(
"retryAttempts must be positive");
- return open(retryAttempts, url, reposUUID,
- configDirectory, configHandler,
+ return open(retryAttempts, url, reposUUID, configDirectory,
username, password, prompt, progress);
}
private String configDirectory;
- private ConfigEvent configHandler;
private String username;
private String password;
private UserPasswordCallback prompt;
@@ -259,7 +242,6 @@ public class RemoteFactory
private static native ISVNRemote open(int retryAttempts,
String url, String reposUUID,
String configDirectory,
- ConfigEvent configHandler,
String username, String password,
UserPasswordCallback prompt,
ProgressCallback progress)
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java Thu Sep 26 13:47:21 2013
@@ -32,6 +32,7 @@ import org.apache.subversion.javahl.ISVN
import org.apache.subversion.javahl.JNIObject;
import org.apache.subversion.javahl.OperationContext;
import org.apache.subversion.javahl.ClientException;
+import org.apache.subversion.javahl.NativeResources;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -46,6 +47,14 @@ import static java.util.concurrent.TimeU
public class RemoteSession extends JNIObject implements ISVNRemote
{
+ /**
+ * Load the required native library.
+ */
+ static
+ {
+ NativeResources.loadNativeLibrary();
+ }
+
public void dispose()
{
if (editorReference != null)
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java Thu Sep 26 13:47:21 2013
@@ -29,6 +29,7 @@ import org.apache.subversion.javahl.call
import org.apache.subversion.javahl.JNIObject;
import org.apache.subversion.javahl.ISVNReporter;
import org.apache.subversion.javahl.ClientException;
+import org.apache.subversion.javahl.NativeResources;
/**
* Implementation of ISVNReporter.
@@ -36,6 +37,14 @@ import org.apache.subversion.javahl.Clie
*/
public class StateReporter extends JNIObject implements ISVNReporter
{
+ /**
+ * Load the required native library.
+ */
+ static
+ {
+ NativeResources.loadNativeLibrary();
+ }
+
public void dispose()
{
session.disposeReporter(this);
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java Thu Sep 26 13:47:21 2013
@@ -24,6 +24,7 @@
package org.apache.subversion.javahl.types;
import org.apache.subversion.javahl.ClientException;
+import org.apache.subversion.javahl.NativeResources;
import java.util.List;
@@ -39,6 +40,14 @@ public class RevisionRangeList implement
// the Java release.
private static final long serialVersionUID = 1L;
+ /**
+ * Load the required native library.
+ */
+ static
+ {
+ NativeResources.loadNativeLibrary();
+ }
+
private List<RevisionRange> ranges;
/**
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Version.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Version.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Version.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Version.java Thu Sep 26 13:47:21 2013
@@ -23,6 +23,8 @@
package org.apache.subversion.javahl.types;
+import org.apache.subversion.javahl.NativeResources;
+
/**
* Encapsulates version information about the underlying native
* libraries. Basically a wrapper for <a
@@ -31,6 +33,14 @@ package org.apache.subversion.javahl.typ
public class Version
{
/**
+ * Load the required native library.
+ */
+ static
+ {
+ NativeResources.loadNativeLibrary();
+ }
+
+ /**
* @return The full version string for the loaded JavaHL library,
* as defined by <code>MAJOR.MINOR.PATCH INFO</code>.
*/
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java Thu Sep 26 13:47:21 2013
@@ -23,6 +23,8 @@
package org.apache.subversion.javahl.types;
+import org.apache.subversion.javahl.NativeResources;
+
/**
* Encapsulates information about the compile-time and run-time
* properties of the Subversion libraries.
@@ -31,6 +33,14 @@ package org.apache.subversion.javahl.typ
public class VersionExtended
{
/**
+ * Load the required native library.
+ */
+ static
+ {
+ NativeResources.loadNativeLibrary();
+ }
+
+ /**
* @return The date when the libsvn_subr library was compiled, in
* the format defined by the C standard macro #__DATE__.
*/
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java Thu Sep 26 13:47:21 2013
@@ -43,42 +43,10 @@ public class DiffLib
NativeResources.loadNativeLibrary();
}
- /** @see ISVNUtil.FileDiff */
- public void FileDiff(String originalFile,
- String modifiedFile,
- SVNUtil.DiffOptions diffOptions,
-
- String originalHeader,
- String modifiedHeader,
- String headerEncoding,
- String relativeToDir,
-
- OutputStream resultStream)
- throws ClientException
- {
- nativeFileDiff(originalFile, modifiedFile,
-
- // Interpret the diff options
- (diffOptions == null
- ? SVNUtil.DiffOptions.IgnoreSpace.none.ordinal()
- : diffOptions.ignoreSpace.ordinal()),
- (diffOptions == null ? false
- : diffOptions.ignoreEolStyle),
- (diffOptions == null ? false
- : diffOptions.showCFunction),
-
- originalHeader, modifiedHeader, headerEncoding,
- relativeToDir, resultStream);
- }
-
- private native
- void nativeFileDiff(String originalFile,
+ /** @see ISVNUtil.fileDiff */
+ public boolean fileDiff(String originalFile,
String modifiedFile,
-
- // Interpreted diff options
- int ignoreSpace,
- boolean ignoreEolStyle,
- boolean showCFunction,
+ SVNUtil.DiffOptions diffOptions,
String originalHeader,
String modifiedHeader,
@@ -86,61 +54,93 @@ public class DiffLib
String relativeToDir,
OutputStream resultStream)
- throws ClientException;
-
- /** @see ISVNUtil.FileMerge */
- public void FileMerge(String originalFile,
- String modifiedFile,
- String latestFile,
- SVNUtil.DiffOptions diffOptions,
-
- String conflictOriginal,
- String conflictModified,
- String conflictLatest,
- String conflistSeparator,
- SVNUtil.ConflictDisplayStyle conflictStyle,
-
- OutputStream resultStream)
throws ClientException
{
- nativeFileMerge(originalFile, modifiedFile, latestFile,
+ return nativeFileDiff(originalFile, modifiedFile,
- // Interpret the diff options
- (diffOptions == null
- ? SVNUtil.DiffOptions.IgnoreSpace.none.ordinal()
- : diffOptions.ignoreSpace.ordinal()),
- (diffOptions == null ? false
- : diffOptions.ignoreEolStyle),
- (diffOptions == null ? false
- : diffOptions.showCFunction),
+ // Interpret the diff options
+ (diffOptions == null
+ ? SVNUtil.DiffOptions.IgnoreSpace.none.ordinal()
+ : diffOptions.ignoreSpace.ordinal()),
+ (diffOptions == null ? false
+ : diffOptions.ignoreEolStyle),
+ (diffOptions == null ? false
+ : diffOptions.showCFunction),
- conflictOriginal, conflictModified, conflictLatest,
- conflistSeparator,
-
- // Interpret the conflict style
- conflictStyle.ordinal(),
-
- resultStream);
+ originalHeader, modifiedHeader, headerEncoding,
+ relativeToDir, resultStream);
}
private native
- void nativeFileMerge(String originalFile,
+ boolean nativeFileDiff(String originalFile,
+ String modifiedFile,
+
+ // Interpreted diff options
+ int ignoreSpace,
+ boolean ignoreEolStyle,
+ boolean showCFunction,
+
+ String originalHeader,
+ String modifiedHeader,
+ String headerEncoding,
+ String relativeToDir,
+
+ OutputStream resultStream)
+ throws ClientException;
+
+ /** @see ISVNUtil.fileMerge */
+ public boolean fileMerge(String originalFile,
String modifiedFile,
String latestFile,
-
- // Interpreted diff options
- int ignoreSpace,
- boolean ignoreEolStyle,
- boolean showCFunction,
+ SVNUtil.DiffOptions diffOptions,
String conflictOriginal,
String conflictModified,
String conflictLatest,
String conflistSeparator,
-
- // Interpreted conflict display style
- int conflictStyle,
+ SVNUtil.ConflictDisplayStyle conflictStyle,
OutputStream resultStream)
+ throws ClientException
+ {
+ return nativeFileMerge(originalFile, modifiedFile, latestFile,
+
+ // Interpret the diff options
+ (diffOptions == null
+ ? SVNUtil.DiffOptions.IgnoreSpace.none.ordinal()
+ : diffOptions.ignoreSpace.ordinal()),
+ (diffOptions == null ? false
+ : diffOptions.ignoreEolStyle),
+ (diffOptions == null ? false
+ : diffOptions.showCFunction),
+
+ conflictOriginal, conflictModified,
+ conflictLatest, conflistSeparator,
+
+ // Interpret the conflict style
+ conflictStyle.ordinal(),
+
+ resultStream);
+ }
+
+ private native
+ boolean nativeFileMerge(String originalFile,
+ String modifiedFile,
+ String latestFile,
+
+ // Interpreted diff options
+ int ignoreSpace,
+ boolean ignoreEolStyle,
+ boolean showCFunction,
+
+ String conflictOriginal,
+ String conflictModified,
+ String conflictLatest,
+ String conflistSeparator,
+
+ // Interpreted conflict display style
+ int conflictStyle,
+
+ OutputStream resultStream)
throws ClientException;
}
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Path.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Path.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Path.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Path.java Thu Sep 26 13:47:21 2013
@@ -31,14 +31,6 @@ package org.tigris.subversion.javahl;
public class Path
{
/**
- * Load the required native library.
- */
- static
- {
- org.apache.subversion.javahl.NativeResources.loadNativeLibrary();
- }
-
- /**
* A valid path is a UTF-8 string without any control characters.
*
* @return Whether Subversion can store the path in a repository.
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java Thu Sep 26 13:47:21 2013
@@ -68,14 +68,12 @@ public class SVNRemoteTests extends SVNT
thisTest = new OneTest();
}
- public static ISVNRemote getSession(String url, String configDirectory,
- ConfigEvent configHandler)
+ public static ISVNRemote getSession(String url, String configDirectory)
{
try
{
RemoteFactory factory = new RemoteFactory();
factory.setConfigDirectory(configDirectory);
- factory.setConfigEventHandler(configHandler);
factory.setUsername(USERNAME);
factory.setPassword(PASSWORD);
factory.setPrompt(new DefaultPromptUserPassword());
@@ -92,7 +90,7 @@ public class SVNRemoteTests extends SVNT
private ISVNRemote getSession()
{
- return getSession(getTestRepoUrl(), super.conf.getAbsolutePath(), null);
+ return getSession(getTestRepoUrl(), super.conf.getAbsolutePath());
}
/**
@@ -111,7 +109,7 @@ public class SVNRemoteTests extends SVNT
try
{
session = new RemoteFactory(
- super.conf.getAbsolutePath(), null,
+ super.conf.getAbsolutePath(),
USERNAME, PASSWORD,
new DefaultPromptUserPassword(), null)
.openRemoteSession(getTestRepoUrl());
@@ -633,48 +631,6 @@ public class SVNRemoteTests extends SVNT
assertTrue(Arrays.equals(contents, checkcontents.toByteArray()));
}
- // public void testEditorRotate() throws Exception
- // {
- // ISVNRemote session = getSession();
- //
- // ArrayList<ISVNEditor.RotatePair> rotation =
- // new ArrayList<ISVNEditor.RotatePair>(3);
- // rotation.add(new ISVNEditor.RotatePair("A/B", 1));
- // rotation.add(new ISVNEditor.RotatePair("A/C", 1));
- // rotation.add(new ISVNEditor.RotatePair("A/D", 1));
- //
- // CommitContext cc =
- // new CommitContext(session, "Rotate A/B -> A/C -> A/D");
- // try {
- // // No alter-dir of A is needed, children remain the same.
- // cc.editor.rotate(rotation);
- // cc.editor.complete();
- // } finally {
- // cc.editor.dispose();
- // }
- //
- // assertEquals(2, cc.getRevision());
- // assertEquals(2, session.getLatestRevision());
- //
- // HashMap<String, DirEntry> dirents = new HashMap<String, DirEntry>();
- // HashMap<String, byte[]> properties = new HashMap<String, byte[]>();
- //
- // // A/B is now what used to be A/D, so A/B/H must exist
- // session.getDirectory(Revision.SVN_INVALID_REVNUM, "A/B",
- // DirEntry.Fields.all, dirents, properties);
- // assertEquals(dirents.get("H").getPath(), "H");
- //
- // // A/C is now what used to be A/B, so A/C/F must exist
- // session.getDirectory(Revision.SVN_INVALID_REVNUM, "A/C",
- // DirEntry.Fields.all, dirents, properties);
- // assertEquals(dirents.get("F").getPath(), "F");
- //
- // // A/D is now what used to be A/C and must be empty
- // session.getDirectory(Revision.SVN_INVALID_REVNUM, "A/D",
- // DirEntry.Fields.all, dirents, properties);
- // assertTrue(dirents.isEmpty());
- // }
-
// Sanity check so that we don't forget about unimplemented methods.
public void testEditorNotImplemented() throws Exception
{
@@ -704,13 +660,6 @@ public class SVNRemoteTests extends SVNT
}
assertEquals("Not implemented: CommitEditor.alterSymlink", exmsg);
- // try {
- // exmsg = "";
- // cc.editor.rotate(rotation);
- // } catch (RuntimeException ex) {
- // exmsg = ex.getMessage();
- // }
- // assertEquals("Not implemented: CommitEditor.rotate", exmsg);
} finally {
cc.editor.dispose();
}
@@ -810,10 +759,13 @@ public class SVNRemoteTests extends SVNT
}
};
- ISVNRemote session = getSession(getTestRepoUrl(),
- super.conf.getAbsolutePath(),
- handler);
- session.getLatestRevision(); // Make sure the configuration gets loaded
+ try {
+ SVNUtil.setConfigEventHandler(handler);
+ ISVNRemote session = getSession();
+ session.getLatestRevision();
+ } finally {
+ SVNUtil.setConfigEventHandler(null);
+ }
}
private static class RemoteStatusReceiver implements RemoteStatus
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java Thu Sep 26 13:47:21 2013
@@ -173,6 +173,17 @@ class SVNTests extends TestCase
private void init()
{
+ String disableCredStore = System.getProperty("test.disablecredstore");
+ if (disableCredStore != null)
+ {
+ try {
+ SVNUtil.disableNativeCredentialsStore();
+ } catch(Throwable ex) {
+ System.err.println("*** ERROR: Could not disable" +
+ " the native credentials store");
+ }
+ }
+
// if not already set, get a usefull value for rootDir
if (rootDirectoryName == null)
rootDirectoryName = System.getProperty("test.rootdir");
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java Thu Sep 26 13:47:21 2013
@@ -35,6 +35,8 @@ import org.junit.Assert;
*/
public class UtilTests extends SVNTests
{
+ private final static String NL = System.getProperty("line.separator");
+
/**
* Base name of all our tests.
*/
@@ -85,14 +87,15 @@ public class UtilTests extends SVNTests
writeFileContents(modified, "\nmodified\n\n");
ByteArrayOutputStream result = new ByteArrayOutputStream();
- SVNUtil.FileDiff(original.getAbsolutePath(),
- modified.getAbsolutePath(),
- null, "original", "modified", "UTF-8", null,
- result);
-
- final byte[] expected = ("--- original\n" +
- "+++ modified\n" +
- "@@ -3,7 +3,7 @@\n" +
+ boolean diffs = SVNUtil.fileDiff(original.getAbsolutePath(),
+ modified.getAbsolutePath(),
+ null, "original", "modified", "UTF-8",
+ null, result);
+ assertTrue(diffs);
+
+ final byte[] expected = ("--- original" + NL +
+ "+++ modified" + NL +
+ "@@ -3,7 +3,7 @@" + NL +
" 3\n 4\n \n" +
"-original\n" +
"+modified\n" +
@@ -111,16 +114,17 @@ public class UtilTests extends SVNTests
writeFileContents(latest, "\nlatest\n\n");
ByteArrayOutputStream result = new ByteArrayOutputStream();
- SVNUtil.FileMerge(original.getAbsolutePath(),
- modified.getAbsolutePath(),
- latest.getAbsolutePath(),
- null,
- "||||||| base",
- "<<<<<<< branch",
- ">>>>>>> local",
- "=======",
- SVNUtil.ConflictDisplayStyle.modified_original_latest,
- result);
+ boolean conflicts = SVNUtil.fileMerge(original.getAbsolutePath(),
+ modified.getAbsolutePath(),
+ latest.getAbsolutePath(),
+ null,
+ "||||||| base",
+ "<<<<<<< branch",
+ ">>>>>>> local",
+ "=======",
+ SVNUtil.ConflictDisplayStyle.modified_original_latest,
+ result);
+ assertTrue(conflicts);
final byte[] expected = ("1\n2\n3\n4\n\n" +
"<<<<<<< branch\n" +
@@ -129,8 +133,8 @@ public class UtilTests extends SVNTests
"original\n" +
"=======\n" +
"latest\n" +
- ">>>>>>> local\n\n" +
- "N-3\nN-2\nN-1\nN\n").getBytes();
+ ">>>>>>> local\n" +
+ "\nN-3\nN-2\nN-1\nN\n").getBytes();
Assert.assertArrayEquals(expected, result.toByteArray());
}
}
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/test_fs.rb
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/test_fs.rb?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/test_fs.rb (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/test_fs.rb Thu Sep 26 13:47:21 2013
@@ -209,10 +209,14 @@ class SvnFsTest < Test::Unit::TestCase
ctx.commit(@wc_path)
end
- assert_raises(Svn::Error::FsNoSuchTransaction) do
+ assert_raises(Svn::Error::FsMalformedTxnId) do
@fs.open_txn("NOT-EXIST")
end
+ assert_raises(Svn::Error::FsNoSuchTransaction) do
+ @fs.open_txn("9-9")
+ end
+
start_time = Time.now
txn1 = @fs.transaction
assert_equal([Svn::Core::PROP_REVISION_DATE], txn1.proplist.keys)
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/util.rb?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/util.rb (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/util.rb Thu Sep 26 13:47:21 2013
@@ -79,6 +79,7 @@ module SvnTestUtil
@wc_path = File.join(@tmp_path, "wc")
@import_path = File.join(@tmp_path, "import")
@repos_path = File.join(@tmp_path, "repos")
+ @svnserve_pid_file = File.join(@tmp_path, "svnserve.pid")
@full_repos_path = File.expand_path(@repos_path)
@repos_uri = "file://#{@full_repos_path.sub(/^\/?/, '/')}"
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/windows_util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/windows_util.rb?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/windows_util.rb (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/test/windows_util.rb Thu Sep 26 13:47:21 2013
@@ -34,149 +34,31 @@ module SvnTestUtil
end
end
- def service_control(command, args={})
- args = args.collect do |key, value|
- "#{key}= #{Svnserve.escape_value(value)}"
- end.join(" ")
- result = `sc #{command} #{service_name} #{args}`
- if result.match(/FAILED/)
- raise "Failed to #{command} #{service_name}: #{args}"
- end
- /^\s*STATE\s*:\s\d+\s*(.*?)\s*$/ =~ result
- $1
- end
-
- def grant_everyone_full_access(dir)
- dir = dir.tr(File::SEPARATOR, File::ALT_SEPARATOR)
- `cacls #{Svnserve.escape_value(dir)} /T /E /P Everyone:F`
- end
-
- def service_exists?
- begin
- service_control("query")
- true
- rescue
- false
- end
- end
-
- def service_stopped?
- "STOPPED" == service_control("query") rescue true
- end
-
def setup_svnserve
@svnserve_port = @svnserve_ports.last
@repos_svnserve_uri = "svn://#{@svnserve_host}:#{@svnserve_port}"
- grant_everyone_full_access(@full_repos_path)
@@service_created ||= begin
@@service_created = true
- service_control('stop') unless service_stopped?
- service_control('delete') if service_exists?
-
- svnserve_dir = File.expand_path("svnserve")
- FileUtils.mkdir_p(svnserve_dir)
- at_exit do
- service_control('stop') unless service_stopped?
- service_control('delete') if service_exists?
- FileUtils.rm_rf(svnserve_dir)
- end
- trap("INT") do
- service_control('stop') unless service_stopped?
- service_control('delete') if service_exists?
- FileUtils.rm_rf(svnserve_dir)
- end
-
- config = SetupEnvironment.gen_make_opts
- apr_version_include = Pathname.new(config["--with-apr"]) +
- 'include' + 'apr_version.h'
- %r'^\s*#define\s+APR_MAJOR_VERSION\s+(\d+)' =~ apr_version_include.read
- apr_major_version = $1 == '0' ? '' : "-#{$1}"
-
- cwd = Dir.getwd
- targets = %W(svnserve.exe libsvn_subr-1.dll libsvn_repos-1.dll
- libsvn_fs-1.dll libsvn_delta-1.dll
- libaprutil#{apr_major_version}.dll
- libapr#{apr_major_version}.dll
- libapriconv#{apr_major_version}.dll
- libdb??.dll libdb??d.dll)
- ENV["PATH"].split(";").each do |path|
-
- # Change the cwd to path, but ignore non-existent paths.
- begin
- Dir.chdir(path)
- rescue Errno::ENOENT
- next
- end
-
- found_targets = []
- targets.each do |target|
- matching_paths = Dir.glob(target)
- matching_paths.each do |target_path|
- target_path = File.join(path.tr('\\', '/'), target_path)
- if File.exists?(target_path)
- found_targets << target
- retried = 0
- begin
- FileUtils.cp(target_path, svnserve_dir)
- rescue Errno::EACCES
- # On Windows the tests frequently fail spuriously with a
- # 'Errno::EACCES: Permission denied - svnserve.exe' error.
- # Sleeping for a few seconds avoids this.
- if retried > 5
- # Give up!
- raise
- else
- # Wait a sec...
- sleep(1)
- retried += 1
- retry
- end
- end
- end
- end
- end
- targets -= found_targets
- break if targets.empty?
- end
- Dir.chdir(cwd)
- # Remove optional targets instead of raising below. If they are really
- # needed, svnserve won't start anyway.
- targets -= %W[libapriconv#{apr_major_version}.dll]
- # Ditto these four, since svnserve.exe might be a static build.
- targets -= %W[libsvn_subr-1.dll]
- targets -= %W[libsvn_repos-1.dll]
- targets -= %W[libsvn_fs-1.dll]
- targets -= %W[libsvn_delta-1.dll]
-
- unless targets.empty?
- raise "can't find libraries to work svnserve: #{targets.join(' ')}"
- end
-
- grant_everyone_full_access(svnserve_dir)
- svnserve_path = File.join(svnserve_dir, "svnserve.exe")
- svnserve_path = svnserve_path.tr(File::SEPARATOR,
- File::ALT_SEPARATOR)
+ top_directory = File.join(File.dirname(__FILE__), "..", "..", "..", "..", "..")
+ build_type = ENV["BUILD_TYPE"] || "Release"
+ svnserve_path = File.join(top_directory, build_type, 'subversion', 'svnserve', 'svnserve.exe')
svnserve_path = Svnserve.escape_value(svnserve_path)
root = @full_repos_path.tr(File::SEPARATOR, File::ALT_SEPARATOR)
+ FileUtils.mkdir_p(root)
- args = ["--service", "--root", Svnserve.escape_value(root),
- "--listen-host", @svnserve_host,
- "--listen-port", @svnserve_port]
+ IO.popen("#{svnserve_path} -d -r #{Svnserve.escape_value(root)} --listen-host #{@svnserve_host} --listen-port #{@svnserve_port} --pid-file #{@svnserve_pid_file}")
user = ENV["USERNAME"] || Etc.getlogin
- service_control('create',
- [["binPath", "#{svnserve_path} #{args.join(' ')}"],
- ["DisplayName", service_name],
- ["type", "own"]])
end
- service_control('start')
true
end
def teardown_svnserve
- service_control('stop') unless service_stopped?
+ # TODO:
+ # Load @svnserve_pid_file
+ # Kill process
end
def add_pre_revprop_change_hook
Modified: subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_editor.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_editor.h?rev=1526487&r1=1526486&r2=1526487&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_editor.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_editor.h Thu Sep 26 13:47:21 2013
@@ -270,7 +270,6 @@ svn_delta_shim_callbacks_default(apr_poo
* svn_editor_setcb_delete() \n
* svn_editor_setcb_copy() \n
* svn_editor_setcb_move() \n
- * svn_editor_setcb_rotate() \n
* svn_editor_setcb_complete() \n
* svn_editor_setcb_abort()
*
@@ -293,7 +292,6 @@ svn_delta_shim_callbacks_default(apr_poo
* svn_editor_delete() \n
* svn_editor_copy() \n
* svn_editor_move() \n
- * svn_editor_rotate()
* \n\n
* Just before each callback invocation is carried out, the @a cancel_func
* that was passed to svn_editor_create() is invoked to poll any
@@ -325,7 +323,7 @@ svn_delta_shim_callbacks_default(apr_poo
* In order to reduce complexity of callback receivers, the editor callbacks
* must be driven in adherence to these rules:
*
- * - If any path is added (with add_*) or deleted/moved/rotated, then
+ * - If any path is added (with add_*) or deleted/moved, then
* an svn_editor_alter_directory() call must be made for its parent
* directory with the target/eventual set of children.
*
@@ -344,15 +342,13 @@ svn_delta_shim_callbacks_default(apr_poo
* its children, if a directory) may be copied many times, and are
* otherwise subject to the Once Rule. The destination path of a copy
* or move may have alter_* operations applied, but not add_* or delete.
- * If the destination path of a copy, move, or rotate is a directory,
+ * If the destination path of a copy or move is a directory,
* then its children are subject to the Once Rule. The source path of
* a move (and its child paths) may be referenced in add_*, or as the
* destination of a copy (where these new or copied nodes are subject
- * to the Once Rule). Paths listed in a rotation are both sources and
- * destinations, so they may not be referenced again in an add_* or a
- * deletion; these paths may have alter_* operations applied.
+ * to the Once Rule).
*
- * - The ancestor of an added, copied-here, moved-here, rotated, or
+ * - The ancestor of an added, copied-here, moved-here, or
* modified node may not be deleted. The ancestor may not be moved
* (instead: perform the move, *then* the edits).
*
@@ -375,10 +371,6 @@ svn_delta_shim_callbacks_default(apr_poo
* by a delete... that is fine. It is simply that svn_editor_move()
* should be used to describe a semantic move.
*
- * - Paths mentioned in svn_editor_rotate() may have their properties
- * and contents edited (via alter_* calls) by a previous or later call,
- * but they may not be subject to a later move, rotate, or deletion.
- *
* - One of svn_editor_complete() or svn_editor_abort() must be called
* exactly once, which must be the final call the driver invokes.
* Invoking svn_editor_complete() must imply that the set of changes has
@@ -620,15 +612,6 @@ typedef svn_error_t *(*svn_editor_cb_mov
svn_revnum_t replaces_rev,
apr_pool_t *scratch_pool);
-/** @see svn_editor_rotate(), svn_editor_t.
- * @since New in 1.8.
- */
-typedef svn_error_t *(*svn_editor_cb_rotate_t)(
- void *baton,
- const apr_array_header_t *relpaths,
- const apr_array_header_t *revisions,
- apr_pool_t *scratch_pool);
-
/** @see svn_editor_complete(), svn_editor_t.
* @since New in 1.8.
*/
@@ -790,17 +773,6 @@ svn_editor_setcb_move(svn_editor_t *edit
svn_editor_cb_move_t callback,
apr_pool_t *scratch_pool);
-/** Sets the #svn_editor_cb_rotate_t callback in @a editor
- * to @a callback.
- * @a scratch_pool is used for temporary allocations (if any).
- * @see also svn_editor_setcb_many().
- * @since New in 1.8.
- */
-svn_error_t *
-svn_editor_setcb_rotate(svn_editor_t *editor,
- svn_editor_cb_rotate_t callback,
- apr_pool_t *scratch_pool);
-
/** Sets the #svn_editor_cb_complete_t callback in @a editor
* to @a callback.
* @a scratch_pool is used for temporary allocations (if any).
@@ -841,7 +813,6 @@ typedef struct svn_editor_cb_many_t
svn_editor_cb_delete_t cb_delete;
svn_editor_cb_copy_t cb_copy;
svn_editor_cb_move_t cb_move;
- svn_editor_cb_rotate_t cb_rotate;
svn_editor_cb_complete_t cb_complete;
svn_editor_cb_abort_t cb_abort;
@@ -1093,7 +1064,7 @@ svn_editor_copy(svn_editor_t *editor,
* expect to find this node. That is, @a src_relpath at the start of
* the whole edit and @a src_relpath at @a src_revision must lie within
* the same node-rev (aka history-segment). This is just like the
- * revisions specified to svn_editor_delete() and svn_editor_rotate().
+ * revisions specified to svn_editor_delete().
*
* For a description of @a replaces_rev, see svn_editor_add_file().
*
@@ -1110,36 +1081,6 @@ svn_editor_move(svn_editor_t *editor,
const char *dst_relpath,
svn_revnum_t replaces_rev);
-/** Drive @a editor's #svn_editor_cb_rotate_t callback.
- *
- * Perform a rotation among multiple nodes in the target tree.
- *
- * The @a relpaths and @a revisions arrays (pair-wise) specify nodes in the
- * tree which are located at a path and expected to be at a specific
- * revision. These nodes are simultaneously moved in a rotation pattern.
- * For example, the node at index 0 of @a relpaths and @a revisions will
- * be moved to the relpath specified at index 1 of @a relpaths. The node
- * at index 1 will be moved to the location at index 2. The node at index
- * N-1 will be moved to the relpath specified at index 0.
- *
- * The simplest form of this operation is to swap nodes A and B. One may
- * think to move A to a temporary location T, then move B to A, then move
- * T to B. However, this last move violations the Once Rule by moving T
- * (which had already by edited by the move from A). In order to keep the
- * restrictions against multiple moves of a single node, the rotation
- * operation is needed for certain types of tree edits.
- *
- * ### what happens if one of the paths of the rotation is not "within" the
- * ### receiver's set of paths?
- *
- * For all restrictions on driving the editor, see #svn_editor_t.
- * @since New in 1.8.
- */
-svn_error_t *
-svn_editor_rotate(svn_editor_t *editor,
- const apr_array_header_t *relpaths,
- const apr_array_header_t *revisions);
-
/** Drive @a editor's #svn_editor_cb_complete_t callback.
*
* Send word that the edit has been completed successfully.