You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2014/02/12 12:45:01 UTC

svn commit: r1567602 - in /subversion/trunk/subversion/bindings/javahl: native/ src/org/apache/subversion/javahl/

Author: brane
Date: Wed Feb 12 11:45:01 2014
New Revision: 1567602

URL: http://svn.apache.org/r1567602
Log:
Expose the --allow-mixed-revisions merge option in JavaHL.

[in subversion/bindings/javahl]

* src/org/apache/subversion/javahl/ISVNClient.java
  (ISVNClent.merge): Add overloads that accept an allowMixedRev parameter.
   Update documentation for previous overloads.
* src/org/apache/subversion/javahl/SVNClient.java
  (ISVNClent.merge): Update native prototypes with the allowMixedRev parameter.
   Add wrapper implementations for the previous versions.

* native/SVNClient.h (SVNClient::merge): Add allowMixedRev parameters.
* native/SVNClient.cpp (SVNClient::merge): Likewise, and pass them on
   to the core API.
* native/org_apache_subversion_javahl_SVNClient.cpp:
   Update the callers in the JNI wrapper implementations.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/trunk/subversion/bindings/javahl/native/SVNClient.h
    subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
    subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java

Modified: subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp?rev=1567602&r1=1567601&r2=1567602&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp Wed Feb 12 11:45:01 2014
@@ -656,7 +656,7 @@ void SVNClient::merge(const char *path1,
                       const char *path2, Revision &revision2,
                       const char *localPath, bool forceDelete, svn_depth_t depth,
                       bool ignoreMergeinfo, bool diffIgnoreAncestry,
-                      bool dryRun, bool recordOnly)
+                      bool dryRun, bool allowMixedRev, bool recordOnly)
 {
     SVN::Pool subPool(pool);
     SVN_JNI_NULL_PTR_EX(path1, "path1", );
@@ -681,14 +681,15 @@ void SVNClient::merge(const char *path1,
                                   depth,
                                   ignoreMergeinfo, diffIgnoreAncestry,
                                   forceDelete, recordOnly, dryRun,
-                                  TRUE, NULL, ctx, subPool.getPool()), );
+                                  allowMixedRev, NULL, ctx,
+                                  subPool.getPool()), );
 }
 
 void SVNClient::merge(const char *path, Revision &pegRevision,
                       std::vector<RevisionRange> *rangesToMerge,
                       const char *localPath, bool forceDelete, svn_depth_t depth,
                       bool ignoreMergeinfo, bool diffIgnoreAncestry,
-                      bool dryRun, bool recordOnly)
+                      bool dryRun, bool allowMixedRev, bool recordOnly)
 {
     SVN::Pool subPool(pool);
     SVN_JNI_NULL_PTR_EX(path, "path", );
@@ -716,7 +717,7 @@ void SVNClient::merge(const char *path, 
                                       depth,
                                       ignoreMergeinfo, diffIgnoreAncestry,
                                       forceDelete, recordOnly,
-                                      dryRun, TRUE, NULL, ctx,
+                                      dryRun, allowMixedRev, NULL, ctx,
                                       subPool.getPool()), );
 }
 

Modified: subversion/trunk/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNClient.h?rev=1567602&r1=1567601&r2=1567602&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNClient.h Wed Feb 12 11:45:01 2014
@@ -105,12 +105,12 @@ class SVNClient :public SVNBase
              const char *path2, Revision &revision2,
              const char *localPath, bool forceDelete, svn_depth_t depth,
              bool ignoreMergeinfo, bool diffIgnoreAncestry,
