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/03/26 23:01:45 UTC

svn commit: r1582083 - in /subversion/branches/remote-only-status/subversion: bindings/javahl/native/ bindings/javahl/src/org/apache/subversion/javahl/ bindings/javahl/tests/org/apache/subversion/javahl/ svn/ tests/libsvn_client/

Author: brane
Date: Wed Mar 26 22:01:44 2014
New Revision: 1582083

URL: http://svn.apache.org/r1582083
Log:
On the remote-only-status branch: Replace all uses of svn_client_status5
in our code base, including JavaHL.

* subversion/svn/status-cmd.c
  (svn_cl__status): Call svn_client_status6 instead of svn_client_status5.

* subversion/tests/libsvn_client/client-test.c
  (test_funcs): Mark test_remote_only_status as work-in-progress.

[in subversion/bindings/javahl]
* src/org/apache/subversion/javahl/ISVNClient.java
  (ISVNClient.status): Add new overload and deprecate existing method.
* src/org/apache/subversion/javahl/SVNClient.java
  (ISVNClient.status): Update native declaration, implement deprecated method.
* native/SVNClient.h
  (SVNClient::status): Add new parameters.
* native/SVNClient.cpp
  (SVNClient::status): Update signature.
   Call svn_client_status6 instead of svn_client_status5.
* native/org_apache_subversion_javahl_SVNClient.cpp
  (Java_org_apache_subversion_javahl_SVNClient_status): Update signature
   and call to SVNClient::status.

* tests/org/apache/subversion/javahl/BasicTests.java:
   Update all uses of ISVNClient.status.

Modified:
    subversion/branches/remote-only-status/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/branches/remote-only-status/subversion/bindings/javahl/native/SVNClient.h
    subversion/branches/remote-only-status/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
    subversion/branches/remote-only-status/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    subversion/branches/remote-only-status/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
    subversion/branches/remote-only-status/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/remote-only-status/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
    subversion/branches/remote-only-status/subversion/svn/status-cmd.c
    subversion/branches/remote-only-status/subversion/tests/libsvn_client/client-test.c

