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.