-             bool dryRun, bool recordOnly);
+             bool dryRun, bool allowMixedRev, bool recordOnly);
   void merge(const char *path, Revision &pegRevision,
              std::vector<RevisionRange> *rangesToMerge,
              const char *localPath, bool forceDelete, svn_depth_t depth,
              bool ignoreMergeinfo, bool diffIgnoreAncestry,
-             bool dryRun, bool recordOnly);
+             bool dryRun, bool allowMixedRev, bool recordOnly);
   void mergeReintegrate(const char *path, Revision &pegRevision,
                         const char *localPath, bool dryRun);
   void doImport(const char *path, const char *url, CommitMessage *message,

Modified: subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1567602&r1=1567601&r2=1567602&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Wed Feb 12 11:45:01 2014
@@ -814,11 +814,11 @@ Java_org_apache_subversion_javahl_SVNCli
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZZ
+Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZZZ
 (JNIEnv *env, jobject jthis, jstring jpath1, jobject jrevision1,
  jstring jpath2, jobject jrevision2, jstring jlocalPath, jboolean jforceDelete,
  jobject jdepth, jboolean jignoreMergeinfo, jboolean jdiffIgnoreAncestry,
- jboolean jdryRun, jboolean jrecordOnly)
+ jboolean jdryRun, jboolean jallowMixedRev, jboolean jrecordOnly)
 {
   JNIEntry(SVNClient, merge);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -853,15 +853,16 @@ Java_org_apache_subversion_javahl_SVNCli
             jignoreMergeinfo ? true:false,
             jdiffIgnoreAncestry ? true:false,
             jdryRun ? true:false,
+            jallowMixedRev ? true:false,
             jrecordOnly ? true:false);
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_util_List_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZZ
+Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_util_List_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZZZ
 (JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
  jobject jranges, jstring jlocalPath, jboolean jforceDelete, jobject jdepth,
  jboolean jignoreMergeinfo, jboolean jdiffIgnoreAncestry,
- jboolean jdryRun, jboolean jrecordOnly)
+ jboolean jdryRun, jboolean jallowMixedRev, jboolean jrecordOnly)
 {
   JNIEntry(SVNClient, merge);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -912,6 +913,7 @@ Java_org_apache_subversion_javahl_SVNCli
             jignoreMergeinfo ? true:false,
             jdiffIgnoreAncestry ? true:false,
             jdryRun ? true:false,
+            jallowMixedRev ? true:false,
             jrecordOnly ? true:false);
 }
 

Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1567602&r1=1567601&r2=1567602&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Wed Feb 12 11:45:01 2014
@@ -544,6 +544,33 @@ public interface ISVNClient
      * @param ignoreMergeinfo ignore merge history, treat sources as unrelated
      * @param diffIgnoreAncestry always treat source files as related
      * @param dryRun         do not change anything