Modified: subversion/branches/remote-only-status/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/remote-only-status/subversion/bindings/javahl/native/SVNClient.cpp?rev=1582083&r1=1582082&r2=1582083&view=diff
==============================================================================
--- subversion/branches/remote-only-status/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/remote-only-status/subversion/bindings/javahl/native/SVNClient.cpp Wed Mar 26 22:01:44 2014
@@ -187,8 +187,9 @@ void SVNClient::list(const char *url, Re
 
 void
 SVNClient::status(const char *path, svn_depth_t depth,
-                  bool onServer, bool getAll, bool noIgnore,
-                  bool ignoreExternals, StringArray &changelists,
+                  bool onServer, bool ignoreLocal, bool getAll,
+                  bool noIgnore, bool ignoreExternals,
+                  bool depthAsSticky, StringArray &changelists,
                   StatusCallback *callback)
 {
     SVN::Pool subPool(pool);
@@ -207,11 +208,10 @@ SVNClient::status(const char *path, svn_
 
     rev.kind = svn_opt_revision_unspecified;
 
-    SVN_JNI_ERR(svn_client_status5(&youngest, ctx, checkedPath.c_str(),
-                                   &rev,
-                                   depth,
-                                   getAll, onServer, noIgnore, ignoreExternals,
-                                   FALSE,
+    SVN_JNI_ERR(svn_client_status6(&youngest, ctx, checkedPath.c_str(),
+                                   &rev, depth,
+                                   getAll, onServer, ignoreLocal,
+                                   noIgnore, ignoreExternals, depthAsSticky,
                                    changelists.array(subPool),
                                    StatusCallback::callback, callback,
                                    subPool.getPool()), );

Modified: subversion/branches/remote-only-status/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/remote-only-status/subversion/bindings/javahl/native/SVNClient.h?rev=1582083&r1=1582082&r2=1582083&view=diff
==============================================================================
--- subversion/branches/remote-only-status/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/remote-only-status/subversion/bindings/javahl/native/SVNClient.h Wed Mar 26 22:01:44 2014
@@ -169,9 +169,11 @@ class SVNClient :public SVNBase
                              StringArray &changelists);
   void getChangelists(const char *path, StringArray *changelists,
                       svn_depth_t depth, ChangelistCallback *callback);
-  void status(const char *path, svn_depth_t depth, bool onServer,
-              bool getAll, bool noIgnore, bool ignoreExternals,
-              StringArray &changelists, StatusCallback *callback);
+  void status(const char *path, svn_depth_t depth,
+              bool onServer, bool ignoreLocal, bool getAll,
+              bool noIgnore, bool ignoreExternals,
+              bool depthAsSticky, StringArray &changelists,
+              StatusCallback *callback);
   void list(const char *url, Revision &revision, Revision &pegRevision,
             svn_depth_t depth, int direntFields, bool fetchLocks,
             ListCallback *callback);

Modified: subversion/branches/remote-only-status/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/remote-only-status/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1582083&r1=1582082&r2=1582083&view=diff
==============================================================================
--- subversion/branches/remote-only-status/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/remote-only-status/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Wed Mar 26 22:01:44 2014
@@ -184,8 +184,9 @@ Java_org_apache_subversion_javahl_SVNCli
 JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_status
 (JNIEnv *env, jobject jthis, jstring jpath, jobject jdepth,
- jboolean jonServer, jboolean jgetAll, jboolean jnoIgnore,
- jboolean jignoreExternals, jobject jchangelists,
+ jboolean jonServer, jboolean jignoreLocal, jboolean jgetAll,
+ jboolean jnoIgnore, jboolean jignoreExternals,
+ jboolean jdepthAsSticky, jobject jchangelists,
  jobject jstatusCallback)
 {
   JNIEntry(SVNClient, status);
@@ -203,9 +204,9 @@ Java_org_apache_subversion_javahl_SVNCli
 
   StatusCallback callback(jstatusCallback);
   cl->status(path, EnumMapper::toDepth(jdepth),
-             jonServer ? true:false,
-             jgetAll ? true:false, jnoIgnore ? true:false,
-             jignoreExternals ? true:false, changelists, &callback);
+             bool(jonServer), bool(jignoreLocal), bool(jgetAll),
+             bool(jnoIgnore), bool(jignoreExternals),
+             bool(jdepthAsSticky), changelists, &callback);
 }
 
 JNIEXPORT void JNICALL

Modified: subversion/branches/remote-only-status/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/remote-only-status/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1582083&r1=1582082&r2=1582083&view=diff
==============================================================================
--- subversion/branches/remote-only-status/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/remote-only-status/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Wed Mar 26 22:01:44 2014
@@ -79,16 +79,38 @@ public interface ISVNClient
     public boolean isAdminDirectory(String name);
 
     /**
-     * List a directory or file of the working copy.
+     * Return the status of the working copy and maybe repository.
      *
      * @param path        Path to explore.
      * @param depth       How deep to recurse into subdirectories.
      * @param onServer    Request status information from server.
+     * @param ignoreLocal Ignore local modifications; only used when
+     *                    <code>onServer</code> is set.
      * @param getAll      get status for uninteresting (unchanged) files.
      * @param noIgnore    get status for normaly ignored files and directories.
      * @param ignoreExternals if externals are ignored during status
+     * @param depthAsSticky When set, interpret <code>depth</code> as
+     *                      the ambient depth of the working copy.
      * @param changelists changelists to filter by
+     * @since 1.9
+     */
+    void status(String path, Depth depth,
+                boolean onServer, boolean ignoreLocal,
+                boolean getAll, boolean noIgnore,
+                boolean ignoreExternals, boolean depthAsSticky,
+                Collection<String> changelists, StatusCallback callback)
+            throws ClientException;
+
+    /**
+     * Return information about the status of the working copy and
+     * maybe repository.
+     * <p>
+     * Behaves like the 1.9 version with
+     *     <code>ignoreLocal = * false</code> and
+     *     <code>depthAsSticky = false</code>.
+     * @deprecated
      */
+    @Deprecated
     void status(String path, Depth depth, boolean onServer,
                 boolean getAll, boolean noIgnore, boolean ignoreExternals,
                 Collection<String> changelists, StatusCallback callback)

Modified: subversion/branches/remote-only-status/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/remote-only-status/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1582083&r1=1582082&r2=1582083&view=diff
==============================================================================
--- subversion/branches/remote-only-status/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/remote-only-status/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Wed Mar 26 22:01:44 2014
@@ -121,13 +121,26 @@ public class SVNClient implements ISVNCl
     @Deprecated
     public native String getLastPath();
 
-    public native void status(String path, Depth depth, boolean onServer,
+    public native void status(String path, Depth depth,
+                              boolean onServer, boolean ignoreLocal,
                               boolean getAll, boolean noIgnore,
-                              boolean ignoreExternals,
+                              boolean ignoreExternals, boolean depthAsSticky,
                               Collection<String> changelists,
                               StatusCallback callback)
             throws ClientException;
 
+    @Deprecated
+    public void status(String path, Depth depth, boolean onServer,
+                       boolean getAll, boolean noIgnore,
+                       boolean ignoreExternals,
+                       Collection<String> changelists,
+                       StatusCallback callback)
+            throws ClientException
+    {
+        status(path, depth, onServer, false, getAll, noIgnore,
+               ignoreExternals, false, changelists, callback);
+    }
+
     public native void list(String url, Revision revision,
                             Revision pegRevision, Depth depth, int direntFields,
                             boolean fetchLocks, ListCallback callback)

Modified: subversion/branches/remote-only-status/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/remote-only-status/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1582083&r1=1582082&r2=1582083&view=diff
==============================================================================
--- subversion/branches/remote-only-status/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/remote-only-status/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Wed Mar 26 22:01:44 2014
@@ -315,8 +315,9 @@ public class BasicTests extends SVNTests
         File fileC = new File(thisTest.getWorkingCopy() + "/A", "foo.c");
 
         MyStatusCallback statusCallback = new MyStatusCallback();
-        client.status(fileToSVNPath(fileC, false), Depth.unknown, false, true,
-                    false, false, null, statusCallback);
+        client.status(fileToSVNPath(fileC, false), Depth.unknown,
+                      false, false, true, false, false, false,
+                      null, statusCallback);
 
         final int statusCount = statusCallback.getStatusArray().length;
         if (statusCount == 1)
@@ -401,7 +402,8 @@ public class BasicTests extends SVNTests
 
         statusCallback = new MyStatusCallback();
         client.status(thisTest.getWCPath() + "/A/D/G/rho", Depth.immediates,
-                        false, true, false, false, null, statusCallback);
+                      false, false, true, false, false, false,
+                      null, statusCallback);
         status = statusCallback.getStatusArray()[0];
         long rhoCommitDate = status.getLastChangedDate().getTime();
         long rhoCommitRev = rev;
@@ -438,7 +440,8 @@ public class BasicTests extends SVNTests
                 + "modification to tau");
         statusCallback = new MyStatusCallback();
         client.status(thisTest.getWCPath() + "/A/D/G/tau", Depth.immediates,
-                      false, true, false, false, null, statusCallback);
+                      false, false, true, false, false, false,
+                      null, statusCallback);
         status = statusCallback.getStatusArray()[0];
         long tauCommitDate = status.getLastChangedDate().getTime();
         long tauCommitRev = rev;
@@ -467,7 +470,8 @@ public class BasicTests extends SVNTests
         thisTest.getWc().addItem("A/B/I", null);
         statusCallback = new MyStatusCallback();
         client.status(thisTest.getWCPath() + "/A/B/I", Depth.immediates,
-                    false, true, false, false, null, statusCallback);
+                      false, false, true, false, false, false,
+                      null, statusCallback);
         status = statusCallback.getStatusArray()[0];
         long ICommitDate = status.getLastChangedDate().getTime();
         long ICommitRev = rev;
