You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/08/10 22:56:05 UTC

svn commit: r984206 [3/35] - in /subversion/branches/ignore-mergeinfo: ./ build/ build/generator/ build/generator/templates/ build/hudson/ build/hudson/jobs/subversion-1.6.x-solaris/ build/hudson/jobs/subversion-1.6.x-ubuntu/ build/hudson/jobs/subversi...

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java Tue Aug 10 20:55:56 2010
@@ -24,6 +24,8 @@
 package org.apache.subversion.javahl;
 
 import java.util.Set;
+import java.io.OutputStream;
+import java.io.InputStream;
 
 import org.apache.subversion.javahl.SVNAdmin.MessageReceiver;
 
@@ -80,26 +82,13 @@ public interface ISVNAdmin {
 	 * @param start             the first revision to be dumped
 	 * @param end               the last revision to be dumped
 	 * @param incremental       the dump will be incremantal
-	 * @throws ClientException  throw in case of problem
-	 */
-	public abstract void dump(String path, IOutput dataOut, IOutput errorOut,
-			Revision start, Revision end, boolean incremental)
-			throws ClientException;
-
-	/**
-	 * dump the data in a repository
-	 * @param path              the path to the repository
-	 * @param dataOut           the data will be outputed here
-	 * @param errorOut          the messages will be outputed here
-	 * @param start             the first revision to be dumped
-	 * @param end               the last revision to be dumped
-	 * @param incremental       the dump will be incremantal
 	 * @param useDeltas         the dump will contain deltas between nodes
 	 * @throws ClientException  throw in case of problem
 	 * @since 1.5
 	 */
-	public abstract void dump(String path, IOutput dataOut, IOutput errorOut,
-			Revision start, Revision end, boolean incremental, boolean useDeltas)
+	public abstract void dump(String path, OutputStream dataOut,
+                OutputStream errorOut, Revision start, Revision end,
+                boolean incremental, boolean useDeltas)
 			throws ClientException;
 
 	/**
@@ -139,22 +128,6 @@ public interface ISVNAdmin {
 	 * @param ignoreUUID        ignore any UUID found in the input stream
 	 * @param forceUUID         set the repository UUID to any found in the
 	 *                          stream
-	 * @param relativePath      the directory in the repository, where the data
-	 *                          in put optional.
-	 * @throws ClientException  throw in case of problem
-	 */
-	public abstract void load(String path, IInput dataInput,
-			IOutput messageOutput, boolean ignoreUUID, boolean forceUUID,
-			String relativePath) throws ClientException;
-
-	/**
-	 * load the data of a dump into a repository,
-	 * @param path              the path to the repository
-	 * @param dataInput         the data input source
-	 * @param messageOutput     the target for processing messages
-	 * @param ignoreUUID        ignore any UUID found in the input stream
-	 * @param forceUUID         set the repository UUID to any found in the
-	 *                          stream
 	 * @param usePreCommitHook  use the pre-commit hook when processing commits
 	 * @param usePostCommitHook use the post-commit hook when processing commits
 	 * @param relativePath      the directory in the repository, where the data
@@ -162,8 +135,8 @@ public interface ISVNAdmin {
 	 * @throws ClientException  throw in case of problem
 	 * @since 1.5
 	 */
-	public abstract void load(String path, IInput dataInput,
-			IOutput messageOutput, boolean ignoreUUID, boolean forceUUID,
+	public abstract void load(String path, InputStream dataInput,
+			OutputStream messageOutput, boolean ignoreUUID, boolean forceUUID,
 			boolean usePreCommitHook, boolean usePostCommitHook,
 			String relativePath) throws ClientException;
 
@@ -193,18 +166,6 @@ public interface ISVNAdmin {
 			throws ClientException;
 
 	/**
-	 * set the log message of a revision
-	 * @param path              the path to the repository
-	 * @param rev               the revision to be changed
-	 * @param message           the message to be set
-	 * @param bypassHooks       if to bypass all repository hooks
-	 * @throws ClientException  throw in case of problem
-	 * @deprecated Use setRevProp() instead.
-	 */
-	public abstract void setLog(String path, Revision rev, String message,
-			boolean bypassHooks) throws ClientException;
-
-	/**
 	 * Change the value of the revision property <code>propName</code>
 	 * to <code>propValue</code>.  By default, does not run
 	 * pre-/post-revprop-change hook scripts.
@@ -234,7 +195,7 @@ public interface ISVNAdmin {
 	 * @param end               the last revision
 	 * @throws ClientException If an error occurred.
 	 */
-	public abstract void verify(String path, IOutput messageOut,
+	public abstract void verify(String path, OutputStream messageOut,
 			Revision start, Revision end) throws ClientException;
 
 	/**
@@ -255,4 +216,4 @@ public interface ISVNAdmin {
 	public abstract void rmlocks(String path, String[] locks)
 			throws ClientException;
 
-}
\ No newline at end of file
+}

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java Tue Aug 10 20:55:56 2010
@@ -24,6 +24,8 @@
 package org.apache.subversion.javahl;
 
 import java.util.Set;
+import java.io.OutputStream;
+import java.io.InputStream;
 
 /**
  * This class offers the same commands as the svnadmin commandline
@@ -118,30 +120,12 @@ public class SVNAdmin implements ISVNAdm
      * @param start             the first revision to be dumped
      * @param end               the last revision to be dumped
      * @param incremental       the dump will be incremantal
-     * @throws ClientException  throw in case of problem
-     */
-    public void dump(String path, IOutput dataOut,
-                     IOutput errorOut, Revision start,
-                     Revision end, boolean incremental)
-            throws ClientException
-    {
-        dump(path, dataOut, errorOut, start, end, incremental, false);
-    }
-
-    /**
-     * dump the data in a repository
-     * @param path              the path to the repository
-     * @param dataOut           the data will be outputed here
-     * @param errorOut          the messages will be outputed here
-     * @param start             the first revision to be dumped
-     * @param end               the last revision to be dumped
-     * @param incremental       the dump will be incremantal
      * @param useDeltas         the dump will contain deltas between nodes
      * @throws ClientException  throw in case of problem
      * @since 1.5
      */
-    public native void dump(String path, IOutput dataOut,
-                            IOutput errorOut, Revision start,
+    public native void dump(String path, OutputStream dataOut,
+                            OutputStream errorOut, Revision start,
                             Revision end, boolean incremental,
                             boolean useDeltas)
             throws ClientException;
@@ -195,27 +179,6 @@ public class SVNAdmin implements ISVNAdm
      * @param ignoreUUID        ignore any UUID found in the input stream
      * @param forceUUID         set the repository UUID to any found in the
      *                          stream
-     * @param relativePath      the directory in the repository, where the data
-     *                          in put optional.
-     * @throws ClientException  throw in case of problem
-     */
-    public void load(String path, IInput dataInput,
-                     IOutput messageOutput, boolean ignoreUUID,
-                     boolean forceUUID, String relativePath)
-            throws ClientException
-    {
-        load(path, dataInput, messageOutput, ignoreUUID, forceUUID,
-             false, false, relativePath);
-    }
-
-    /**
-     * load the data of a dump into a repository,
-     * @param path              the path to the repository
-     * @param dataInput         the data input source
-     * @param messageOutput     the target for processing messages
-     * @param ignoreUUID        ignore any UUID found in the input stream
-     * @param forceUUID         set the repository UUID to any found in the
-     *                          stream
      * @param usePreCommitHook  use the pre-commit hook when processing commits
      * @param usePostCommitHook use the post-commit hook when processing commits
      * @param relativePath      the directory in the repository, where the data
@@ -223,8 +186,8 @@ public class SVNAdmin implements ISVNAdm
      * @throws ClientException  throw in case of problem
      * @since 1.5
      */
-    public native void load(String path, IInput dataInput,
-                            IOutput messageOutput, boolean ignoreUUID,
+    public native void load(String path, InputStream dataInput,
+                            OutputStream messageOutput, boolean ignoreUUID,
                             boolean forceUUID, boolean usePreCommitHook,
                             boolean usePostCommitHook, String relativePath)
             throws ClientException;
@@ -255,19 +218,6 @@ public class SVNAdmin implements ISVNAdm
             throws ClientException;
 
     /**
-     * set the log message of a revision
-     * @param path              the path to the repository
-     * @param rev               the revision to be changed
-     * @param message           the message to be set
-     * @param bypassHooks       if to bypass all repository hooks
-     * @throws ClientException  throw in case of problem
-     * @deprecated Use setRevProp() instead.
-     */
-    public native void setLog(String path, Revision rev, String message,
-                              boolean bypassHooks)
-            throws ClientException;
-
-    /**
      * Change the value of the revision property <code>propName</code>
      * to <code>propValue</code>.  By default, does not run
      * pre-/post-revprop-change hook scripts.
@@ -299,7 +249,7 @@ public class SVNAdmin implements ISVNAdm
      * @param end               the last revision
      * @throws ClientException If an error occurred.
      */
-    public native void verify(String path,  IOutput messageOut,
+    public native void verify(String path, OutputStream messageOut,
                               Revision start, Revision end)
             throws ClientException;
 

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/InputInterface.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/InputInterface.java?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/InputInterface.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/InputInterface.java Tue Aug 10 20:55:56 2010
@@ -23,11 +23,24 @@
 
 package org.tigris.subversion.javahl;
 
+import java.io.IOException;
+
 /**
  * Interface for data to be received from subversion
  * used for SVNAdmin.load and SVNAdmin.dump
  */
 public interface InputInterface
-    extends org.apache.subversion.javahl.IInput
 {
+    /**
+     * read the number of data.length bytes from input.
+     * @param data          array to store the read bytes.
+     * @throws IOException  throw in case of problems.
+     */
+    public int read(byte [] data) throws IOException;
+
+    /**
+     * close the input
+     * @throws IOException throw in case of problems.
+     */
+    public void close() throws IOException;
 }

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java Tue Aug 10 20:55:56 2010
@@ -23,10 +23,23 @@
 
 package org.tigris.subversion.javahl;
 
+import java.io.IOException;
+
 /**
  * Interface to send data to subversion used by SVNAdmin.load.
  */
 public interface OutputInterface
-    extends org.apache.subversion.javahl.IOutput
 {
+    /**
+     * write the bytes in data to java
+     * @param data          the data to be writtem
+     * @throws IOException  throw in case of problems.
+     */
+    public int write(byte[] data) throws IOException;
+
+    /**
+     * close the output
+     * @throws IOException throw in case of problems.
+     */
+    public void close() throws IOException;
 }

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java Tue Aug 10 20:55:56 2010
@@ -24,6 +24,9 @@
 package org.tigris.subversion.javahl;
 
 import java.util.Set;
+import java.io.OutputStream;
+import java.io.InputStream;
+import java.io.IOException;
 
 /**
  * This class offers the same commands as the svnadmin commandline
@@ -164,7 +167,8 @@ public class SVNAdmin
     {
         try
         {
-            aSVNAdmin.dump(path, dataOut, errorOut,
+            aSVNAdmin.dump(path, new OutputWrapper(dataOut),
+                           new OutputWrapper(errorOut),
                            start == null ? null : start.toApache(),
                            end == null ? null : end.toApache(),
                            incremental, useDeltas);
@@ -286,9 +290,10 @@ public class SVNAdmin
     {
         try
         {
-            aSVNAdmin.load(path, dataInput, messageOutput, ignoreUUID,
-                           forceUUID, usePreCommitHook, usePostCommitHook,
-                           relativePath);
+            aSVNAdmin.load(path, new InputWrapper(dataInput),
+                           new OutputWrapper(messageOutput),
+                           ignoreUUID, forceUUID, usePreCommitHook,
+                           usePostCommitHook, relativePath);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -367,13 +372,14 @@ public class SVNAdmin
     {
         try
         {
-            aSVNAdmin.setLog(path,
-                             rev == null ? null : rev.toApache(),
-                             message, bypassHooks);
+            aSVNAdmin.setRevProp(path,
+                                 rev == null ? null : rev.toApache(),
+                                 "svn:log", message,
+                                 !bypassHooks, !bypassHooks);
         }
-        catch (org.apache.subversion.javahl.ClientException ex)
+        catch (org.apache.subversion.javahl.SubversionException ex)
         {
-            throw new ClientException(ex);
+            throw ClientException.fromException(ex);
         }
     }
 
@@ -428,7 +434,7 @@ public class SVNAdmin
     {
         try
         {
-            aSVNAdmin.verify(path, messageOut,
+            aSVNAdmin.verify(path, new OutputWrapper(messageOut),
                              start == null ? null : start.toApache(),
                              end == null ? null : end.toApache());
         }
@@ -487,4 +493,58 @@ public class SVNAdmin
             throw new ClientException(ex);
         }
     }
+
+    private class OutputWrapper extends OutputStream
+    {
+        private OutputInterface outputer;
+
+        OutputWrapper(OutputInterface outputer)
+        {
+            this.outputer = outputer;
+        }
+
+        public void write(int b) throws IOException
+        {
+            outputer.write(new byte[]{ (byte) ( b & 0xFF) });
+        }
+
+        public void write(byte[] b) throws IOException
+        {
+            outputer.write(b);
+        }
+
+        public void close() throws IOException
+        {
+            outputer.close();
+        }
+    }
+
+    private class InputWrapper extends InputStream
+    {
+        private InputInterface inputer;
+
+        InputWrapper(InputInterface inputer)
+        {
+            this.inputer = inputer;
+        }
+
+        public int read() throws IOException
+        {
+            byte[] b = new byte[1];
+            if (inputer.read(b) > 0)
+                return b[0];
+            else
+                return -1;
+        }
+
+        public int read(byte[] b) throws IOException
+        {
+            return inputer.read(b);
+        }
+
+        public void close() throws IOException
+        {
+            inputer.close();
+        }
+    }
 }

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java Tue Aug 10 20:55:56 2010
@@ -25,6 +25,9 @@ package org.apache.subversion.javahl;
 import org.apache.subversion.javahl.callback.*;
 
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.OutputStream;
+import java.io.InputStream;
 import java.io.IOException;
 import java.util.Map;
 
@@ -97,10 +100,10 @@ public class SVNAdminTests extends SVNTe
         String testSrcdir = System.getProperty("test.srcdir",
                 "subversion/bindings/javahl");
         File dump = new File(testSrcdir, "tests/data/issue2979.dump");
-        IInput input = new FileInputer(dump);
-        IOutput loadLog = new IgnoreOutputer();
+        InputStream input = new FileInputStream(dump);
+        OutputStream loadLog = new IgnoreOutputer();
         admin.load(thisTest.getRepositoryPath(),
-                   input, loadLog, true, true, null);
+                   input, loadLog, true, true, false, false, null);
         // should have two revs after the load
         infoHolder[0] = null;
         client.info2(repoUrl, Revision.HEAD, Revision.HEAD,

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java Tue Aug 10 20:55:56 2010
@@ -27,6 +27,7 @@ import org.apache.subversion.javahl.call
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
+import java.io.OutputStream;
 import java.io.IOException;
 import java.util.Set;
 import java.util.HashSet;
@@ -238,8 +239,9 @@ class SVNTests extends TestCase
                               NodeKind.none, CommitItemStateFlags.Add);
         client.doImport(greekFiles.getAbsolutePath(), makeReposUrl(greekRepos),
                         null, Depth.infinity, false, false, null);
-        admin.dump(greekRepos.getAbsolutePath(), new FileOutputer(greekDump),
-                   new IgnoreOutputer(), null, null, false);
+        admin.dump(greekRepos.getAbsolutePath(),
+                   new FileOutputStream(greekDump), new IgnoreOutputer(),
+                   null, null, false, false);
     }
 
     /**
@@ -427,109 +429,14 @@ class SVNTests extends TestCase
     }
 
     /**
-     * internal class which implements the OutputInterface to write the data
-     * to a file.
+     * internal class extends OutputStream, but ignores the data
      */
-    public class FileOutputer implements IOutput
+    public class IgnoreOutputer extends OutputStream
     {
-        /**
-         * the output file stream
-         */
-        FileOutputStream myStream;
-        /**
-         * create new object
-         * @param outputName    the file to write the data to
-         * @throws IOException
-         */
-        public FileOutputer(File outputName) throws IOException
-        {
-            myStream = new FileOutputStream(outputName);
-        }
-
-        /**
-         * write the bytes in data to java
-         * @param data          the data to be writtem
-         * @throws IOException  throw in case of problems.
-         */
-        public int write(byte[] data) throws IOException
-        {
-            myStream.write(data);
-            return data.length;
-        }
-
-        /**
-         * close the output
-         * @throws IOException throw in case of problems.
-         */
-        public void close() throws IOException
+        public void write(int b) throws IOException
         {
-            myStream.close();
-        }
-    }
-
-    /**
-     * internal class implements the OutputInterface, but ignores the data
-     */
-    public class IgnoreOutputer implements IOutput
-    {
-        /**
-         * write the bytes in data to java
-         * @param data          the data to be writtem
-         * @throws IOException  throw in case of problems.
-         */
-        public int write(byte[] data) throws IOException
-        {
-            return data.length;
-        }
-
-        /**
-         * close the output
-         * @throws IOException throw in case of problems.
-         */
-        public void close() throws IOException
-        {
-        }
-    }
-
-    /**
-     * internal class which implements the InputInterface to read the data
-     * from a file.
-     */
-    public class FileInputer implements IInput
-    {
-        /**
-         * input file stream
-         */
-        FileInputStream myStream;
-
-        /**
-         * create a new object
-         * @param inputName     the file from which the data is read
-         * @throws IOException If <code>inputName</code> is not
-         * found.
-         */
-        public FileInputer(File inputName) throws IOException
-        {
-            myStream = new FileInputStream(inputName);
-        }
-
-        /**
-         * read the number of data.length bytes from input.
-         * @param data          array to store the read bytes.
-         * @throws IOException  throw in case of problems.
-         */
-        public int read(byte[] data) throws IOException
-        {
-            return myStream.read(data);
-        }
-
-        /**
-         * close the input
-         * @throws IOException throw in case of problems.
-         */
-        public void close() throws IOException
-        {
-            myStream.close();
+            /* Just do nothing. */
+            return;
         }
     }
 
@@ -756,8 +663,10 @@ class SVNTests extends TestCase
                          conf.getAbsolutePath(), fsType);
             if (loadGreek)
             {
-                admin.load(repos.getAbsolutePath(), new FileInputer(greekDump),
-                           new IgnoreOutputer(), false, false, null);
+                admin.load(repos.getAbsolutePath(),
+                           new FileInputStream(greekDump),
+                           new IgnoreOutputer(), false, false, false, false,
+                           null);
             }
             return repos;
         }

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/swig/include/svn_types.swg?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/swig/include/svn_types.swg Tue Aug 10 20:55:56 2010
@@ -1119,6 +1119,17 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
 }
 #endif
 
+#ifdef SWIGPYTHON
+%typemap(in) const unsigned char *digest {
+    if ($input == Py_None) {
+        $1 = NULL;
+    } else {
+        $1 = (unsigned char *) PyString_AsString($input);
+        if ($1 == NULL) SWIG_fail;
+    }
+}
+#endif
+
 #ifdef SWIGRUBY
 %typemap(in) const unsigned char *digest
 {

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/swig/perl/native/Makefile.PL.in
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/swig/perl/native/Makefile.PL.in?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/swig/perl/native/Makefile.PL.in (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/swig/perl/native/Makefile.PL.in Tue Aug 10 20:55:56 2010
@@ -113,7 +113,7 @@ sub MY::postamble {
    my $module_c_files = join (' ',map { "svn_$_.c"} @modules);
    my $module_make_commands = join ('',map {"\t\$(MAKE) -f Makefile.$_\n"} @modules);
 
-  my $fullperlrun = "$apr_shlib_path_var=" . join(':',@ldpaths);
+  my $fullperlrun = "$apr_shlib_path_var=\${$apr_shlib_path_var}:" . join(':',@ldpaths);
   
    return <<"EOPOST";
 all :: modules

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/swig/perl/native/t/3client.t
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/swig/perl/native/t/3client.t?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/swig/perl/native/t/3client.t (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/swig/perl/native/t/3client.t Tue Aug 10 20:55:56 2010
@@ -152,10 +152,10 @@ $ctx->log_msg( 
            "kind() shows the node as a file");
         is($commit_item->url(),"$reposurl/dir1/new",
            'URL matches our repos url');
-        # revision is 0 because the commit has not happened yet
+        # revision is INVALID because the commit has not happened yet
         # and this is not a copy
-        is($commit_item->revision(),0,
-           'Revision is 0 since commit has not happened yet');
+        is($commit_item->revision(),$SVN::Core::INVALID_REVNUM,
+           'Revision is INVALID since commit has not happened yet');
         is($commit_item->copyfrom_url(),undef,
            'copyfrom_url is undef since file is not a copy');
         is($commit_item->state_flags(),$SVN::Client::COMMIT_ITEM_ADD |

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/svn/core.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/svn/core.py?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/svn/core.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/svn/core.py Tue Aug 10 20:55:56 2010
@@ -66,6 +66,15 @@ class SubversionException(Exception):
     self.file = file
     self.line = line
 
+  def __str__(self):
+    dump = '%d - %s' % (self.apr_err, self.message)
+    if self.file != None:    
+      dump = dump + '\n at %s:%d' % (self.file, self.line)
+    if self.child != None:
+      dump = dump + '\n' + self.child.__str__()
+
+    return dump
+
   @classmethod
   def _new_from_err_list(cls, errors):
     """Return new Subversion exception object from list of svn_error_t data.

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/client.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/client.py?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/client.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/client.py Tue Aug 10 20:55:56 2010
@@ -18,7 +18,7 @@
 # under the License.
 #
 #
-import unittest, os, weakref, tempfile, setup_path
+import unittest, os, weakref, setup_path, utils
 
 from svn import core, client, wc
 
@@ -70,19 +70,13 @@ class SubversionClientTestCase(unittest.
 
     self.client_ctx.auth_baton = core.svn_auth_open(providers)
 
-    self.cleanup_dirs = []
+    self.temper = utils.Temper()
 
   def tearDown(self):
     # We have to free client_ctx first, since it may be holding handles
     # to WC DBs
     del self.client_ctx
-    for directory in self.cleanup_dirs:
-      core.svn_io_remove_dir(directory)
-
-  def allocate_temp_dir(self, suffix = ""):
-    temp_dir_name = core.svn_dirent_internal_style(tempfile.mkdtemp(suffix))
-    self.cleanup_dirs.append(temp_dir_name)
-    return temp_dir_name
+    self.temper.cleanup()
 
   def testBatonPlay(self):
     """Test playing with C batons"""
@@ -165,7 +159,7 @@ class SubversionClientTestCase(unittest.
     rev = core.svn_opt_revision_t()
     rev.kind = core.svn_opt_revision_head
 
-    path = self.allocate_temp_dir('-checkout')
+    path = self.temper.alloc_empty_dir('-checkout')
 
     self.assertRaises(ValueError, client.checkout2,
                       REPOS_URL, path, None, None, True, True,
@@ -257,7 +251,7 @@ class SubversionClientTestCase(unittest.
     rev = core.svn_opt_revision_t()
     rev.kind = core.svn_opt_revision_head
 
-    path = self.allocate_temp_dir('-url_from_path')
+    path = self.temper.alloc_empty_dir('-url_from_path')
 
     client.checkout2(REPOS_URL, path, rev, rev, True, True,
                      self.client_ctx)
@@ -269,7 +263,7 @@ class SubversionClientTestCase(unittest.
     rev = core.svn_opt_revision_t()
     rev.kind = core.svn_opt_revision_head
 
-    path = self.allocate_temp_dir('-uuid_from_path')
+    path = self.temper.alloc_empty_dir('-uuid_from_path')
 
     client.checkout2(REPOS_URL, path, rev, rev, True, True,
                      self.client_ctx)
@@ -294,7 +288,7 @@ class SubversionClientTestCase(unittest.
     # in the repository.
     rev = core.svn_opt_revision_t()
     rev.kind = core.svn_opt_revision_head
-    wc_path = self.allocate_temp_dir('-info_file')
+    wc_path = self.temper.alloc_empty_dir('-info_file')
 
     client.checkout2(REPOS_URL, wc_path, rev, rev, True, True,
                      self.client_ctx)
@@ -344,7 +338,7 @@ class SubversionClientTestCase(unittest.
     """Test svn_client_merge_peg3."""
     head = core.svn_opt_revision_t()
     head.kind = core.svn_opt_revision_head
-    wc_path = self.allocate_temp_dir('-merge_peg3')
+    wc_path = self.temper.alloc_empty_dir('-merge_peg3')
 
     client.checkout3(REPOS_URL, wc_path, head, head, core.svn_depth_infinity,
                      True, False, self.client_ctx)

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py Tue Aug 10 20:55:56 2010
@@ -85,6 +85,7 @@ else:
   # extra slashes to make it a valid 'file://' URL
   REPOS_URL = "file://" + REPOS_URL
 
+REPOS_URL = core.svn_uri_canonicalize(REPOS_URL)
 
 class SubversionRepositoryTestSetup(TestSetup):
 

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/wc.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/wc.py?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/wc.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/swig/python/tests/wc.py Tue Aug 10 20:55:56 2010
@@ -211,8 +211,8 @@ class SubversionWorkingCopyTestCase(unit
               wc.get_prop_diffs(self.path, self.wc))
 
   def test_get_pristine_copy_path(self):
-      path_to_file = '%s/%s' % (self.path, 'foo')
-      path_to_text_base = '%s/%s/text-base/foo.svn-base' % (self.path,
+      path_to_file = '%s/trunk/README.txt' % self.path
+      path_to_text_base = '%s/trunk/%s/text-base/README.txt.svn-base' % (self.path,
         wc.get_adm_dir())
       self.assertEqual(path_to_text_base, wc.get_pristine_copy_path(path_to_file))
 

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/swig/ruby/svn/delta.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/swig/ruby/svn/delta.rb?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/swig/ruby/svn/delta.rb (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/swig/ruby/svn/delta.rb Tue Aug 10 20:55:56 2010
@@ -73,7 +73,7 @@ module Svn
       result = Delta.txdelta_apply_wrapper(source, target, error_info)
       handler, handler_baton = result
       handler.baton = handler_baton
-      handler
+      [handler,nil]
     end
 
     def parse_svndiff(error_on_early_close=true, &handler)

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/swig/ruby/test/test_delta.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/swig/ruby/test/test_delta.rb?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/swig/ruby/test/test_delta.rb (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/swig/ruby/test/test_delta.rb Tue Aug 10 20:55:56 2010
@@ -144,17 +144,18 @@ class SvnDeltaTest < Test::Unit::TestCas
     apply_source = StringIO.new(source_text)
     apply_result = StringIO.new("")
 
-    handler = Svn::Delta.apply(apply_source, apply_result)
+    handler, digest = Svn::Delta.apply(apply_source, apply_result)
+    assert_nil(digest)
     handler.send(stream)
     apply_result.rewind
     assert_equal(target_text, apply_result.read)
 
-    handler = Svn::Delta.apply(apply_source, apply_result)
+    handler, digest = Svn::Delta.apply(apply_source, apply_result)
     handler.send(target_text)
     apply_result.rewind
     assert_equal(target_text * 2, apply_result.read)
 
-    handler = Svn::Delta.apply(apply_source, apply_result)
+    handler, digest = Svn::Delta.apply(apply_source, apply_result)
     handler.send(StringIO.new(target_text))
     apply_result.rewind
     assert_equal(target_text * 3, apply_result.read)

Modified: subversion/branches/ignore-mergeinfo/subversion/include/private/svn_atomic.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/private/svn_atomic.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/private/svn_atomic.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/private/svn_atomic.h Tue Aug 10 20:55:56 2010
@@ -105,14 +105,16 @@ extern "C" {
  *
  * @a global_status must be a pointer to a global, zero-initialized
  * #svn_atomic_t. @a init_func is a pointer to the function that performs
- * the actual initialization, and @a pool is passed on to the init_func
- * for its use.
+ * the actual initialization. @a baton and and @a pool are passed on to the
+ * init_func for its use.
  *
  * @since New in 1.5.
  */
 svn_error_t *
 svn_atomic__init_once(volatile svn_atomic_t *global_status,
-                      svn_error_t *(*init_func)(apr_pool_t*), apr_pool_t* pool);
+                      svn_error_t *(*init_func)(void*,apr_pool_t*),
+                      void *baton,
+                      apr_pool_t* pool);
 
 #ifdef __cplusplus
 }

Modified: subversion/branches/ignore-mergeinfo/subversion/include/private/svn_dep_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/private/svn_dep_compat.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/private/svn_dep_compat.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/private/svn_dep_compat.h Tue Aug 10 20:55:56 2010
@@ -55,6 +55,14 @@ extern "C" {
 #endif /* APR_VERSION_AT_LEAST */
 
 /**
+ * If we don't have a recent enough APR, emulate the behavior of the
+ * apr_array_clear() API.
+ */
+#if !APR_VERSION_AT_LEAST(1,3,0)
+#define apr_array_clear(arr)         (arr)->nelts = 0
+#endif
+
+/**
  * Check at compile time if the Serf version is at least a certain
  * level.
  * @param major The major version component of the version checked

Modified: subversion/branches/ignore-mergeinfo/subversion/include/private/svn_mergeinfo_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/private/svn_mergeinfo_private.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/private/svn_mergeinfo_private.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/private/svn_mergeinfo_private.h Tue Aug 10 20:55:56 2010
@@ -85,19 +85,33 @@ svn_boolean_t
 svn_mergeinfo__remove_empty_rangelists(svn_mergeinfo_t mergeinfo,
                                        apr_pool_t *pool);
 
-/* Makes a shallow (ie, mergeinfos are not duped, or altered at all;
-   keys share storage) copy of IN_CATALOG in *OUT_CATALOG.  PREFIX is
-   removed from the beginning of each key in the catalog; it is
-   illegal for any key to not start with PREFIX.  The new hash and
-   temporary values are allocated in POOL.  (This is useful for making
-   the return value from svn_ra_get_mergeinfo relative to the session
-   root, say.) */
+/* Make a shallow (ie, mergeinfos are not duped, or altered at all;
+   keys share storage) copy of IN_CATALOG in *OUT_CATALOG, removing
+   PREFIX_PATH (which is an absolute path) from the beginning of each
+   key in the catalog (each of which is also an absolute path).  It is
+   illegal for any key to not start with PREFIX_PATH.  The new hash
+   and temporary values are allocated in POOL.  (This is useful for
+   making the return value from svn_ra_get_mergeinfo relative to the
+   session root, say.) */
 svn_error_t *
 svn_mergeinfo__remove_prefix_from_catalog(svn_mergeinfo_catalog_t *out_catalog,
                                           svn_mergeinfo_catalog_t in_catalog,
-                                          const char *prefix,
+                                          const char *prefix_path,
                                           apr_pool_t *pool);
 
+/* Make a shallow (ie, mergeinfos are not duped, or altered at all;
+   though keys are reallocated) copy of IN_CATALOG in *OUT_CATALOG,
+   adding PREFIX_PATH to the beginning of each key in the catalog.
+
+   The new hash keys are allocated in RESULT_POOL.  SCRATCH_POOL
+   is used for any temporary allocations.*/
+svn_error_t *
+svn_mergeinfo__add_prefix_to_catalog(svn_mergeinfo_catalog_t *out_catalog,
+                                     svn_mergeinfo_catalog_t in_catalog,
+                                     const char *prefix_path,
+                                     apr_pool_t *result_pool,
+                                     apr_pool_t *scratch_pool);
+
 /* Makes a deep copy of MERGEINFO in *OUT_MERGEINFO.  If SUFFIX_REL_PATH is
    a valid relative path then add it to the end of each key path in
    *OUT_MERGEINFO.  *OUT_MERGEINFO is allocated in RESULT_POOL.  SCRATCH_POOL

Modified: subversion/branches/ignore-mergeinfo/subversion/include/private/svn_skel.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/private/svn_skel.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/private/svn_skel.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/private/svn_skel.h Tue Aug 10 20:55:56 2010
@@ -138,8 +138,11 @@ svn_skel_t *svn_skel__make_empty_list(ap
 void svn_skel__prepend(svn_skel_t *skel, svn_skel_t *list);
 
 
-/* Append SKEL to LIST.  */
-void svn_skel__append(svn_skel_t *list, const svn_skel_t *skel);
+/* Append SKEL to LIST. Note: this must traverse the LIST, so you
+   generally want to use svn_skel__prepend().
+
+   NOTE: careful of the argument order here.  */
+void svn_skel__append(svn_skel_t *list, svn_skel_t *skel);
 
 
 /* Create an atom skel whose contents are the string representation

Modified: subversion/branches/ignore-mergeinfo/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/private/svn_sqlite.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/private/svn_sqlite.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/private/svn_sqlite.h Tue Aug 10 20:55:56 2010
@@ -310,6 +310,12 @@ svn_sqlite__with_transaction(svn_sqlite_
                              void *cb_baton, apr_pool_t *scratch_pool);
 
 
+/* Hotcopy an SQLite database from SRC_PATH to DST_PATH. */
+svn_error_t *
+svn_sqlite__hotcopy(const char *src_path,
+                    const char *dst_path,
+                    apr_pool_t *scratch_pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/ignore-mergeinfo/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/private/svn_wc_private.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/private/svn_wc_private.h Tue Aug 10 20:55:56 2010
@@ -61,19 +61,6 @@ svn_wc__get_entry_versioned(const svn_wc
                             apr_pool_t *result_pool,
                             apr_pool_t *scratch_pool);
 
-/** Similar to svn_wc__get_entry_versioned(), but returns a NULL entry
- * instead of throwing an error (just like svn_wc_entry()).
- */
-svn_error_t *
-svn_wc__maybe_get_entry(const svn_wc_entry_t **entry,
-                        svn_wc_context_t *wc_ctx,
-                        const char *local_abspath,
-                        svn_node_kind_t kind,
-                        svn_boolean_t show_hidden,
-                        svn_boolean_t need_parent_stub,
-                        apr_pool_t *result_pool,
-                        apr_pool_t *scratch_pool);
-
 
 /** Given a @a local_abspath with a @a wc_ctx, set @a *switched to
  * TRUE if @a local_abspath is switched, otherwise set @a *switched to FALSE.
@@ -110,8 +97,7 @@ svn_wc__changelist_match(svn_wc_context_
  * for VERSIONED_FILE_ABSPATH's eol and keyword properties, but leaves
  * BASE_FILE_ABSPATH alone (as though BASE_FILE_ABSPATH were a text-base file,
  * which it usually is, only sometimes we're calling this on incoming
- * temporary text-bases).  If COMPARE_TEXTBASES is false, a clean copy of the
- * versioned file is compared to VERSIONED_FILE_ABSPATH.
+ * temporary text-bases).
  *
  * If an error is returned, the effect on *MODIFIED_P is undefined.
  *
@@ -122,7 +108,6 @@ svn_wc__versioned_file_modcheck(svn_bool
                                 svn_wc_context_t *wc_ctx,
                                 const char *versioned_file_abspath,
                                 const char *base_file_abspath,
-                                svn_boolean_t compare_textbases,
                                 apr_pool_t *scratch_pool);
 
 /**
@@ -131,7 +116,7 @@ svn_wc__versioned_file_modcheck(svn_bool
  * svn_wc_get_status_editor4().
  */
 svn_boolean_t
-svn_wc__is_sendable_status(const svn_wc_status2_t *status,
+svn_wc__is_sendable_status(const svn_wc_status3_t *status,
                            svn_boolean_t no_ignore,
                            svn_boolean_t get_all);
 
@@ -186,19 +171,18 @@ svn_wc__del_tree_conflict(svn_wc_context
                           const char *victim_abspath,
                           apr_pool_t *scratch_pool);
 
-/*
- * Read tree conflict descriptions from @a conflict_data.  Set @a *conflicts
- * to a hash of pointers to svn_wc_conflict_description2_t objects indexed by
- * svn_wc_conflict_description2_t.local_abspath, all newly allocated in @a
- * pool.  @a dir_path is the path to the working copy directory whose conflicts
- * are being read.  The conflicts read are the tree conflicts on the immediate
- * child nodes of @a dir_path.  Do all allocations in @a pool.
+
+/* Return a hash @a *tree_conflicts of all the children of @a
+ * local_abspath that are in tree conflicts.  The hash maps local
+ * abspaths to pointers to svn_wc_conflict_description2_t, all
+ * allocated in result pool.
  */
 svn_error_t *
-svn_wc__read_tree_conflicts(apr_hash_t **conflicts,
-                            const char *conflict_data,
-                            const char *dir_path,
-                            apr_pool_t *pool);
+svn_wc__get_all_tree_conflicts(apr_hash_t **tree_conflicts,
+                               svn_wc_context_t *wc_ctx,
+                               const char *local_abspath,
+                               apr_pool_t *result_pool,
+                               apr_pool_t *scratch_pool);
 
 /** Return a duplicate of @a conflict, allocated in @a pool.
  * A deep copy of all members, except the adm_access member, will be made.
@@ -216,40 +200,7 @@ svn_wc__strictly_is_wc_root(svn_boolean_
                             const char *local_abspath,
                             apr_pool_t *scratch_pool);
 
-/** Like svn_wc_adm_open3() but with a svn_wc_ctx_t* instead of an associated
- * baton.
- *
- * ### BH: This function is not for public consumption. New code should either
- *         use the deprecated access battons or the new wc contexts but not
- *         both. Too bad the WC-NG conversion is not done yet.
- */
-svn_error_t *
-svn_wc__adm_open_in_context(svn_wc_adm_access_t **adm_access,
-                            svn_wc_context_t *wc_ctx,
-                            const char *path,
-                            svn_boolean_t write_lock,
-                            int levels_to_lock,
-                            svn_cancel_func_t cancel_func,
-                            void *cancel_baton,
-                            apr_pool_t *pool);
 
-/** Like svn_wc_adm_probe_open3(), but with a svn_wc_context_t * instead of
- * an associated baton.
- *
- * ### See usage note to svn_wc__adm_open_in_context(), above.
- */
-svn_error_t *
-svn_wc__adm_probe_in_context(svn_wc_adm_access_t **adm_access,
-                             svn_wc_context_t *wc_ctx,
-                             const char *path,
-                             svn_boolean_t write_lock,
-                             int levels_to_lock,
-                             svn_cancel_func_t cancel_func,
-                             void *cancel_baton,
-                             apr_pool_t *pool);
-
-
-
 /**
  * The following are temporary APIs to aid in the transition from wc-1 to
  * wc-ng.  Use them for new development now, but they may be disappearing
@@ -261,17 +212,6 @@ typedef svn_error_t *(*svn_wc__node_foun
                                                   void *walk_baton,
                                                   apr_pool_t *scratch_pool);
 
-/**
- * Retrieve an @a adm_access for @a path from the @a wc_ctx.
- * If the @a adm_access for @a local_abspath is not found, this
- * function sets @a *adm_acess to NULL and does not return an error.
- */
-svn_error_t *
-svn_wc__adm_retrieve_from_context(svn_wc_adm_access_t **adm_access,
-                                  svn_wc_context_t *wc_ctx,
-                                  const char *local_abspath,
-                                  apr_pool_t *pool);
-
 
 /*
  * Convert from svn_wc_conflict_description2_t to svn_wc_conflict_description_t.
@@ -290,6 +230,18 @@ svn_wc_conflict_description2_t *
 svn_wc__cd_to_cd2(const svn_wc_conflict_description_t *conflict,
                   apr_pool_t *result_pool);
 
+/*
+ * Convert from svn_wc_status3_t to svn_wc_status2_t.
+ * Allocate the result in RESULT_POOL.
+ */
+svn_error_t *
+svn_wc__status2_from_3(svn_wc_status2_t **status,
+                       const svn_wc_status3_t *old_status, 
+                       svn_wc_context_t *wc_ctx,
+                       const char *local_abspath,
+                       apr_pool_t *result_pool,
+                       apr_pool_t *scratch_pool);
+
 
 /**
  * Fetch the absolute paths of all the working children of @a dir_abspath
@@ -316,6 +268,10 @@ svn_wc__node_get_children(const apr_arra
  * and/or UUID of added nodes. Otherwise set @a *repos_root_url and
  * *repos_uuid to NULL for added nodes.
  *
+ * If @a scan_deleted is TRUE, then scan the base information to find
+ * the (former) repos root and/or UUID of deleted nodes. Otherwise set
+ * @a *repos_root_url and *repos_uuid to NULL for deleted nodes.
+ *
  * Either input value may be NULL, indicating no interest.
  */
 svn_error_t *
@@ -324,23 +280,11 @@ svn_wc__node_get_repos_info(const char *
                             svn_wc_context_t *wc_ctx,
                             const char *local_abspath,
                             svn_boolean_t scan_added,
+                            svn_boolean_t scan_deleted,
                             apr_pool_t *result_pool,
                             apr_pool_t *scratch_pool);
 
 
-/**
- * Set @a kind to the @c svn_node_kind_t of @a abspath.  Use @a wc_ctx
- * to access the working copy, and @a scratch_pool for all temporary
- * allocations.  If @a abspath is not present in the working copy and
- * @a show_hidden is FALSE then set @a kind to @c svn_node_none.
- */
-svn_error_t *
-svn_wc__node_get_kind(svn_node_kind_t *kind,
-                      svn_wc_context_t *wc_ctx,
-                      const char *abspath,
-                      svn_boolean_t show_hidden,
-                      apr_pool_t *scratch_pool);
-
 
 /**
  * Get the depth of @a local_abspath using @a wc_ctx.  If @a local_abspath is
@@ -384,6 +328,32 @@ svn_wc__node_get_changelist(const char *
 
 
 /**
+ * Set @a *checksum to the checksum of the pristine text associated
+ * with @a local_abspath if the working copy has recorded such
+ * information, or to @c NULL otherwise.  Allocate the result in @a
+ * result_pool and use @a scratch_pool for temporary allocations.
+ */
+svn_error_t *
+svn_wc__node_get_base_checksum(const svn_checksum_t **checksum,
+                               svn_wc_context_t *wc_ctx,
+                               const char *local_abspath,
+                               apr_pool_t *result_pool,
+                               apr_pool_t *scratch_pool);
+
+/**
+ * Set @a *translated_size to the recorded size (in bytes) of the
+ * pristine text -- after translation -- associated with @a
+ * local_abspath.  If @a local_abspath isn't a file in the working
+ * copy, set @a *translated_size to SVN_INVALID_FILESIZE.  Use @a
+ * scratch_pool for temporary allocations.
+ */
+svn_error_t *
+svn_wc__node_get_translated_size(svn_filesize_t *translated_size,
+                                 svn_wc_context_t *wc_ctx,
+                                 const char *local_abspath,
+                                 apr_pool_t *scratch_pool);
+
+/**
  * Set @a *url to the corresponding url for @a local_abspath, using @a wc_ctx.
  * If the node is added, return the url it will have in the repository.
  *
@@ -399,6 +369,29 @@ svn_wc__node_get_url(const char **url,
 
 
 /**
+ * Set @a *copyfrom_url to the corresponding copy-from URL (allocated
+ * from @a result_pool), and @a copyfrom_rev to the corresponding
+ * copy-from revision, of @a local_abspath, using @a wc_ctx.  Set @a
+ * is_copy_target to TRUE iff @a local_abspath was the target of a
+ * copy information (versus being a member of the subtree beneath such
+ * a copy target).
+ *
+ * If @a local_abspath is not copied, set @a *copyfrom_rev to NULL and
+ * @a *copyfrom_rev to @c SVN_INVALID_REVNUM.
+ *
+ * Any of @a copyfrom_url, @a copyfrom_rev, or @a is_copy_target may
+ * be NULL if the caller doesn't care about those values.
+ */
+svn_error_t *
+svn_wc__node_get_copyfrom_info(const char **copyfrom_url,
+                               svn_revnum_t *copyfrom_rev,
+                               svn_boolean_t *is_copy_target,
+                               svn_wc_context_t *wc_ctx,
+                               const char *local_abspath,
+                               apr_pool_t *result_pool,
+                               apr_pool_t *scratch_pool);
+
+/**
  * Recursively call @a callbacks->found_node for all nodes underneath
  * @a local_abspath.
  */
@@ -426,7 +419,7 @@ svn_wc__node_is_status_deleted(svn_boole
                                apr_pool_t *scratch_pool);
 
 /**
- * Set @a *is_deleted to whether @a local_abspath is obstructed, using
+ * Set @a *is_obstructed to whether @a local_abspath is obstructed, using
  * @a wc_ctx.  If @a local_abspath is not in the working copy, return
  * @c SVN_ERR_WC_PATH_NOT_FOUND.  Use @a scratch_pool for all temporary
  * allocations.
@@ -438,7 +431,7 @@ svn_wc__node_is_status_obstructed(svn_bo
                                   apr_pool_t *scratch_pool);
 
 /**
- * Set @a *is_deleted to whether @a local_abspath is absent, using
+ * Set @a *is_absent to whether @a local_abspath is absent, using
  * @a wc_ctx.  If @a local_abspath is not in the working copy, return
  * @c SVN_ERR_WC_PATH_NOT_FOUND.  Use @a scratch_pool for all temporary
  * allocations.
@@ -466,17 +459,43 @@ svn_wc__node_is_status_present(svn_boole
  * @a wc_ctx.  If @a local_abspath is not in the working copy, return
  * @c SVN_ERR_WC_PATH_NOT_FOUND.  Use @a scratch_pool for all temporary
  * allocations.
+ *
+ * NOTE: "added" in this sense, means it was added, copied-here, or
+ *   moved-here. This function provides NO information on whether this
+ *   addition has replaced another node.
+ *
+ *   To be clear, this does NOT correspond to svn_wc_schedule_add.
  */
 svn_error_t *
-svn_wc__node_is_status_added(svn_boolean_t *is_added,
-                             svn_wc_context_t *wc_ctx,
-                             const char *local_abspath,
-                             apr_pool_t *scratch_pool);
+svn_wc__node_is_added(svn_boolean_t *is_added,
+                      svn_wc_context_t *wc_ctx,
+                      const char *local_abspath,
+                      apr_pool_t *scratch_pool);
+
+/**
+ * Set @a *is_replaced to whether @a local_abspath is replaced, using
+ * @a wc_ctx.  If @a local_abspath is not in the working copy, return
+ * @c SVN_ERR_WC_PATH_NOT_FOUND.  Use @a scratch_pool for all temporary
+ * allocations.
+ *
+ * NOTE: This corresponds directly to svn_wc_schedule_replace.
+ */
+svn_error_t *
+svn_wc__node_is_replaced(svn_boolean_t *is_replaced,
+                         svn_wc_context_t *wc_ctx,
+                         const char *local_abspath,
+                         apr_pool_t *scratch_pool);
 
 /**
  * Get the base revision of @a local_abspath using @a wc_ctx.  If
  * @a local_abspath is not in the working copy, return
  * @c SVN_ERR_WC_PATH_NOT_FOUND.
+ *
+ * In @a *base_revision, return the revision of the revert-base, i.e. the
+ * revision that this node was checked out at or last updated/switched to,
+ * regardless of any uncommitted changes (delete, replace and/or
+ * copy-here/move-here).  For a locally added/copied/moved-here node that is
+ * not part of a replace, return @c SVN_INVALID_REVNUM.
  */
 svn_error_t *
 svn_wc__node_get_base_rev(svn_revnum_t *base_revision,
@@ -484,17 +503,124 @@ svn_wc__node_get_base_rev(svn_revnum_t *
                           const char *local_abspath,
                           apr_pool_t *scratch_pool);
 
+
+/* Get the working revision of @a local_abspath using @a wc_ctx. If @a
+ * local_abspath is not in the working copy, return @c
+ * SVN_ERR_WC_PATH_NOT_FOUND.  
+ *
+ * This function is meant as a temporary solution for using the old-style
+ * semantics of entries. It will handle any uncommitted changes (delete,
+ * replace and/or copy-here/move-here).
+ *
+ * For a delete the @a revision is the BASE node of the operation root, e.g
+ * the path that was deleted. But if the delete is  below an add, the
+ * revision is set to SVN_INVALID_REVNUM. For an add, copy or move we return
+ * SVN_INVALID_REVNUM. In case of a replacement, we return the BASE
+ * revision. 
+ *
+ * The @changed_rev is set to the latest committed change to @a
+ * local_abspath before or equal to @a revision, unless the node is
+ * copied-here or moved-here. Then it is the revision of the latest committed
+ * change before or equal to the copyfrom_rev.  NOTE, that we use
+ * SVN_INVALID_REVNUM for a scheduled copy or move. 
+ *
+ * The @a changed_date and @a changed_author are the ones associated with @a
+ * changed_rev.  
+ */
+svn_error_t *
+svn_wc__node_get_working_rev_info(svn_revnum_t *revision,
+                                  svn_revnum_t *changed_rev, 
+                                  apr_time_t *changed_date, 
+                                  const char **changed_author,
+                                  svn_wc_context_t *wc_ctx, 
+                                  const char *local_abspath, 
+                                  apr_pool_t *scratch_pool,
+                                  apr_pool_t *result_pool);
+
+
+/** This whole function is for legacy, and it sucks. It does not really
+ * make sense to get the copy-from revision number without the copy-from
+ * URL, but higher level code currently wants that. This should go away.
+ * (This function serves to get away from entry_t->revision without having to
+ * change the public API.)
+ *
+ * Get the base revision of @a local_abspath using @a wc_ctx.  If @a
+ * local_abspath is not in the working copy, return @c
+ * SVN_ERR_WC_PATH_NOT_FOUND.
+ *
+ * Return the revision number of the base for this node's next commit,
+ * reflecting any local tree modifications affecting this node.
+ *
+ * If this node has no uncommitted changes, return the same as
+ * svn_wc__node_get_base_rev().
+ *
+ * If this node is moved-here or copied-here (possibly as part of a replace),
+ * return the revision of the copy/move source. Do the same even when the node
+ * has been removed from a recursive copy (subpath excluded from the copy).
+ *
+ * Else, if this node is locally added, return SVN_INVALID_REVNUM, or if this
+ * node is locally deleted or replaced, return the revert-base revision.
+ */
+svn_error_t *
+svn_wc__node_get_commit_base_rev(svn_revnum_t *base_revision,
+                                 svn_wc_context_t *wc_ctx,
+                                 const char *local_abspath,
+                                 apr_pool_t *scratch_pool);
+
+/**
+ * Fetch lock information (if any) for @a local_abspath using @a wc_ctx:
+ *
+ *   Set @a *lock_token to the lock token (or NULL)
+ *   Set @a *lock_owner to the owner of the lock (or NULL)
+ *   Set @a *lock_comment to the comment associated with the lock (or NULL)
+ *   Set @a *lock_date to the timestamp of the lock (or 0)
+ *
+ * Any of the aforementioned return values may be NULL to indicate
+ * that the caller doesn't care about those values.
+ *
+ * If @a local_abspath is not in the working copy, return @c
+ * SVN_ERR_WC_PATH_NOT_FOUND.
+ */
+svn_error_t *
+svn_wc__node_get_lock_info(const char **lock_token,
+                           const char **lock_owner,
+                           const char **lock_comment,
+                           apr_time_t *lock_date,
+                           svn_wc_context_t *wc_ctx,
+                           const char *local_abspath,
+                           apr_pool_t *result_pool,
+                           apr_pool_t *scratch_pool);
+
+
+/* Return TRUE in *FILE_EXTERNAL if the node LOCAL_ABSPATH is a file
+   external.
+
+   If the node does not exist in BASE, then SVN_ERR_WC_PATH_NOT_FOUND
+   will be returned.  */
+svn_error_t *
+svn_wc__node_is_file_external(svn_boolean_t *file_external,
+                              svn_wc_context_t *wc_ctx,
+                              const char *local_abspath,
+                              apr_pool_t *scratch_pool);
+
 /**
- * Get the lock token of @a local_abspath using @a wc_ctx or NULL
- * if there is no lock.  If @a local_abspath is not in the working
-*  copy, return @c SVN_ERR_WC_PATH_NOT_FOUND.
+ * Check what kinds of conflicts we have on @a local_abspath.
+ *
+ * We could have returned the conflicts at once if it wasn't for the fact
+ * that there can be multiple prop conflicts.
+ *
+ * One or two of @a prop_conflicted, @a text_conflicted and @a
+ * tree_conflicted can be NULL if we're not interrested in that particular
+ * value.
  */
 svn_error_t *
-svn_wc__node_get_lock_token(const char **lock_token,
-                            svn_wc_context_t *wc_ctx,
-                            const char *local_abspath,
-                            apr_pool_t *result_pool,
-                            apr_pool_t *scratch_pool);
+svn_wc__node_check_conflicts(svn_boolean_t *prop_conflicted,
+                             svn_boolean_t *text_conflicted,
+                             svn_boolean_t *tree_conflicted,
+                             svn_wc_context_t *wc_ctx,
+                             const char *local_abspath,
+                             apr_pool_t *result_pool,
+                             apr_pool_t *scratch_pool);
 
 
 /**
@@ -563,6 +689,14 @@ svn_wc__temp_mark_missing_not_present(co
                                       svn_wc_context_t *wc_ctx,
                                       apr_pool_t *scratch_pool);
 
+/* Return the @a *keep_local flag for local_abspath. (This flag will
+   go away once we have a consolidated administrative area) */
+svn_error_t *
+svn_wc__temp_get_keep_local(svn_boolean_t *keep_local,
+                            svn_wc_context_t *wc_ctx,
+                            const char *local_abspath,
+                            apr_pool_t *scratch_pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/ignore-mergeinfo/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/svn_client.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/svn_client.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/svn_client.h Tue Aug 10 20:55:56 2010
@@ -553,7 +553,7 @@ typedef struct svn_client_commit_item_t
 svn_client_commit_item3_t *
 svn_client_commit_item3_create(apr_pool_t *pool);
 
-/** Like svn_client_commit_item_create2() but with a stupid "const"
+/** Like svn_client_commit_item3_create() but with a stupid "const"
  * qualifier on the returned structure, and it returns an error that
  * will never happen.
  *
@@ -2404,6 +2404,7 @@ svn_client_diff5(const apr_array_header_
  * @c FALSE and @a show_copies_as_adds set to @c FALSE.
  *
  * @deprecated Provided for backward compatibility with the 1.6 API.
+ *
  * @since New in 1.5.
  */
 SVN_DEPRECATED
@@ -4895,8 +4896,42 @@ svn_client_info(const char *path_or_url,
  */
 
 /**
+ * The callback invoked by svn_client_patch() before attempting to patch
+ * the target file at @a canon_path_from_patchfile (the path as parsed from
+ * the patch file, but in canonicalized form). The callback can prevent
+ * the file from being patched by setting @a filtered to @c TRUE.
+ *
+ * The callback is also provided with @a patch_abspath, the path of a
+ * temporary file containing the patched result, and with @a reject_abspath,
+ * the path to a temporary file containing the diff text of any hunks
+ * which were rejected during patching.
+ *
+ * Because the callback is invoked before the patching attempt is made,
+ * there is no guarantee that the target file will actually be patched
+ * successfully. Client implementations must pay attention to notification
+ * feedback provided by svn_client_patch() to find out which paths were
+ * patched successfully.
+ *
+ * Note also that the files at @a patch_abspath and @a reject_abspath are
+ * guaranteed to remain on disk after patching only if the
+ * @a remove_tempfiles parameter for svn_client_patch() is @c FALSE.
+ *
+ * The const char * parameters may be allocated in @a scratch_pool which
+ * will be cleared after each invocation.
+ *
+ * @since New in 1.7.
+ */
+typedef svn_error_t *(*svn_client_patch_func_t)(
+  void *baton,
+  svn_boolean_t *filtered,
+  const char *canon_path_from_patchfile,
+  const char *patch_abspath,
+  const char *reject_abspath,
+  apr_pool_t *scratch_pool);
+
+/**
  * Apply a unidiff patch that's located at absolute path
- * @a abs_patch_path to the working copy at @a local_abspath.
+ * @a patch_abspath to the working copy at @a local_abspath.
  *
  * This function makes a best-effort attempt at applying the patch.
  * It might skip patch targets which cannot be patched (e.g. targets
@@ -4916,37 +4951,16 @@ svn_client_info(const char *path_or_url,
  * This is useful when applying a unidiff which was created with the
  * original and modified files swapped due to human error.
  *
- * Excluding patch targets from the patching process is possible by passing
- * @a include_patterns and/or @a exclude_patterns arrays containing
- * elements of type const char *.
- * If @a include_patterns is not NULL, patch targets not matching any glob
- * pattern in @a include_patterns will not be patched.
- * If @a exclude_patterns is not NULL, patch targets matching any glob pattern
- * in @a exclude_patterns will not be patched
- * The match is performed on the target path as parsed from the patch file,
- * after canonicalization.
- * If both @a include_patterns and @a exclude_patterns are specified,
- * the @a include_patterns are applied first, i.e. the @a exclude_patterns
- * are applied to all targets which matched one of the @a include_patterns.
- *
- * If @a patched_tempfiles is not NULL, return in @a *patched_tempfiles
- * a mapping {target path -> path to temporary file containing patched result}
- * for all patched targets which were neither skipped nor excluded via
- * @ignore_patterns or @a exlude_patterns.
- * Note that if all hunks were rejected, the patched result will look just
- * like the target file, unmodified.
- * If @a reject_tempfiles is not NULL, return in @a *reject_tempfiles
- * a mapping {target path -> path to temporary file containing rejected hunks}
- * Both @a *patched_tempfiles and @a *reject_tempfiles are allocated in
- * @a result_pool, and the key (target path) used is the path as parsed
- * from the patch, but in canonicalized form. The value (path to temporary
- * file) is an absolute path, also in canonicalized form.
- * The temporary files are closed, and it is the caller's responsibility
- * to remove them when they are no longer needed.
- * Using @a patched_tempfiles and @a reject_tempfiles in combination with
- * @a dry_run = TRUE makes it possible to generate a preview of the result
- * of the patching process, e.g. for display purposes, without actually
- * modifying the working copy.
+ * If @a ignore_whitespace is TRUE, allow patches to be applied if they
+ * only differ from the target by whitespace.
+ *
+ * If @a remove_tempfiles is TRUE, lifetimes of temporary files created
+ * during patching will be managed internally. Otherwise, the caller should
+ * take ownership of these files, the names of which can be obtained by
+ * passing a @a patch_func callback.
+ *
+ * If @a patch_func is non-NULL, invoke @a patch_func with @a patch_baton
+ * for each patch target processed.
  *
  * If @a ctx->notify_func2 is non-NULL, invoke @a ctx->notify_func2 with
  * @a ctx->notify_baton2 as patching progresses.
@@ -4959,15 +4973,15 @@ svn_client_info(const char *path_or_url,
  * @since New in 1.7.
  */
 svn_error_t *
-svn_client_patch(const char *abs_patch_path,
+svn_client_patch(const char *patch_abspath,
                  const char *local_abspath,
                  svn_boolean_t dry_run,
                  int strip_count,
                  svn_boolean_t reverse,
-                 const apr_array_header_t *include_patterns,
-                 const apr_array_header_t *exclude_patterns,
-                 apr_hash_t **patched_tempfiles,
-                 apr_hash_t **reject_tempfiles,
+                 svn_boolean_t ignore_whitespace,
+                 svn_boolean_t remove_tempfiles,
+                 svn_client_patch_func_t patch_func,
+                 void *patch_baton,
                  svn_client_ctx_t *ctx,
                  apr_pool_t *result_pool,
                  apr_pool_t *scratch_pool);

Modified: subversion/branches/ignore-mergeinfo/subversion/include/svn_delta.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/svn_delta.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/svn_delta.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/svn_delta.h Tue Aug 10 20:55:56 2010
@@ -94,6 +94,9 @@ svn_delta_version(void);
 
 /** Action codes for text delta instructions. */
 enum svn_delta_action {
+    /* Note: The svndiff implementation relies on the values assigned in
+     * this enumeration matching the instruction encoding values. */
+
     /** Append the @a length bytes at @a offset in the source view to the
      * target.
      *

Modified: subversion/branches/ignore-mergeinfo/subversion/include/svn_diff.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/svn_diff.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/svn_diff.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/svn_diff.h Tue Aug 10 20:55:56 2010
@@ -858,6 +858,8 @@ typedef struct svn_patch_t {
  * Return the next @a *patch in @a patch_file.
  * If no patch can be found, set @a *patch to NULL.
  * If @a reverse is TRUE, invert the patch while parsing it.
+ * If @a ignore_whitespace is TRUE, allow patches with no leading
+ * whitespace to be parsed.
  * Allocate results in @a result_pool.
  * Use @a scratch_pool for all other allocations.
  * 
@@ -866,6 +868,7 @@ svn_error_t *
 svn_diff_parse_next_patch(svn_patch_t **patch,
                           apr_file_t *patch_file,
                           svn_boolean_t reverse,
+                          svn_boolean_t ignore_whitespace,
                           apr_pool_t *result_pool,
                           apr_pool_t *scratch_pool);
 

Modified: subversion/branches/ignore-mergeinfo/subversion/include/svn_dirent_uri.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/svn_dirent_uri.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/svn_dirent_uri.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/svn_dirent_uri.h Tue Aug 10 20:55:56 2010
@@ -465,6 +465,11 @@ svn_relpath_canonicalize(const char *uri
  * separator characters, and possibly other semantically inoperative
  * transformations.
  *
+ * If @a uri starts with a schema, this function also normalizes the
+ * escaping of the path component by unescaping characters that don't
+ * need escaping and escaping characters that do need escaping but
+ * weren't.
+ *
  * This functions supports URLs.
  *
  * The returned uri may be statically allocated or allocated from @a pool.

Modified: subversion/branches/ignore-mergeinfo/subversion/include/svn_editor.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/svn_editor.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/svn_editor.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/svn_editor.h Tue Aug 10 20:55:56 2010
@@ -774,6 +774,8 @@ svn_editor_add_absent(svn_editor_t *edit
  * Set or change properties on the existing node at @a relpath.
  * ### TODO @todo Does this send *all* properties, always?
  * ### TODO @todo What is REVISION for?
+ * ### what about "entry props"? will these still be handled via
+ * ### the general prop function?
  *
  * @a complete must be FALSE if and only if
  * - @a relpath is a file and an svn_editor_set_text() call will follow on

Modified: subversion/branches/ignore-mergeinfo/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/svn_fs.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/svn_fs.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/svn_fs.h Tue Aug 10 20:55:56 2010
@@ -101,6 +101,13 @@ typedef struct svn_fs_t svn_fs_t;
  * @since New in 1.6.
  */
 #define SVN_FS_CONFIG_PRE_1_6_COMPATIBLE        "pre-1.6-compatible"
+
+/** Create repository format compatible with Subversion versions
+ * earlier than 1.7.
+ *
+ * @since New in 1.7.
+ */
+#define SVN_FS_CONFIG_PRE_1_7_COMPATIBLE        "pre-1.7-compatible"
 /** @} */
 
 

Modified: subversion/branches/ignore-mergeinfo/subversion/include/svn_io.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/svn_io.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/svn_io.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/svn_io.h Tue Aug 10 20:55:56 2010
@@ -93,8 +93,9 @@ typedef struct svn_io_dirent_t {
  * If @a path exists but is none of the above, set @a *kind to
  * #svn_node_unknown.
  *
- * If unable to determine @a path's kind, return an error, with @a *kind's
- * value undefined.
+ * If @a path is not a valid pathname, set @a *kind to #svn_node_none.  If
+ * unable to determine @a path's kind for any other reason, return an error,
+ * with @a *kind's value undefined.
  *
  * Use @a pool for temporary allocations.
  *
@@ -1918,15 +1919,6 @@ svn_io_write_version_file(const char *pa
                           int version,
                           apr_pool_t *pool);
 
-/** Wrapper for apr_file_mktemp().
- *
- * @since New in 1.7. */
-svn_error_t *
-svn_io_file_mktemp(apr_file_t **new_file,
-                   const char *templ,
-                   apr_int32_t flags,
-                   apr_pool_t *pool);
-
 /** Wrapper for apr_file_name_get().
  *
  * @since New in 1.7. */
@@ -1935,14 +1927,6 @@ svn_io_file_name_get(const char **filena
                      apr_file_t *file,
                      apr_pool_t *pool);
 
-/** Wrapper for apr_file_perms_set().
- *
- * @since New in 1.7. */
-svn_error_t *
-svn_io_file_perms_set(const char *fname,
-                      apr_fileperms_t perms,
-                      apr_pool_t *pool);
-
 /** @} */
 
 #ifdef __cplusplus

Modified: subversion/branches/ignore-mergeinfo/subversion/include/svn_iter.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/svn_iter.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/svn_iter.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/svn_iter.h Tue Aug 10 20:55:56 2010
@@ -66,7 +66,7 @@ typedef svn_error_t *(*svn_iter_apr_hash
  * If @a func returns an error other than @c SVN_ERR_ITER_BREAK, that
  * error is returned.  When @a func returns @c SVN_ERR_ITER_BREAK,
  * iteration is interrupted, but no error is returned and @a *completed is
- * set to @c FALSE.
+ * set to @c FALSE (even if this iteration was the last one).
  *
  * @since New in 1.5.
  */
@@ -102,7 +102,7 @@ typedef svn_error_t *(*svn_iter_apr_arra
  * If @a func returns an error other than @c SVN_ERR_ITER_BREAK, that
  * error is returned.  When @a func returns @c SVN_ERR_ITER_BREAK,
  * iteration is interrupted, but no error is returned and @a *completed is
- * set to @c FALSE.
+ * set to @c FALSE (even if this iteration was the last one).
  *
  * @since New in 1.5.
  */

Modified: subversion/branches/ignore-mergeinfo/subversion/include/svn_props.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/svn_props.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/svn_props.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/svn_props.h Tue Aug 10 20:55:56 2010
@@ -189,11 +189,6 @@ svn_prop_needs_translation(const char *p
  * are uninterested.  If no props exist in a certain category, and the
  * property list argument for that category is non-NULL, then that
  * array will come back with <tt>->nelts == 0</tt>.
- *
- * ### Hmmm, maybe a better future interface is to return an array of
- *     arrays, where the index into the array represents the index
- *     into @c svn_prop_kind_t.  That way we can add more prop kinds
- *     in the future without changing this interface...
  */
 svn_error_t *
 svn_categorize_props(const apr_array_header_t *proplist,
@@ -349,25 +344,6 @@ svn_prop_name_is_valid(const char *prop_
 
 /** Meta-data properties.
  *
- * ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one
- *    or more contributor license agreements.  See the NOTICE file
- *    distributed with this work for additional information
- *    regarding copyright ownership.  The ASF licenses this file
- *    to you under the Apache License, Version 2.0 (the
- *    "License"); you may not use this file except in compliance
- *    with the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing,
- *    software distributed under the License is distributed on an
- *    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *    KIND, either express or implied.  See the License for the
- *    specific language governing permissions and limitations
- *    under the License.
- * ====================================================================
- *
  * The following properties are used for storing meta-data about
  * individual entries in the meta-data branches of subversion,
  * see issue #1256 or browseable at
@@ -417,12 +393,12 @@ svn_prop_name_is_valid(const char *prop_
 
 /** The property name *prefix* that makes a property a "WC property".
  *
- * For example, WebDAV RA implementations might store a versioned-resource url as a WC
- * prop like this:
+ * For example, WebDAV RA implementations might store a versioned-resource
+ * url as a WC prop like this:
  *
  * @verbatim
       name = svn:wc:dav_url
-      val  = http://www.lyra.org/repos/452348/e.289 @endverbatim
+      val  = http://www.example.com/repos/452348/e.289 @endverbatim
  *
  * The client will try to protect WC props by warning users against
  * changing them.  The client will also send them back to the RA layer

Modified: subversion/branches/ignore-mergeinfo/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/include/svn_repos.h?rev=984206&r1=984205&r2=984206&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/include/svn_repos.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/include/svn_repos.h Tue Aug 10 20:55:56 2010
@@ -2115,6 +2115,15 @@ enum svn_repos_load_uuid
   svn_repos_load_uuid_force
 };
 
+/** Callback for providing per revision progress while dumping or verifying
+ *  the repository.
+ *
+ * @since New in 1.7. */
+typedef svn_error_t *(*svn_repos_notify_func_t)(void *baton,
+                                                svn_revnum_t rev,
+                                                const char *warning_text,
+                                                apr_pool_t *scratch_pool);
+
 
 /**
  * Verify the contents of the file system in @a repos.
@@ -2126,12 +2135,34 @@ enum svn_repos_load_uuid
  * revision 0.  If @a end_rev is #SVN_INVALID_REVNUM, then verify
  * through the @c HEAD revision.
  *
+ * For every verified revision call @a notify_func with @a rev set to
+ * the verified revision and @a warning_text @c NULL. For warnings call @a
+ * notify_func with @a warning_text set.
+ *
  * If @a cancel_func is not @c NULL, call it periodically with @a
  * cancel_baton as argument to see if the caller wishes to cancel the
  * verification.
  *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_repos_verify_fs2(svn_repos_t *repos,
+                     svn_revnum_t start_rev,
+                     svn_revnum_t end_rev,
+                     svn_repos_notify_func_t notify_func,
+                     void *notify_baton,
+                     svn_cancel_func_t cancel,
+                     void *cancel_baton,
+                     apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_repos_verify_fs2(), but with a feedback_stream instead of
+ * handling feedback via the notify_func handler
+ *
  * @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.6 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_repos_verify_fs(svn_repos_t *repos,
                     svn_stream_t *feedback_stream,
@@ -2141,7 +2172,6 @@ svn_repos_verify_fs(svn_repos_t *repos,
                     void *cancel_baton,
                     apr_pool_t *pool);
 
-
 /**
  * Dump the contents of the filesystem within already-open @a repos into
  * writable @a dumpstream.  Begin at revision @a start_rev, and dump every
@@ -2165,12 +2195,37 @@ svn_repos_verify_fs(svn_repos_t *repos,
  * be done with full plain text.  A dump with @a use_deltas set cannot
  * be loaded by Subversion 1.0.x.
  *
+ * If @a notify_func is not @c NULL, then for every dumped revision call
+ * @a notify_func with @a rev set to the dumped revision and @a warning_text
+ * @c NULL. For warnings call @a notify_func with @a warning_text.
+ *
  * If @a cancel_func is not @c NULL, it is called periodically with
  * @a cancel_baton as argument to see if the client wishes to cancel
  * the dump.
  *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_repos_dump_fs3(svn_repos_t *repos,
+                   svn_stream_t *dumpstream,
+                   svn_revnum_t start_rev,
+                   svn_revnum_t end_rev,
+                   svn_boolean_t incremental,
+                   svn_boolean_t use_deltas,
+                   svn_repos_notify_func_t notify_func,
+                   void *notify_baton,
+                   svn_cancel_func_t cancel_func,
+                   void *cancel_baton,
+                   apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_repos_dump_fs3(), but with a feedback_stream instead of
+ * handling feedback via the notify_func handler
+ *
  * @since New in 1.1.
+ * @deprecated Provided for backward compatibility with the 1.6 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_repos_dump_fs2(svn_repos_t *repos,
                    svn_stream_t *dumpstream,
@@ -2183,7 +2238,6 @@ svn_repos_dump_fs2(svn_repos_t *repos,
                    void *cancel_baton,
                    apr_pool_t *pool);
 
-
 /**
  * Similar to svn_repos_dump_fs2(), but with the @a use_deltas
  * parameter always set to @c FALSE.