+     * @param allowMixedRev  allow merging into a mixed-revision working copy
+     * @param recordOnly     record mergeinfo but do not run merge
+     * @throws ClientException
+     * @since 1.9
+     */
+    void merge(String path1, Revision revision1, String path2,
+               Revision revision2, String localPath, boolean force, Depth depth,
+               boolean ignoreMergeinfo, boolean diffIgnoreAncestry,
+               boolean dryRun, boolean allowMixedRev, boolean recordOnly)
+            throws ClientException;
+
+    /**
+     * Merge changes from two paths into a new local path.
+     * <p>
+     * <b>Note:</b> Behaves like the 1.9 version with allowMixedRev
+     *              always set to <code>true</code>.
+     *
+     * @param path1          first path or url
+     * @param revision1      first revision
+     * @param path2          second path or url
+     * @param revision2      second revision
+     * @param localPath      target local path
+     * @param force          overwrite local changes
+     * @param depth          how deep to traverse into subdirectories
+     * @param ignoreMergeinfo ignore merge history, treat sources as unrelated
+     * @param diffIgnoreAncestry always treat source files as related
+     * @param dryRun         do not change anything
      * @param recordOnly     record mergeinfo but do not run merge
      * @throws ClientException
      * @since 1.8
@@ -589,6 +616,33 @@ public interface ISVNClient
      * @param ignoreMergeinfo ignore merge history, treat sources as unrelated
      * @param diffIgnoreAncestry always treat source files as related
      * @param dryRun        do not change anything
+     * @param allowMixedRev  allow merging into a mixed-revision working copy
+     * @param recordOnly    record mergeinfo but do not run merge
+     * @throws ClientException
+     * @since 1.9
+     */
+    void merge(String path, Revision pegRevision, List<RevisionRange> revisions,
+               String localPath, boolean force, Depth depth,
+               boolean ignoreMergeinfo, boolean diffIgnoreAncestry,
+               boolean dryRun, boolean allowMixedRev, boolean recordOnly)
+             throws ClientException;
+
+    /**
+     * Merge set of revisions into a new local path.
+     * <p>
+     * <b>Note:</b> Behaves like the 1.9 version with allowMixedRev
+     *              always set to <code>true</code>.
+     *
+     * @param path          path or url
+     * @param pegRevision   revision to interpret path
+     * @param revisions     revisions to merge; may be null, indicating that
+     *                      the optimal range should be determined automatcially
+     * @param localPath     target local path
+     * @param force         overwrite local changes
+     * @param depth         how deep to traverse into subdirectories
+     * @param ignoreMergeinfo ignore merge history, treat sources as unrelated
+     * @param diffIgnoreAncestry always treat source files as related
+     * @param dryRun        do not change anything
      * @param recordOnly    record mergeinfo but do not run merge
      * @throws ClientException
      * @since 1.8

Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1567602&r1=1567601&r2=1567602&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Wed Feb 12 11:45:01 2014
@@ -296,11 +296,24 @@ public class SVNClient implements ISVNCl
     public native void merge(String path1, Revision revision1, String path2,
                              Revision revision2, String localPath,
                              boolean force, Depth depth,
-                             boolean ignoreMergeinfo, boolean diffIgnoreAncestry,
-                             boolean dryRun, boolean recordOnly)
+                             boolean ignoreMergeinfo,
+                             boolean diffIgnoreAncestry,
+                             boolean dryRun, boolean allowMixedRev,
+                             boolean recordOnly)
             throws ClientException;
 
     public void merge(String path1, Revision revision1, String path2,
+                      Revision revision2, String localPath,
+                      boolean force, Depth depth,
+                      boolean ignoreMergeinfo, boolean diffIgnoreAncestry,
+                      boolean dryRun, boolean recordOnly)
+            throws ClientException
+    {
+        merge(path1, revision1, path2, revision2, localPath, force, depth,
+              ignoreMergeinfo, diffIgnoreAncestry, dryRun, true, recordOnly);
+    }
+
+    public void merge(String path1, Revision revision1, String path2,
                              Revision revision2, String localPath,
                              boolean force, Depth depth,
                              boolean ignoreAncestry, boolean dryRun,
@@ -314,12 +327,25 @@ public class SVNClient implements ISVNCl
     public native void merge(String path, Revision pegRevision,
                              List<RevisionRange> revisions, String localPath,
                              boolean force, Depth depth,
-                             boolean ignoreMergeinfo, boolean diffIgnoreAncestry,
-                             boolean dryRun, boolean recordOnly)
+                             boolean ignoreMergeinfo,
+                             boolean diffIgnoreAncestry,
+                             boolean dryRun, boolean allowMixedRev,
+                             boolean recordOnly)
             throws ClientException;
 
     public void merge(String path, Revision pegRevision,
                       List<RevisionRange> revisions, String localPath,
+                      boolean force, Depth depth,
+                      boolean ignoreMergeinfo, boolean diffIgnoreAncestry,
+                      boolean dryRun, boolean recordOnly)
+            throws ClientException
+    {
+        merge(path, pegRevision, revisions, localPath, force, depth,
+              ignoreMergeinfo, diffIgnoreAncestry, dryRun, true, recordOnly);
+    }
+
+    public void merge(String path, Revision pegRevision,
+                      List<RevisionRange> revisions, String localPath,
                       boolean force, Depth depth, boolean ignoreAncestry,
                       boolean dryRun, boolean recordOnly)
             throws ClientException