@@ -502,7 +506,8 @@ public class BasicTests extends SVNTests
         thisTest.getWc().addItem("A/D/H/nu", "This is the file 'nu'.");
         statusCallback = new MyStatusCallback();
         client.status(thisTest.getWCPath() + "/A/D/H/nu", Depth.immediates,
-                    false, true, false, false, null, statusCallback);
+                      false, false, true, false, false, false,
+                      null, statusCallback);
         status = statusCallback.getStatusArray()[0];
         long nuCommitDate = status.getLastChangedDate().getTime();
         long nuCommitRev = rev;
@@ -519,7 +524,8 @@ public class BasicTests extends SVNTests
         thisTest.getWc().setItemWorkingCopyRevision("A/B/F", rev);
         statusCallback = new MyStatusCallback();
         client.status(thisTest.getWCPath() + "/A/B/F", Depth.immediates,
-                    false, true, false, false, null, statusCallback);
+                      false, false, true, false, false, false,
+                      null, statusCallback);
         status = statusCallback.getStatusArray()[0];
         long FCommitDate = status.getLastChangedDate().getTime();
         long FCommitRev = rev;
@@ -550,7 +556,8 @@ public class BasicTests extends SVNTests
                                  "This is the replacement file 'chi'.");
         statusCallback = new MyStatusCallback();
         client.status(thisTest.getWCPath() + "/A/D/H/chi", Depth.immediates,
-                    false, true, false, false, null, statusCallback);
+                      false, false, true, false, false, false,
+                      null, statusCallback);
         status = statusCallback.getStatusArray()[0];
         long chiCommitDate = status.getLastChangedDate().getTime();
         long chiCommitRev = rev;
