You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2012/10/30 21:03:39 UTC

svn commit: r1403849 [2/19] - in /subversion/branches/master-passphrase: ./ build/ build/ac-macros/ build/hudson/ contrib/server-side/fsfsfixer/ notes/ notes/api-errata/1.8/ notes/directory-index/ notes/obliterate/ notes/tree-conflicts/ subversion/bind...

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/native/ProplistCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/native/ProplistCallback.cpp?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/native/ProplistCallback.cpp (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/native/ProplistCallback.cpp Tue Oct 30 20:03:28 2012
@@ -54,7 +54,8 @@ ProplistCallback::callback(void *baton,
                            apr_pool_t *pool)
 {
   if (baton)
-    return ((ProplistCallback *)baton)->singlePath(path, prop_hash, pool);
+    return static_cast<ProplistCallback *>(baton)->singlePath(
+            path, prop_hash, pool);
 
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/native/ReposNotifyCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/native/ReposNotifyCallback.cpp?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/native/ReposNotifyCallback.cpp (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/native/ReposNotifyCallback.cpp Tue Oct 30 20:03:28 2012
@@ -49,7 +49,7 @@ ReposNotifyCallback::notify(void *baton,
                             apr_pool_t *pool)
 {
   if (baton)
-    ((ReposNotifyCallback *)baton)->onNotify(notify, pool);
+    static_cast<ReposNotifyCallback *>(baton)->onNotify(notify, pool);
 }
 
 /**

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNClient.cpp?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNClient.cpp Tue Oct 30 20:03:28 2012
@@ -44,6 +44,7 @@
 #include "StatusCallback.h"
 #include "ChangelistCallback.h"
 #include "ListCallback.h"
+#include "ImportFilterCallback.h"
 #include "JNIByteArray.h"
 #include "CommitMessage.h"
 #include "EnumMapper.h"
@@ -553,7 +554,9 @@ jlong SVNClient::doSwitch(const char *pa
 void SVNClient::doImport(const char *path, const char *url,
                          CommitMessage *message, svn_depth_t depth,
                          bool noIgnore, bool ignoreUnknownNodeTypes,
-                         RevpropTable &revprops, CommitCallback *callback)
+                         RevpropTable &revprops,
+                         ImportFilterCallback *ifCallback,
+                         CommitCallback *commitCallback)
 {
     SVN::Pool subPool(pool);
     SVN_JNI_NULL_PTR_EX(path, "path", );
@@ -567,10 +570,11 @@ void SVNClient::doImport(const char *pat
     if (ctx == NULL)
         return;
 
-    SVN_JNI_ERR(svn_client_import4(intPath.c_str(), intUrl.c_str(), depth,
+    SVN_JNI_ERR(svn_client_import5(intPath.c_str(), intUrl.c_str(), depth,
                                    noIgnore, ignoreUnknownNodeTypes,
                                    revprops.hash(subPool),
-                                   CommitCallback::callback, callback,
+                                   ImportFilterCallback::callback, ifCallback,
+                                   CommitCallback::callback, commitCallback,
                                    ctx, subPool.getPool()), );
 }
 
@@ -816,7 +820,8 @@ void SVNClient::getMergeinfoLog(int type
  * Get a property.
  */
 jbyteArray SVNClient::propertyGet(const char *path, const char *name,
-                                  Revision &revision, Revision &pegRevision)
+                                  Revision &revision, Revision &pegRevision,
+                                  StringArray &changelists)
 {
     SVN::Pool subPool(pool);
     SVN_JNI_NULL_PTR_EX(path, "path", NULL);
@@ -829,11 +834,11 @@ jbyteArray SVNClient::propertyGet(const 
         return NULL;
 
     apr_hash_t *props;
-    SVN_JNI_ERR(svn_client_propget4(&props, name,
+    SVN_JNI_ERR(svn_client_propget5(&props, NULL, name,
                                     intPath.c_str(), pegRevision.revision(),
                                     revision.revision(), NULL, svn_depth_empty,
-                                    NULL, ctx, subPool.getPool(),
-                                    subPool.getPool()),
+                                    changelists.array(subPool), ctx,
+                                    subPool.getPool(), subPool.getPool()),
                 NULL);
 
     apr_hash_index_t *hi;
@@ -1187,7 +1192,6 @@ void SVNClient::blame(const char *path, 
 {
     SVN::Pool subPool(pool);
     SVN_JNI_NULL_PTR_EX(path, "path", );
-    apr_pool_t *pool = subPool.getPool();
     Path intPath(path, subPool);
     SVN_JNI_ERR(intPath.error_occured(), );
 
@@ -1195,13 +1199,12 @@ void SVNClient::blame(const char *path, 
     if (ctx == NULL)
         return;
 
-    SVN_JNI_ERR(svn_client_blame5(intPath.c_str(), pegRevision.revision(),
-                                  revisionStart.revision(),
-                                  revisionEnd.revision(),
-                                  svn_diff_file_options_create(pool),
-                                  ignoreMimeType, includeMergedRevisions,
-                                  BlameCallback::callback, callback, ctx,
-                                  pool),
+    SVN_JNI_ERR(svn_client_blame5(
+          intPath.c_str(), pegRevision.revision(), revisionStart.revision(),
+          revisionEnd.revision(),
+          svn_diff_file_options_create(subPool.getPool()), ignoreMimeType,
+          includeMergedRevisions, BlameCallback::callback, callback, ctx,
+          subPool.getPool()),
         );
 }
 

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNClient.h?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNClient.h Tue Oct 30 20:03:28 2012
@@ -46,6 +46,7 @@ class LogMessageCallback;
 class InfoCallback;
 class CommitCallback;
 class ListCallback;
+class ImportFilterCallback;
 class StatusCallback;
 class OutputStream;
 class PatchCallback;
@@ -107,7 +108,8 @@ class SVNClient :public SVNBase
                         const char *localPath, bool dryRun);
   void doImport(const char *path, const char *url, CommitMessage *message,
                 svn_depth_t depth, bool noIgnore, bool ignoreUnknownNodeTypes,
-                RevpropTable &revprops, CommitCallback *callback);
+                RevpropTable &revprops, ImportFilterCallback *ifCallback,
+                CommitCallback *commitCallback);
   jlong doSwitch(const char *path, const char *url, Revision &revision,
                  Revision &pegRevision, svn_depth_t depth,
                  bool depthIsSticky, bool ignoreExternals,
@@ -171,7 +173,8 @@ class SVNClient :public SVNBase
                          bool lastChanged);
   void upgrade(const char *path);
   jbyteArray propertyGet(const char *path, const char *name,
-                         Revision &revision, Revision &pegRevision);
+                         Revision &revision, Revision &pegRevision,
+                         StringArray &changelists);
   void diff(const char *target1, Revision &revision1,
             const char *target2, Revision &revision2,
             const char *relativeToDir, OutputStream &outputStream,

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNRepos.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNRepos.cpp?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNRepos.cpp (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNRepos.cpp Tue Oct 30 20:03:28 2012
@@ -68,7 +68,7 @@ void SVNRepos::cancelOperation()
 svn_error_t *
 SVNRepos::checkCancel(void *cancelBaton)
 {
-  SVNRepos *that = (SVNRepos *)cancelBaton;
+  SVNRepos *that = static_cast<SVNRepos *>(cancelBaton);
   if (that->m_cancelOperation)
     return svn_error_create(SVN_ERR_CANCELLED, NULL,
                             _("Operation cancelled"));
@@ -248,7 +248,7 @@ void SVNRepos::dump(File &path, OutputSt
 }
 
 void SVNRepos::hotcopy(File &path, File &targetPath,
-                       bool cleanLogs)
+                       bool cleanLogs, bool incremental)
 {
   SVN::Pool requestPool;
 
@@ -264,9 +264,12 @@ void SVNRepos::hotcopy(File &path, File 
       return;
     }
 
-  SVN_JNI_ERR(svn_repos_hotcopy(path.getInternalStyle(requestPool),
-                                targetPath.getInternalStyle(requestPool),
-                                cleanLogs, requestPool.getPool()), );
+  SVN_JNI_ERR(svn_repos_hotcopy2(path.getInternalStyle(requestPool),
+                                 targetPath.getInternalStyle(requestPool),
+                                 cleanLogs, incremental,
+                                 checkCancel, this /* cancel callback/baton */,
+                                 requestPool.getPool()),
+             );
 }
 
 static void

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNRepos.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNRepos.h?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNRepos.h (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/native/SVNRepos.h Tue Oct 30 20:03:28 2012
@@ -58,7 +58,7 @@ class SVNRepos : public SVNBase
   void listUnusedDBLogs(File &path,
                         MessageReceiver &messageReceiver);
   void listDBLogs(File &path, MessageReceiver &messageReceiver);
-  void hotcopy(File &path, File &targetPath, bool cleanLogs);
+  void hotcopy(File &path, File &targetPath, bool cleanLogs, bool incremental);
   void dump(File &path, OutputStream &dataOut, Revision &revsionStart,
             Revision &RevisionEnd, bool incremental, bool useDeltas,
             ReposNotifyCallback *notifyCallback);

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/native/StatusCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/native/StatusCallback.cpp?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/native/StatusCallback.cpp (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/native/StatusCallback.cpp Tue Oct 30 20:03:28 2012
@@ -55,7 +55,8 @@ StatusCallback::callback(void *baton,
                          apr_pool_t *pool)
 {
   if (baton)
-    return ((StatusCallback *)baton)->doStatus(local_abspath, status, pool);
+    return static_cast<StatusCallback *>(baton)->doStatus(
+            local_abspath, status, pool);
 
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Tue Oct 30 20:03:28 2012
@@ -47,6 +47,7 @@
 #include "InfoCallback.h"
 #include "StatusCallback.h"
 #include "ListCallback.h"
+#include "ImportFilterCallback.h"
 #include "ChangelistCallback.h"
 #include "StringArray.h"
 #include "RevpropTable.h"
@@ -712,7 +713,7 @@ JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_doImport
 (JNIEnv *env, jobject jthis, jstring jpath, jstring jurl, jobject jdepth,
  jboolean jnoIgnore, jboolean jignoreUnknownNodeTypes, jobject jrevpropTable,
- jobject jmessage, jobject jcallback)
+ jobject jimportFilterCallback, jobject jmessage, jobject jcommitCallback)
 {
   JNIEntry(SVNClient, doImport);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -737,11 +738,14 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  CommitCallback callback(jcallback);
+  ImportFilterCallback importFilterCallback(jimportFilterCallback);
+  CommitCallback commitCallback(jcommitCallback);
+
   cl->doImport(path, url, &message, EnumMapper::toDepth(jdepth),
                jnoIgnore ? true : false,
                jignoreUnknownNodeTypes ? true : false, revprops,
-               jcallback ? &callback : NULL);
+               jimportFilterCallback ? &importFilterCallback : NULL,
+               jcommitCallback ? &commitCallback : NULL);
 }
 
 JNIEXPORT jobject JNICALL
@@ -1080,7 +1084,7 @@ Java_org_apache_subversion_javahl_SVNCli
 JNIEXPORT jbyteArray JNICALL
 Java_org_apache_subversion_javahl_SVNClient_propertyGet
 (JNIEnv *env, jobject jthis, jstring jpath, jstring jname, jobject jrevision,
- jobject jpegRevision)
+ jobject jpegRevision, jobject jchangelists)
 {
   JNIEntry(SVNClient, propertyGet);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1105,7 +1109,11 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return NULL;
 
-  return cl->propertyGet(path, name, revision, pegRevision);
+  StringArray changelists(jchangelists);
+  if (JNIUtil::isExceptionThrown())
+    return NULL;
+
+  return cl->propertyGet(path, name, revision, pegRevision, changelists);
 }
 
 JNIEXPORT jobject JNICALL

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp Tue Oct 30 20:03:28 2012
@@ -170,7 +170,7 @@ Java_org_apache_subversion_javahl_SVNRep
 JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNRepos_hotcopy
 (JNIEnv *env, jobject jthis, jobject jpath, jobject jtargetPath,
- jboolean jcleanLogs)
+ jboolean jcleanLogs, jboolean jincremental)
 {
   JNIEntry(SVNRepos, hotcopy);
   SVNRepos *cl = SVNRepos::getCppObject(jthis);
@@ -188,7 +188,8 @@ Java_org_apache_subversion_javahl_SVNRep
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->hotcopy(path, targetPath, jcleanLogs ? true : false);
+  cl->hotcopy(path, targetPath, jcleanLogs ? true : false,
+              jincremental ? true : false);
 }
 
 JNIEXPORT void JNICALL

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Tue Oct 30 20:03:28 2012
@@ -406,6 +406,13 @@ public interface ISVNClient
     void doImport(String path, String url, Depth depth,
                   boolean noIgnore, boolean ignoreUnknownNodeTypes,
                   Map<String, String> revpropTable,
+                  ImportFilterCallback importFilterCallback,
+                  CommitMessageCallback handler, CommitCallback commitCallback)
+            throws ClientException;
+
+    void doImport(String path, String url, Depth depth,
+                  boolean noIgnore, boolean ignoreUnknownNodeTypes,
+                  Map<String, String> revpropTable,
                   CommitMessageCallback handler, CommitCallback callback)
             throws ClientException;
 
@@ -719,6 +726,10 @@ public interface ISVNClient
      * @throws ClientException
      */
     byte[] propertyGet(String path, String name, Revision revision,
+                       Revision pegRevision, Collection<String> changelists)
+            throws ClientException;
+
+    byte[] propertyGet(String path, String name, Revision revision,
                        Revision pegRevision)
             throws ClientException;
 

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java Tue Oct 30 20:03:28 2012
@@ -113,6 +113,9 @@ public interface ISVNRepos {
 	 * @throws ClientException  throw in case of problem
 	 */
 	public abstract void hotcopy(File path, File targetPath,
+			boolean cleanLogs, boolean incremental) throws ClientException;
+
+	public abstract void hotcopy(File path, File targetPath,
 			boolean cleanLogs) throws ClientException;
 
 	/**

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Tue Oct 30 20:03:28 2012
@@ -230,9 +230,22 @@ public class SVNClient implements ISVNCl
                                 boolean noIgnore,
                                 boolean ignoreUnknownNodeTypes,
                                 Map<String, String> revpropTable,
-                                CommitMessageCallback handler, CommitCallback callback)
+                                ImportFilterCallback importFilterCallback,
+                                CommitMessageCallback handler,
+                                CommitCallback commitCallback)
             throws ClientException;
 
+    public void doImport(String path, String url, Depth depth, boolean noIgnore,
+                         boolean ignoreUnknownNodeTypes,
+                         Map<String, String> revpropTable,
+                         CommitMessageCallback handler,
+                         CommitCallback callback)
+            throws ClientException
+    {
+        doImport(path, url, depth, noIgnore, ignoreUnknownNodeTypes,
+                 revpropTable, null, handler, callback);
+    }
+
     public native Set<String> suggestMergeSources(String path,
                                                   Revision pegRevision)
             throws SubversionException;
@@ -366,8 +379,16 @@ public class SVNClient implements ISVNCl
                                       boolean force)
             throws ClientException;
 
+    public byte[] propertyGet(String path, String name,
+                              Revision revision, Revision pegRevision)
+            throws ClientException
+    {
+        return propertyGet(path, name, revision, pegRevision, null);
+    }
+
     public native byte[] propertyGet(String path, String name,
-                                     Revision revision, Revision pegRevision)
+                                     Revision revision, Revision pegRevision,
+                                     Collection<String> changelists)
             throws ClientException;
 
     public byte[] fileContent(String path, Revision revision,

Modified: subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java (original)
+++ subversion/branches/master-passphrase/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java Tue Oct 30 20:03:28 2012
@@ -130,7 +130,14 @@ public class SVNRepos implements ISVNRep
      * @throws ClientException  throw in case of problem
      */
     public native void hotcopy(File path, File targetPath,
-                               boolean cleanLogs) throws ClientException;
+                               boolean cleanLogs, boolean incremental)
+            throws ClientException;
+
+    public void hotcopy(File path, File targetPath,
+                        boolean cleanLogs) throws ClientException
+    {
+        hotcopy(path, targetPath, cleanLogs, false);
+    }
 
     /**
      * list all logfiles (BDB) in use or not)

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/core.i
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/core.i?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/core.i (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/core.i Tue Oct 30 20:03:28 2012
@@ -658,14 +658,14 @@ svn_swig_pl_set_current_pool (apr_pool_t
                   )
 #endif
 
-#ifdef SWIGRUBY
+#ifndef SWIGPERL
 %callback_typemap(svn_config_enumerator2_t callback, void *baton,
-                  ,
+                  svn_swig_py_config_enumerator2,
                   ,
                   svn_swig_rb_config_enumerator)
 
 %callback_typemap(svn_config_section_enumerator2_t callback, void *baton,
-                  ,
+                  svn_swig_py_config_section_enumerator2,
                   ,
                   svn_swig_rb_config_section_enumerator)
 #endif

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/include/svn_containers.swg
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/include/svn_containers.swg?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/include/svn_containers.swg (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/include/svn_containers.swg Tue Oct 30 20:03:28 2012
@@ -507,7 +507,11 @@
   }
 }
 #endif
-
+#ifdef SWIGPERL
+%typemap(argout) apr_array_header_t **result_revs {
+  %append_output(svn_swig_pl_revnums_to_list(*$1));
+}
+#endif
 #ifdef SWIGRUBY
 %typemap(argout) apr_array_header_t **result_revs {
   %append_output(svn_swig_rb_apr_array_to_array_svn_rev(*$1));

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/include/svn_types.swg?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/include/svn_types.swg Tue Oct 30 20:03:28 2012
@@ -793,23 +793,38 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
    Callback: svn_commit_callback2_t
    svn_ra get_commit_editor2()
    svn_repos_get_commit_editor4()
+   svn_client_mkdir4() 
+   svn_client_delete4() 
+   svn_client_import4() 
+   svn_client_commit5() 
+   svn_client_copy6() 
+   svn_client_move6() 
+   svn_client_propset_remote() 
 */
 
+#ifdef SWIGPERL
+%typemap(in) (svn_commit_callback2_t commit_callback, void *commit_baton) {
+    $1 = svn_swig_pl_thunk_commit_callback2;
+    $2 = (void *)$input;
+    svn_swig_pl_hold_ref_in_pool (_global_pool, $input);
+};
+#endif
+
 #ifdef SWIGRUBY
-%typemap(in) (svn_commit_callback2_t callback, void *callback_baton)
+%typemap(in) (svn_commit_callback2_t commit_callback, void *commit_baton)
 {
   $1 = svn_swig_rb_commit_callback2;
   $2 = (void *)svn_swig_rb_make_baton($input, _global_svn_swig_rb_pool);
 };
 
-%typemap(argout) (svn_commit_callback2_t callback, void *callback_baton)
+%typemap(argout) (svn_commit_callback2_t commit_callback, void *commit_baton)
 {
   svn_swig_rb_set_baton($result, (VALUE)$2);
 };
 #endif
 
 #ifdef SWIGPYTHON
-%typemap(in) (svn_commit_callback2_t callback, void *callback_baton)
+%typemap(in) (svn_commit_callback2_t commit_callback, void *commit_baton)
 {
   $1 = svn_swig_py_commit_callback2;
   $2 = (void *)$input;

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Tue Oct 30 20:03:28 2012
@@ -229,6 +229,12 @@ static SV *convert_int(int value, void *
   return sv_2mortal(newSViv(value));
 }
 
+static SV *convert_svn_revnum_t(svn_revnum_t revnum, void *dummy)
+{
+  return sv_2mortal(newSViv((long int)revnum));
+
+}
+
 /* c -> perl hash convertors */
 static SV *convert_hash(apr_hash_t *hash, element_converter_t converter_func,
                         void *ctx)
@@ -301,6 +307,12 @@ SV *svn_swig_pl_convert_array(const apr_
                        tinfo);
 }
 
+SV *svn_swig_pl_revnums_to_list(const apr_array_header_t *array)
+{
+    return convert_array(array, (element_converter_t)convert_svn_revnum_t,
+                         NULL);
+} 
+
 /* put the va_arg in stack and invoke caller_func with func.
    fmt:
    * O: perl object
@@ -907,6 +919,22 @@ svn_error_t *svn_swig_pl_thunk_commit_ca
     return SVN_NO_ERROR;
 }
 
+svn_error_t *svn_swig_pl_thunk_commit_callback2(const svn_commit_info_t *commit_info, 
+                                                void *baton,
+                                                apr_pool_t *pool)
+{
+    if (!SvOK((SV *)baton))
+        return SVN_NO_ERROR;
+
+    svn_swig_pl_callback_thunk(CALL_SV, baton, NULL,
+                               "SS",
+                               commit_info, _SWIG_TYPE("svn_commit_info_t *"),
+                               pool, POOLINFO);
+
+    return SVN_NO_ERROR;
+}
+
+
 /* Wrap RA */
 
 static svn_error_t * thunk_open_tmp_file(apr_file_t **fp,
@@ -1288,6 +1316,54 @@ void svn_swig_pl_status_func(void *baton
 
 }
 
+/* Thunked version of svn_wc_status_func2_t callback type. */
+void svn_swig_pl_status_func2(void *baton,
+                              const char *path,
+                              svn_wc_status2_t *status)
+{
+  swig_type_info *statusinfo = _SWIG_TYPE("svn_wc_status2 _t *");
+
+  if (!SvOK((SV *)baton)) {
+    return;
+  }
+
+  svn_swig_pl_callback_thunk(CALL_SV, baton, NULL, "sS",
+                             path, status, statusinfo);
+
+}
+
+/* Thunked version of svn_wc_status_func3_t callback type. */
+svn_error_t *svn_swig_pl_status_func3(void *baton,
+                                      const char *path,
+                                      svn_wc_status2_t *status,
+                                      apr_pool_t *pool)
+{
+  SV *result;
+  svn_error_t *ret_val = SVN_NO_ERROR;
+
+  swig_type_info *statusinfo = _SWIG_TYPE("svn_wc_status2 _t *");
+
+  if (!SvOK((SV *)baton)) {
+    return ret_val;
+  }
+
+  svn_swig_pl_callback_thunk(CALL_SV, baton, &result, "sSS",
+                             path, status, statusinfo,
+                             pool, POOLINFO);
+
+  if (sv_derived_from(result, "_p_svn_error_t")) {
+    swig_type_info *errorinfo = _SWIG_TYPE("svn_error_t *");
+    if (SWIG_ConvertPtr(result, (void *)&ret_val, errorinfo, 0) < 0) {
+        SvREFCNT_dec(result);
+        croak("Unable to convert from SWIG Type");
+    }
+  }
+
+  SvREFCNT_dec(result);
+  return ret_val;
+}
+
+
 /* Thunked version of svn_client_blame_receiver_t callback type. */
 svn_error_t *svn_swig_pl_blame_func(void *baton,
                                     apr_int64_t line_no,

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h Tue Oct 30 20:03:28 2012
@@ -104,6 +104,8 @@ SV *svn_swig_pl_ints_to_list(const apr_a
 SV *svn_swig_pl_convert_array(const apr_array_header_t *array,
                               swig_type_info *tinfo);
 
+SV *svn_swig_pl_revnums_to_list(const apr_array_header_t *array);
+
 /* thunked log receiver function.  */
 svn_error_t * svn_swig_pl_thunk_log_receiver(void *py_receiver,
                                              apr_hash_t *changed_paths,
@@ -125,6 +127,11 @@ svn_error_t *svn_swig_pl_thunk_commit_ca
 					       const char *author,
 					       void *baton);
 
+/* thunked commit editor callback2. */
+svn_error_t *svn_swig_pl_thunk_commit_callback2(const svn_commit_info_t *commit_info,
+                                                void *baton,
+                                                apr_pool_t *pool);
+
 /* thunked repos_history callback. */
 svn_error_t *svn_swig_pl_thunk_history_func(void *baton,
                                             const char *path,
@@ -229,6 +236,18 @@ svn_error_t *svn_swig_pl_cancel_func(voi
 void svn_swig_pl_status_func(void *baton,
                              const char *path,
                              svn_wc_status_t *status);
+
+/* Thunked version of svn_wc_status_func2_t callback type. */
+void svn_swig_pl_status_func2(void *baton,
+                              const char *path,
+                              svn_wc_status2_t *status);
+
+/* Thunked version of svn_wc_status_func2_t callback type. */
+svn_error_t *svn_swig_pl_status_func3(void *baton,
+                                      const char *path,
+                                      svn_wc_status2_t *status,
+                                      apr_pool_t *pool);
+
 /* Thunked version of svn_client_blame_receiver_t callback type. */
 svn_error_t *svn_swig_pl_blame_func(void *baton,
                                     apr_int64_t line_no,

Propchange: subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Oct 30 20:03:28 2012
@@ -1,31 +1,32 @@
-ra_plugin.hi
-svn_fs.c
-_Client.bs
-ra_reporter.hi
-Makefile.wc
+MYMETA.yml
+Makefile
+Makefile.PL
 Makefile.client
+Makefile.delta
+Makefile.fs
+Makefile.old
+Makefile.ra
+Makefile.repos
+Makefile.wc
+_Client.bs
 _Core.bs
-_Repos.bs
-svn_repos.c
-svn_delta.c
-_Ra.bs
-modules
-core.c
+_Delta.bs
 _Fs.bs
+_Ra.bs
+_Repos.bs
 _Wc.bs
-Makefile
-Makefile.ra
-svn_wc.c
-Makefile.fs
-svn_client.c
-_Delta.bs
-delta_editor.hi
-Makefile.repos
-Makefile.delta
-pm_to_blib
 blib
-svn_ra.c
-Makefile.old
 blibdirs
-Makefile.PL
+core.c
+delta_editor.hi
+modules
+pm_to_blib
+ra_plugin.hi
+ra_reporter.hi
+svn_client.c
+svn_delta.c
 svn_diff.c
+svn_fs.c
+svn_ra.c
+svn_repos.c
+svn_wc.c

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Client.pm
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Client.pm?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Client.pm (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Client.pm Tue Oct 30 20:03:28 2012
@@ -9,10 +9,10 @@ my @_all_fns;
 BEGIN {
     @_all_fns =
         qw( version diff_summarize_dup create_context checkout3
-            checkout2 checkout update3 update2 update switch2 switch
-            add4 add3 add2 add mkdir3 mkdir2 mkdir delete3 delete2
+            checkout2 checkout update4 update3 update2 update switch2 switch
+            add4 add3 add2 add mkdir4 mkdir3 mkdir2 mkdir delete3 delete2
             delete import3 import2 import commit4 commit3 commit2
-            commit status3 status2 status log4 log3 log2 log blame4
+            commit status4 status3 status2 status log4 log3 log2 log blame4
             blame3 blame2 blame diff4 diff3 diff2 diff diff_peg4
             diff_peg3 diff_peg2 diff_peg diff_summarize2
             diff_summarize diff_summarize_peg2 diff_summarize_peg
@@ -254,14 +254,50 @@ sub new
 
 =item $ctx-E<gt>add($path, $recursive, $pool);
 
+Similar to $ctx-E<gt>add2(), but with $force always set to FALSE.
+
+=item $ctx-E<gt>add2($path, $recursive, $force, $ctx, $pool);
+
+Similar to $ctx-E<gt>add3(), but with $no_ignore always set to FALSE.
+
+=item $ctx-E<gt>add3($path, $recursive, $force, $no_ignore, $pool);
+
+Similar to $ctx-E<gt>add4(), but with $add_parents always set to FALSE and
+$depth set according to $recursive; if TRUE, then depth is
+$SVN::Depth::infinity, if FALSE, then $SVN::Depth::empty.
+
+=item $ctx-E<gt>add4($path, $depth, $force, $no_ignore, $add_parents, $pool);
+
 Schedule a working copy $path for addition to the repository.
 
-$path's parent must be under revision control already, but $path is not.
-If $recursive is set, then assuming $path is a directory, all of its
-contents will be scheduled for addition as well.
+If $depth is $SVN::Depth::empty, add just $path and nothing below it.  If
+$SVN::Depth::files, add $path and any file children of $path.  If 
+$SVN::Depth::immediates, add $path, any file children, and any immediate
+subdirectories (but nothing underneath those subdirectories).  If 
+$SVN::Depth::infinity, add $path and everything under it fully recursively.
+
+$path's parent must be under revision control already (unless $add_parents is
+TRUE), but $path is not.
+
+Unless $force is TRUE and $path is already under version control, returns an
+$SVN::Error::ENTRY_EXISTS object.  If $force is set, do not error on
+already-versioned items.  When used with $depth set to $SVN::Depth::infinity
+it will enter versioned directories; scheduling unversioned children. 
 
 Calls the notify callback for each added item.
 
+If $no_ignore is FALSE, don't add any file or directory (or recurse into any
+directory) that is unversioned and found by recursion (as opposed to being the
+explicit target $path) and whose name matches the svn:ignore property on its
+parent directory or the global-ignores list in $ctx->config.  If $no_ignore is
+TRUE, do include such files and directories.  (Note that an svn:ignore property
+can influence this behaviour only when recursing into an already versioned
+directory with $force).
+
+If $add_parents is TRUE, recurse up $path's directory and look for a versioned
+directory.  If found, add all intermediate paths between it and $path.  If not
+found return $SVN::Error::NO_VERSIONED_PARENT.
+
 Important: this is a B<scheduling> operation.  No changes will happen
 to the repository until a commit occurs.  This scheduling can be
 removed with $ctx-E<gt>revert().
@@ -299,12 +335,39 @@ because the desired revision can not be 
 
 =item $ctx-E<gt>checkout($url, $path, $revision, $recursive, $pool);
 
+Similar to $ctx-E<gt>checkout2(), but with $peg_revision always set to undef (unspecified) and $ignore_externals always set to FALSE.
+
+=item $ctx-E<gt>checkout2($url, $path, $peg_revision, $revision, $recursive, $ignore_externals, $pool);
+
+Similar to $ctx-E<gt>checkout3(), but with $allow_unver_obstructions always set
+to FALSE, and $depth set according to $recurse: if $recurse is TRUE, $depth is
+$SVN::Depth::infinity, if $recurse is FALSE, set $depth to $SVN::Depth::files.
+
+=item $ctx-E<gt>checkout3($url, $path, $preg_revision, $revision, $depth, $ignore_externals, $allow_unver_obstructions, $pool);
+
 Checkout a working copy of $url at $revision using $path as the root directory
 of the newly checked out working copy.
 
+The $peg_revision sets the revision at which the path in the $url is treated as representing.
+
 $revision must be a number, 'HEAD', or a date.  If $revision does not
 meet these requirements the $SVN::Error::CLIENT_BAD_REVISION is raised.
 
+$depth is one of the constants in SVN::Depth and specifies the depth of the
+operation.  If set to $SVN::Depth::unknown, then behave as if for
+$SVN::Depth::infinity, except in the case of resuming a previous checkout of
+$path (i.e. updating) in which case use the depth of the existing working copy.
+
+$ignore_exteranls if set to TRUE the operation will ignore external definitions.
+
+$allow_unver_obstructions if set to TRUE the operation will tolerate existing
+unversioned items that obstruct incoming paths.  Only obstructions of the same
+type (file or dir) as the added item are tolerated.  The text of obstructing
+files is left as-is, effectively treating it as a user modification after the
+checkout.  Working properties of obstructing items are set equal to the base
+properties.  If set to FALSE, then abort if there are any unversioned
+obstructing items.
+
 Returns the value of the revision actually checked out of the repository.
 
 =item $ctx-E<gt>cleanup($dir, $pool);
@@ -565,6 +628,21 @@ Has no return.
 
 =item $ctx-E<gt>mkdir($targets, $pool);
 
+Similar to $ctx-E<gt>mkdir2() except it returns an svn_client_commit_info_t
+object instead of a svn_commit_info_t object.
+
+=item $ctx-E<gt>mkdir2($targets, $pool);
+
+Similar to $ctx-E<gt>mkdir3(), but with $make_parents always FALSE, and
+$revprop_hash always undef.
+
+=item $ctx-E<gt>mkdir3($targets, $make_parents, $revprop_hash, $pool);
+
+Similar to $ctx-E<gt>mkdir4(), but returns a svn_commit_info_t object rather
+than through a callback function.
+
+=item $ctx-E<gt>mkdir4($targets, $make_parents, $revprop_hash, \&commit_callback, $pool);
+
 Create a directory, either in a repository or a working copy.
 
 If $targets contains URLs, immediately attempts to commit the creation of the
@@ -574,10 +652,23 @@ object.
 Else, create the directories on disk, and attempt to schedule them for addition.
 In this case returns undef.
 
+If $make_parents is TRUE, create any non-existant parent directories also.
+
+If not undef, $revprop_hash is a reference to a hash table holding additional
+custom revision properites (property names mapped to strings) to be set on the
+new revision in the event that this is a committing operation.  This hash
+cannot contain any standard Subversion properties.
+
+Calls the log message callback to query for a commit log message when one is
+needed.
+
 Calls the notify callback when the directory has been created (successfully)
 in the working copy, with the path of the new directory.  Note this is only
 called for items added to the working copy.
 
+If \&commit_callback is not undef, then for each successful commit, call
+\&commit_callback with the svn_commit_info_t object for the commit.
+
 =item $ctx-E<gt>move($src_path, $src_revision, $dst_path, $force, $pool);
 
 Move $src_path to $dst_path.
@@ -732,8 +823,20 @@ in the repository, this feature will fai
 
 =item $ctx-E<gt>status($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $pool);
 
+Similar to $ctx-E<gt>status2(), but with ignore_externals always set to FALSE, and with the status_func receiving a svn_wc_status2_t instead of a svn_wc_status_t object.
+
+=item $ctx-E<gt>status2($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $ignore_externals, $pool);
+
+Similar to $ctx-E<gt>status3(), but with the changelists passed as undef, and with recursive instead of depth.
+
+=item $ctx-E<gt>status3($path, $revision, \&status_func, $depth, $get_all, $update, $no_ignore, $ignore_externals, $changelists, $pool);
+
+Similar to $ctx-E<gt>status4(), without the pool parameter to the callback and the return of the callback is ignored. 
+
+=item $ctx-E<gt>status4($path, $revision, \&status_func, $depth, $get_all, $update, $no_ignore, $ignore_externals, $changelists, $pool);
+
 Given $path to a working copy directory (or single file), call status_func()
-with a set of svn_wc_status_t objects which describe the status of $path and
+with a set of svn_wc_status2_t objects which describe the status of $path and
 its children.
 
 If $recursive is true, recurse fully, else do only immediate children.
@@ -746,19 +849,23 @@ information about out-of-dateness (with 
 return the value of the actual revision against with the working copy was
 compared.  (The return will be undef if $update is not set).
 
-The function recurses into externals definitions ('svn:externals') after
-handling the main target, if any exist.  The function calls the notify callback
-with $SVN::Wc::Notify::Action::status_external action before handling each
-externals definition, and with $SVN::Wc::Notify::Action::status_completed
-after each.
+Unless ignore_externals is set, the function recurses into externals definitions
+('svn:externals') after handling the main target, if any exist.  The function
+calls the notify callback with $SVN::Wc::Notify::Action::status_external action
+before handling each externals definition, and with 
+$SVN::Wc::Notify::Action::status_completed after each.
+
+$changelists is a reference to an array of changelist names, used as a restrictive filter on items whose statuses are reported; that is don't report status about any item unless it's a member of those changelists.  If changelists is empty (or altogether undef), no changelist filtering occurs.
 
 The status_func subroutine takes the following parameters:
-$path, $status
+$path, $status, $pool
 
 $path is the pathname of the file or directory which status is being
-reported.  $status is a svn_wc_status_t object.
+reported.  $status is a svn_wc_status2_t object.  $pool is an apr_pool_t
+object which is cleaned beteween invocations to the callback.
 
-The return of the status_func subroutine is ignored.
+The return of the status_func subroutine can be a svn_error_t object created by
+SVN::Error::create in order to propogate an error up.
 
 =item $ctx-E<gt>info($path_or_url, $peg_revision, $revision, \&receiver, $recurse);
 
@@ -813,15 +920,73 @@ switched.
 
 =item $ctx-E<gt>update($path, $revision, $recursive, $pool)
 
-Update a working copy $path to $revision.
+Similar to $ctx-E<gt>update2() except that it accepts only a single target in
+$path, returns a single revision, and $ignore_externals is always set to FALSE.
+
+=item $ctx-E<gt>update2($paths, $revision, $recursive, $ignore_externals, $pool)
+
+Similar to $ctx-E<gt>update3() but with $allow_unver_obstructions always set to
+FALSE, $depth_is_sticky to FALSE, and $depth set according to $recursive: if
+$recursive is TRUE, set $depth to $SVN::Depth::infinity, if $recursive is
+FALSE, set $depth to $SVN::Depth::files.
+
+=item $ctx-E<gt>update3($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $pool)
+
+Similar to $ctx-E<gt>update4() but with $make_parents always set to FALSE and
+$adds_as_modification set to TRUE.
+
+=item $ctx-E<gt>update4($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $adds_as_modification, $make_parents)
+
+Update working trees $paths to $revision.
+
+$paths is a array reference of paths to be updated.  Unversioned paths that are
+the direct children of a versioned path will cause an update that attempts to
+add that path; other unversioned paths are skipped.
 
 $revision must be a revision number, 'HEAD', or a date or this method will
 raise the $SVN::Error::CLIENT_BAD_REVISION error.
 
+The paths in $paths can be from multiple working copies from multiple
+repositories, but even if they all come from the same repository there is no
+guarantee that revision represented by 'HEAD' will remain the same as each path
+is updated.
+
+If $ignore_externals is set, don't process externals definitions as part of
+this operation.
+
+If $depth is $SVN::Depth::infinity, update fully recursivelly.  Else if it is
+$SVN::Depth::immediates or $SVN::Depth::files, update each target and its file
+entries, but not its subdirectories.  Else if $SVN::Depth::empty, update
+exactly each target, nonrecursively (essentially, update the target's
+properties).
+
+If $depth is $SVN::Depth::unknown, take the working depth from $paths and then
+describe as behaved above.
+
+If $depth_is_sticky is set and $depth is not $SVN::Depth::unknown, then in
+addition to update paths, also set their sticky ambient depth value to $depth.
+
+If $allow_unver_obstructions is TRUE then the update tolerates existing 
+unversioned items that obstruct added paths.  Only obstructions of the same
+type (file or dir) as the added item are tolerated.  The text of obstructing
+files is left as-is, effectively treating it as a user modification after the
+update.  Working properties of obstructing items are set equal to the base
+properties.  If $allow_unver_obstructions is FALSE then the update will abort
+if there are any unversioned obstructing items.
+
+If $adds_as_modification is TRUE, a local addition at the same path as an 
+incoming addition of the same node kind results in a normal node with a
+possible local modification, instead of a tree conflict.
+
+If $make_parents is TRUE, create any non-existent parent directories also by
+checking them out at depth=empty.
+
 Calls the notify callback for each item handled by the update, and
 also for files restored from the text-base.
 
-Returns the revision to which the working copy was actually updated.
+Returns an array reference to an array of revision numbers with each element
+set to the revision to which $revision was resolved for the corresponding
+element of $paths.
 
 
 =item $ctx-E<gt>url_from_path($target, $pool); or SVN::Client::url_from_path($target, $pool);
@@ -1265,41 +1430,41 @@ use SVN::Base qw(Client svn_info_t_);
 
 =over 8
 
-=item $info->URL()
+=item $info-E<gt>URL()
 
 Where the item lives in the repository.
 
-=item $info->rev()
+=item $info-E<gt>rev()
 
 The revision of the object.  If path_or_url is a working-copy
 path, then this is its current working revnum.  If path_or_url
 is a URL, then this is the repos revision that path_or_url lives in.
 
-=item $info->kind()
+=item $info-E<gt>kind()
 
 The node's kind.
 
-=item $info->repos_root_URL()
+=item $info-E<gt>repos_root_URL()
 
 The root URL of the repository.
 
-=item $info->repos_UUID()
+=item $info-E<gt>repos_UUID()
 
 The repository's UUID.
 
-=item $info->last_changed_rev()
+=item $info-E<gt>last_changed_rev()
 
 The last revision in which this object changed.
 
-=item $info->last_changed_date()
+=item $info-E<gt>last_changed_date()
 
 The date of the last_changed_rev.
 
-=item $info->last_changed_author()
+=item $info-E<gt>last_changed_author()
 
 The author of the last_changed_rev.
 
-=item $info->lock()
+=item $info-E<gt>lock()
 
 An exclusive lock, if present.  Could be either local or remote.
 
@@ -1311,27 +1476,27 @@ also only useful when working with a WC.
 
 =over 8
 
-=item $info->has_wc_info()
+=item $info-E<gt>has_wc_info()
 
-=item $info->schedule()
+=item $info-E<gt>schedule()
 
-=item $info->copyfrom_url()
+=item $info-E<gt>copyfrom_url()
 
-=item $info->copyfrom_rev()
+=item $info-E<gt>copyfrom_rev()
 
-=item $info->text_time()
+=item $info-E<gt>text_time()
 
-=item $info->prop_time()
+=item $info-E<gt>prop_time()
 
-=item $info->checksum()
+=item $info-E<gt>checksum()
 
-=item $info->conflict_old()
+=item $info-E<gt>conflict_old()
 
-=item $info->conflict_new()
+=item $info-E<gt>conflict_new()
 
-=item $info->conflict_wrk()
+=item $info-E<gt>conflict_wrk()
 
-=item $info->prejfile()
+=item $info-E<gt>prejfile()
 
 =back
 
@@ -1378,12 +1543,12 @@ $SVN::Client::COMMIT_ITEM_TEXT_MODS
 $SVN::Client::COMMIT_ITEM_PROP_MODS
 $SVN::Client::COMMIT_ITEM_IS_COPY
 
-=item $citem>incoming_prop_changes()
+=item $citem-E<gt>incoming_prop_changes()
 
 A reference to an array of svn_prop_t objects representing changes to
 WC properties.
 
-=item $citem>outgoing_prop_changes()
+=item $citem-E<gt>outgoing_prop_changes()
 
 A reference to an array of svn_prop_t objects representing extra
 changes to properties in the repository (which are not necessarily

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Core.pm
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Core.pm?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Core.pm (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Core.pm Tue Oct 30 20:03:28 2012
@@ -710,6 +710,63 @@ $SVN::Node::dir, $SVN::Node::unknown.
 
 =cut
 
+package SVN::Depth;
+use SVN::Base qw(Core svn_depth_);
+
+=head2 svn_depth_t - SVN::Depth
+
+An enum of the following constants:
+
+=over 4
+
+=item $SVN::Depth::unknown
+
+Depth undetermined or ignored.  In some contexts, this means the client should
+choose an appropriate default depth.  The server will generally treat it as
+$SVN::Depth::infinity.
+
+=item $SVN::Depth::exclude
+
+Exclude (i.e., don't descend into) directory D.
+
+Note: In Subversion 1.5, $SVN::Depth::exclude is B<not> supported anyhwere in
+the client-side (Wc/Client/etc) code; it is only supported as an argument to
+set_path functions in the Ra and Repos reporters.  (This will enable future
+versions of Subversion to run updates, etc, against 1.5 servers with proper
+$SVN::Depth::exclude behavior, once we get a chance to implement client side
+support for $SVN::Depth::exclude).
+
+=item $SVN::Depth::empty
+
+Just the named directory D, no entries.
+
+Updates will not pull in any files or subdirectories not already present.
+
+=item $SVN::Depth::files
+
+D + its files children, but not subdirs.
+
+Updates will pull in any files not already present, but not subdirectories.
+
+=item $SVN::Depth::immediates
+
+D + immediate children (D and its entries).
+
+Updates will pull in any files or subdirectories not already present; those
+subdirectories' this_dir entries will have depth-empty.
+
+=item $SVN::Depth::infinity
+
+D + all descendants (full recursion from D).
+
+Updates will pull in any files or subdirectories not already present; those
+subdirectories' this_dir entries will have depth-infinity.  Equivalent to the
+pre 1.5 default update behavior.
+
+=back
+
+=cut
+
 package _p_svn_opt_revision_t;
 use SVN::Base qw(Core svn_opt_revision_t_);
 
@@ -766,6 +823,37 @@ Author of created rev.
 
 =cut
 
+package _p_svn_commit_info_t;
+use SVN::Base qw(Core svn_commit_info_t_);
+
+=head2 svn_commit_info_t
+
+=over 4
+
+=item $commit-E<gt>revision()
+
+Just committed revision.
+
+=item $commit-E<gt>date()
+
+Server-side date of the commit.
+
+=item $commit-E<gt>author()
+
+Author of the commit.
+
+=item $commit-E<gt>post_commit_err()
+
+Error message from the post-commit hook, or undef.
+
+=item $commit-E<gt>repos_root()
+
+Repoistory root, may be undef if unknown.
+
+=back
+
+=cut
+
 package _p_svn_auth_cred_simple_t;
 use SVN::Base qw(Core svn_auth_cred_simple_t_);
 

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Fs.pm
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Fs.pm?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Fs.pm (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Fs.pm Tue Oct 30 20:03:28 2012
@@ -100,7 +100,7 @@ base revision will be $rev, which should
 Generate a unique lock-token using C<$fs>.
 
 TODO - translate this to apply to Perl:
-This can be used in to populate lock->token before calling
+This can be used in to populate lock-E<gt>token before calling
 svn_fs_attach_lock().
 
 =item $fs-E<gt>get_access()

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Makefile.PL.in
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Makefile.PL.in?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Makefile.PL.in (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Makefile.PL.in Tue Oct 30 20:03:28 2012
@@ -127,6 +127,9 @@ $module_make_commands\t\$(NOECHO) \$(TOU
 
 FULLPERLRUN=$fullperlrun \$(FULLPERL)
 
+update_test_counts ::
+\tfor test_file in \$(TEST_FILES); do \$(PERL) -MTest::Count::FileMutator::ByFileType::App -e 'run()' \$\$test_file; done
+
 EOPOST
 
 }

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Repos.pm
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Repos.pm?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Repos.pm (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Repos.pm Tue Oct 30 20:03:28 2012
@@ -87,9 +87,9 @@ Example:
 
     close $fh;
 
-=item $repos->load_fs($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $cancel_func, $cancel_baton);
+=item $repos-E<gt>load_fs($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $cancel_func, $cancel_baton);
 
-=item $repos->load_fs2($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $use_pre_commit_hook, $use_post_commit_hook, $cancel_func, $cancel_baton);
+=item $repos-E<gt>load_fs2($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $use_pre_commit_hook, $use_post_commit_hook, $cancel_func, $cancel_baton);
 
 Loads a dumpfile specified by the C<$dumpfile_fh> filehandle into the repository.
 If the dumpstream contains copy history that is unavailable in the repository,

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Wc.pm
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Wc.pm?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Wc.pm (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/Wc.pm Tue Oct 30 20:03:28 2012
@@ -21,7 +21,7 @@ swig_init_asp_dot_net_hack($SVN::Core::g
 
 package _p_svn_wc_t;
 
-=head2 svn_wc_status_t
+=head2 svn_wc_status2_t
 
 =over 4
 
@@ -67,10 +67,55 @@ be one of the $SVN::Wc::Status::* consta
 An integer representing the status of the item's properties in the repository.
 Can be one of the $SVN::Wc::Status::* constants.
 
+=item $wcstat-E<gt>repos_lock()
+
+A svn_lock_t object representing the entry's lock in the repository, if any.
+
+=item $wcstat-E<gt>url()
+
+The url (actual or expected) of the item.
+
+=item $wcstat-E<gt>ood_last_cmt_rev()
+
+An integer representing the youngest committed revision or $SVN::Core::INVALID_REVNUM is not out of date.
+
+=item $wcstat-E<gt>ood_last_cmt_date()
+
+The date of the most recent commit as microseconds since 00:00:00 January 1, 1970 UTC or 0 if not out of date.
+
+=item $wcstat-E<gt>ood_kind()
+
+An integer representing the kind of the youngest commit.  Can be any of the $SVN::Node::* constants.  Will be $SVN::Node::none if not out of date.
+
+=item $wcstat-E<gt>tree_conflict()
+
+A svn_wc_conflict_description_t object if the entry is the victim of a tree conflict or undef.
+
+=item $wcstat-E<gt>file_external()
+
+A boolean telling if the item is a file that was added to the working copy as an svn:externals.  If file_external is TRUE, then switched is always FALSE.
+
+=item $wcstat-E<gt>pristine_text_status()
+
+An integer representing the status of the item's text as compared to the pristine base of the file.  Can be one of the $SVN::Wc::Status::* constants.
+
+=item $wcstat-E<gt>pristine_prop_status()
+
+An integer representing the status of the item's properties as compared to the pristine base of the node.  Can be one of the $SVN::Wc::Status::* constants.
+
 =back
 
 =cut
 
+package _p_svn_wc_status2_t;
+use SVN::Base qw(Wc svn_wc_status2_t_);
+
+=head2 svn_wc_status_t
+
+Same as svn_wc_status2_t, but without the repos_lock, url, ood_last_cmt_rev, ood_last_cmt_date, ood_kind, ood_last_cmt_author, tree_conflict, file_external, pristine_text_status, pristine_prop_status fields.
+
+=cut
+
 package _p_svn_wc_status_t;
 use SVN::Base qw(Wc svn_wc_status_t_);
 
@@ -430,6 +475,11 @@ A directory doesn't contain a complete e
 
 =back
 
+=cut
+
+package SVN::Wc::Status;
+use SVN::Base qw(Wc svn_wc_status_);
+
 =head1 COPYRIGHT
 
     Licensed to the Apache Software Foundation (ASF) under one
@@ -451,7 +501,4 @@ A directory doesn't contain a complete e
 
 =cut
 
-package SVN::Wc::Status;
-use SVN::Base qw(Wc svn_wc_status_);
-
 1;

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/0use.t
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/0use.t?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/0use.t (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/0use.t Tue Oct 30 20:03:28 2012
@@ -22,10 +22,17 @@
 
 use Test::More tests => 7;
 use strict;
+# TEST
 use_ok 'SVN::Core';
+# TEST
 use_ok 'SVN::Repos';
+# TEST
 use_ok 'SVN::Fs';
+# TEST
 use_ok 'SVN::Delta';
+# TEST
 use_ok 'SVN::Ra';
+# TEST
 use_ok 'SVN::Wc';
+# TEST
 use_ok 'SVN::Client';

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/1repos.t
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/1repos.t?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/1repos.t (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/1repos.t Tue Oct 30 20:03:28 2012
@@ -35,6 +35,7 @@ my $repospath = tempdir('svn-perl-test-X
 
 my $repos;
 
+# TEST
 ok($repos = SVN::Repos::create("$repospath", undef, undef, undef, undef),
    "create repository at $repospath");
 
@@ -60,6 +61,7 @@ SVN::TxDelta::send_string("FILEA CONTENT
 
 $editor->close_edit();
 
+# TEST
 cmp_ok($fs->youngest_rev, '==', 1);
 {
 $editor = SVN::Delta::Editor->
@@ -73,6 +75,7 @@ my $subdirbaton = $editor->add_directory
 
 $editor->close_edit();
 }
+# TEST
 cmp_ok($fs->youngest_rev, '==', 2);
 
 my @history;
@@ -80,6 +83,7 @@ my @history;
 SVN::Repos::history($fs, 'tags/foo/filea',
                     sub {push @history, [@_[0,1]]}, 0, 2, 1);
 
+# TEST
 is_deeply(\@history, [['/tags/foo/filea',2],['/trunk/filea',1]],
           'repos_history');
 
@@ -97,8 +101,10 @@ $editor->delete_entry('tags', 2, $rootba
 
 $editor->close_edit();
 }
+# TEST
 ok($main::something_destroyed, 'callback properly destroyed');
 
+# TEST
 cmp_ok($fs->youngest_rev, '==', 3);
 
 END {

Modified: subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/2fs.t
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/2fs.t?rev=1403849&r1=1403848&r2=1403849&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/2fs.t (original)
+++ subversion/branches/master-passphrase/subversion/bindings/swig/perl/native/t/2fs.t Tue Oct 30 20:03:28 2012
@@ -36,24 +36,32 @@ my $repospath = tempdir('svn-perl-test-X
 
 my $repos;
 
+# TEST
 ok($repos = SVN::Repos::create("$repospath", undef, undef, undef, undef),
    "create repository at $repospath");
 
 my $fs = $repos->fs;
 
+# TEST
 cmp_ok($fs->youngest_rev, '==', 0,
        "new repository start with rev 0");
 
+# TEST
 is($fs->path, "$repospath/db", '$fs->path()');
+# TEST
 is(SVN::Fs::type($fs->path), 'fsfs', 'SVN::Fs::type()');
 
 my $txn = $fs->begin_txn($fs->youngest_rev);
 
 my $txns = $fs->list_transactions;
+# TEST
 ok(eq_array($fs->list_transactions, [$txn->name]), 'list transaction');
 
+# TEST
 isa_ok($txn->root, '_p_svn_fs_root_t', '$txn->root()');
+# TEST
 is($txn->root->txn_name, $txn->name, '$txn->root->txn_name()');
+# TEST
 is($fs->revision_root($fs->youngest_rev)->txn_name, undef);
 
 $txn->root->make_dir('trunk');
@@ -63,32 +71,43 @@ my $text = "this is just a test\n";
 $txn->root->make_file($path);
 {
     my $stream = $txn->root->apply_text($path, undef);
+    # TEST
     isa_ok($stream, 'SVN::Stream', '$txn->root->apply_text');
     print $stream $text;
     close $stream;
 }
 $txn->commit;
 
+# TEST
 cmp_ok($fs->youngest_rev, '==', 1, 'revision increased');
 
 my $root = $fs->revision_root($fs->youngest_rev);
 
+# TEST
 cmp_ok($root->check_path($path), '==', $SVN::Node::file, 'check_path');
+# TEST
 ok(!$root->is_dir($path), 'is_dir');
+# TEST
 ok($root->is_file($path), 'is_file');
 {
     my $stream = $root->file_contents($path);
     local $/;
+    # TEST
     is(<$stream>, $text, 'content verified');
+    # TEST
     is($root->file_md5_checksum($path), 'dd2314129f81675e95b940ff94ddc935',
        'md5 verified');
 }
 
+# TEST
 cmp_ok($root->file_length($path), '==', length($text), 'file_length');
 
 # Revision properties
+# TEST
 isa_ok($fs->revision_proplist(1), 'HASH', 'revision_proplist: object');
+# TEST
 is($fs->revision_prop(1, 'not:exists'), undef, 'revision_prop: nonexistent');
+# TEST
 like($fs->revision_prop(1, 'svn:date'), qr/^\d+-\d+-\d+T\d+:\d+:\d+\.\d+Z$/,
      'revision_prop: svn:date');
 
@@ -108,12 +127,15 @@ SKIP: {
         or die "error making hook script '$script_filename' executable: $!";
 
     $fs->change_rev_prop(1, 'test-prop', 'foo');
+    # TEST
     is($fs->revision_prop(1, 'test-prop'), 'foo', 'change_rev_prop');
 
     $fs->change_rev_prop(1, 'test-prop', undef);
+    # TEST
     is($fs->revision_prop(1, 'test-prop'), undef, 'change_rev_prop: deleted');
 
     $fs->change_rev_prop(1, 'binary-prop', $BINARY_DATA);
+    # TEST
     is($fs->revision_prop(1, 'binary-prop'), $BINARY_DATA,
        'change_rev_prop with binary data');
 }