@@ -601,7 +608,8 @@ public class BasicTests extends SVNTests
         assertEquals("wrong revision number from commit", rev, expectedRev++);
         statusCallback = new MyStatusCallback();
         client.status(thisTest.getWCPath() + "/A/D/H/psi", Depth.immediates,
-                      false, true, false, false, null, statusCallback);
+                      false, false, true, false, false, false,
+                      null, statusCallback);
         status = statusCallback.getStatusArray()[0];
         long psiCommitDate = status.getLastChangedDate().getTime();
         long psiCommitRev = rev;
@@ -1075,7 +1083,8 @@ public class BasicTests extends SVNTests
 
         MyStatusCallback statusCallback = new MyStatusCallback();
         String statusPath = fileToSVNPath(new File(thisTest.getWCPath() + "/A/B"), true);
-        client.status(statusPath, Depth.infinity, false, false, false, true,
+        client.status(statusPath, Depth.infinity,
+                      false, false, false, false, true, false,
                       null, statusCallback);
         Status[] statusList = statusCallback.getStatusArray();
         assertEquals(statusPath + "/F/alpha",
@@ -2345,8 +2354,9 @@ public class BasicTests extends SVNTests
         assertTrue(changelists.equals(cl));
         // Does status report this changelist?
         MyStatusCallback statusCallback = new MyStatusCallback();
-        client.status(path, Depth.immediates, false, false, false, false,
-                    null, statusCallback);
+        client.status(path, Depth.immediates,
+                      false, false, false, false, false, false,
+                      null, statusCallback);
         Status[] status = statusCallback.getStatusArray();
         assertEquals(status[0].getChangelist(), changelistName);
 

Modified: subversion/branches/remote-only-status/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/remote-only-status/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=1582083&r1=1582082&r2=1582083&view=diff
==============================================================================
--- subversion/branches/remote-only-status/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java (original)
+++ subversion/branches/remote-only-status/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java Wed Mar 26 22:01:44 2014
@@ -793,7 +793,8 @@ class SVNTests extends TestCase
         {
             MyStatusCallback statusCallback = new MyStatusCallback();
             client.status(workingCopy.getAbsolutePath(), Depth.unknown,
-                          checkRepos, true, true, false, null, statusCallback);
+                          checkRepos, false, true, true, false, false,
+                          null, statusCallback);
             wc.check(statusCallback.getStatusArray(),
                     workingCopy.getAbsolutePath(), checkRepos);
         }

Modified: subversion/branches/remote-only-status/subversion/svn/status-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/remote-only-status/subversion/svn/status-cmd.c?rev=1582083&r1=1582082&r2=1582083&view=diff
==============================================================================
--- subversion/branches/remote-only-status/subversion/svn/status-cmd.c (original)
+++ subversion/branches/remote-only-status/subversion/svn/status-cmd.c Wed Mar 26 22:01:44 2014
@@ -345,10 +345,11 @@ svn_cl__status(apr_getopt_t *os,
 
       /* Retrieve a hash of status structures with the information
          requested by the user. */
-      SVN_ERR(svn_cl__try(svn_client_status5(&repos_rev, ctx, target, &rev,
+      SVN_ERR(svn_cl__try(svn_client_status6(&repos_rev, ctx, target, &rev,
                                              opt_state->depth,
                                              opt_state->verbose,
                                              opt_state->update,
+                                             FALSE /* ignore_local_mods */,
                                              opt_state->no_ignore,
                                              opt_state->ignore_externals,
                                              FALSE /* depth_as_sticky */,

Modified: subversion/branches/remote-only-status/subversion/tests/libsvn_client/client-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/remote-only-status/subversion/tests/libsvn_client/client-test.c?rev=1582083&r1=1582082&r2=1582083&view=diff
==============================================================================
--- subversion/branches/remote-only-status/subversion/tests/libsvn_client/client-test.c (original)
+++ subversion/branches/remote-only-status/subversion/tests/libsvn_client/client-test.c Wed Mar 26 22:01:44 2014
@@ -997,8 +997,9 @@ static struct svn_test_descriptor_t test
     SVN_TEST_OPTS_PASS(test_youngest_common_ancestor, "test youngest_common_ancestor"),
     SVN_TEST_OPTS_PASS(test_suggest_mergesources,
                        "test svn_client_suggest_merge_sources"),
-    SVN_TEST_OPTS_XFAIL(test_remote_only_status,
-                        "test svn_client_status6 with ignore_local_mods"),
+    SVN_TEST_OPTS_WIMP(test_remote_only_status,
+                       "test svn_client_status6 with ignore_local_mods",
+                       "status editor does not ignore local mods yet"),
     SVN_TEST_NULL
   };