You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2012/08/16 12:18:03 UTC
svn commit: r1373783 [4/50] - in /subversion/branches/compressed-pristines:
./ build/ build/ac-macros/ build/generator/ build/generator/templates/
build/win32/ contrib/client-side/emacs/ contrib/client-side/svn-push/
contrib/client-side/svnmerge/ contr...
Modified: subversion/branches/compressed-pristines/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Thu Aug 16 10:17:48 2012
@@ -75,7 +75,7 @@ Java_org_apache_subversion_javahl_SVNCli
JNIUtil::throwError(_("bad C++ this"));
return;
}
- cl->dispose();
+ cl->dispose(jthis);
}
JNIEXPORT void JNICALL
@@ -1171,12 +1171,12 @@ JNIEXPORT void JNICALL Java_org_apache_s
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZ
+Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZZ
(JNIEnv *env, jobject jthis, jstring jtarget1, jobject jrevision1,
jstring jtarget2, jobject jrevision2, jstring jrelativeToDir,
jobject jstream, jobject jdepth, jobject jchangelists,
jboolean jignoreAncestry, jboolean jnoDiffDeleted, jboolean jforce,
- jboolean jcopiesAsAdds, jboolean jignoreProps)
+ jboolean jcopiesAsAdds, jboolean jignoreProps, jboolean jpropsOnly)
{
JNIEntry(SVNClient, diff);
SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1217,16 +1217,17 @@ Java_org_apache_subversion_javahl_SVNCli
EnumMapper::toDepth(jdepth), changelists,
jignoreAncestry ? true:false,
jnoDiffDeleted ? true:false, jforce ? true:false,
- jcopiesAsAdds ? true:false, jignoreProps ? true:false);
+ jcopiesAsAdds ? true:false, jignoreProps ? true:false,
+ jpropsOnly ? true:false);
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZ
+Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZZ
(JNIEnv *env, jobject jthis, jstring jtarget, jobject jpegRevision,
jobject jstartRevision, jobject jendRevision, jstring jrelativeToDir,
jobject jstream, jobject jdepth, jobject jchangelists,
jboolean jignoreAncestry, jboolean jnoDiffDeleted, jboolean jforce,
- jboolean jcopiesAsAdds, jboolean jignoreProps)
+ jboolean jcopiesAsAdds, jboolean jignoreProps, jboolean jpropsOnly)
{
JNIEntry(SVNClient, diff);
SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1267,7 +1268,8 @@ Java_org_apache_subversion_javahl_SVNCli
dataOut, EnumMapper::toDepth(jdepth), changelists,
jignoreAncestry ? true:false,
jnoDiffDeleted ? true:false, jforce ? true:false,
- jcopiesAsAdds ? true:false, jignoreProps ? true:false);
+ jcopiesAsAdds ? true:false, jignoreProps ? true:false,
+ jpropsOnly ? true:false);
}
JNIEXPORT void JNICALL
Modified: subversion/branches/compressed-pristines/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp Thu Aug 16 10:17:48 2012
@@ -60,7 +60,7 @@ Java_org_apache_subversion_javahl_SVNRep
JNIUtil::throwError(_("bad C++ this"));
return;
}
- cl->dispose();
+ cl->dispose(jthis);
}
JNIEXPORT void JNICALL
Modified: subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java Thu Aug 16 10:17:48 2012
@@ -544,7 +544,22 @@ public class ClientNotifyInformation ext
failed_forbidden_by_server ("failed forbidden by server"),
/** Operation skipped the path because it was conflicted */
- skip_conflicted ("skipped conflicted path");
+ skip_conflicted ("skipped conflicted path"),
+
+ /** The lock on a file was removed during update */
+ update_broken_lock ("broken lock removed"),
+
+ /** Operation failed because a node is obstructed */
+ failed_obstructed ("failed by obstruction"),
+
+ /** Conflict resolver is starting. */
+ conflict_resolver_starting ("conflict resolver starting"),
+
+ /** Conflict resolver is done. */
+ conflict_resolver_done ("conflict resolver done"),
+
+ /** Operation left local modifications. */
+ left_local_modifications ("left local modifications");
/**
* The description of the action.
Modified: subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java Thu Aug 16 10:17:48 2012
@@ -204,7 +204,12 @@ public class ConflictDescriptor
/**
* Attempting to delete object.
*/
- delete;
+ delete,
+
+ /**
+ * Attempting to replace object.
+ */
+ replace;
}
/**
@@ -240,7 +245,12 @@ public class ConflictDescriptor
/**
* Object is already added or schedule-add.
*/
- added;
+ added,
+
+ /**
+ * Object is already replaced.
+ */
+ replaced;
}
public enum Operation
Modified: subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Thu Aug 16 10:17:48 2012
@@ -522,13 +522,14 @@ public interface ISVNClient
* @param copiesAsAdds if set, copied files will be shown in their
* entirety, not as diffs from their sources
* @param ignoreProps don't show property diffs
+ * @param propsOnly show property changes only
* @throws ClientException
*/
void diff(String target1, Revision revision1, String target2,
Revision revision2, String relativeToDir, OutputStream outStream,
Depth depth, Collection<String> changelists,
boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
- boolean copiesAsAdds, boolean ignoreProps)
+ boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly)
throws ClientException;
void diff(String target1, Revision revision1, String target2,
@@ -554,6 +555,7 @@ public interface ISVNClient
* @param copiesAsAdds if set, copied files will be shown in their
* entirety, not as diffs from their sources
* @param ignoreProps don't show property diffs
+ * @param propsOnly show property changes only
* @throws ClientException
*/
void diff(String target, Revision pegRevision, Revision startRevision,
@@ -561,7 +563,7 @@ public interface ISVNClient
OutputStream outStream,
Depth depth, Collection<String> changelists,
boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
- boolean copiesAsAdds, boolean ignoreProps)
+ boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly)
throws ClientException;
void diff(String target, Revision pegRevision, Revision startRevision,
Modified: subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Thu Aug 16 10:17:48 2012
@@ -278,7 +278,7 @@ public class SVNClient implements ISVNCl
OutputStream stream = new FileOutputStream(outFileName);
diff(target1, revision1, target2, revision2, relativeToDir,
stream, depth, changelists, ignoreAncestry, noDiffDeleted,
- force, copiesAsAdds, false);
+ force, copiesAsAdds, false, false);
} catch (FileNotFoundException ex) {
throw ClientException.fromException(ex);
}
@@ -290,7 +290,7 @@ public class SVNClient implements ISVNCl
Collection<String> changelists,
boolean ignoreAncestry, boolean noDiffDeleted,
boolean force, boolean copiesAsAdds,
- boolean ignoreProps)
+ boolean ignoreProps, boolean propsOnly)
throws ClientException;
public void diff(String target, Revision pegRevision,
@@ -305,7 +305,7 @@ public class SVNClient implements ISVNCl
OutputStream stream = new FileOutputStream(outFileName);
diff(target, pegRevision, startRevision, endRevision,
relativeToDir, stream, depth, changelists, ignoreAncestry,
- noDiffDeleted, force, copiesAsAdds, false);
+ noDiffDeleted, force, copiesAsAdds, false, false);
} catch (FileNotFoundException ex) {
throw ClientException.fromException(ex);
}
@@ -317,7 +317,7 @@ public class SVNClient implements ISVNCl
Depth depth, Collection<String> changelists,
boolean ignoreAncestry, boolean noDiffDeleted,
boolean force, boolean copiesAsAdds,
- boolean ignoreProps)
+ boolean ignoreProps, boolean propsOnly)
throws ClientException;
public native void diffSummarize(String target1, Revision revision1,
Modified: subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java Thu Aug 16 10:17:48 2012
@@ -125,8 +125,12 @@ public class ConflictDescriptor
aDesc.getAction().ordinal(), aDesc.getReason().ordinal(),
aDesc.getOperation().ordinal(), aDesc.getBasePath(),
aDesc.getTheirPath(), aDesc.getMyPath(), aDesc.getMergedPath(),
- new ConflictVersion(aDesc.getSrcLeftVersion()),
- new ConflictVersion(aDesc.getSrcRightVersion()));
+ aDesc.getSrcLeftVersion() != null
+ ? new ConflictVersion(aDesc.getSrcLeftVersion())
+ : null,
+ aDesc.getSrcRightVersion() != null
+ ? new ConflictVersion(aDesc.getSrcRightVersion())
+ : null);
}
public String getPath()
Modified: subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Thu Aug 16 10:17:48 2012
@@ -1983,6 +1983,11 @@ public class BasicTests extends SVNTests
assertEquals("wrong date with getTimeMillis()",
lm[0].getDate(),
new java.util.Date(lm[0].getTimeMillis()));
+
+ // Ensure that targets get canonicalized
+ String non_canonical = thisTest.getUrl().toString() + "/";
+ LogMessage lm2[] = collectLogMessages(non_canonical, null,
+ ranges, false, true, false, 0);
}
/**
@@ -3104,10 +3109,12 @@ public class BasicTests extends SVNTests
conflict.getSrcLeftVersion().getPathInRepos(), tcTest.getUrl() + "/A/B/E/alpha");
assertEquals(conflict.getSrcLeftVersion().getPegRevision(), 1L);
- assertEquals(conflict.getSrcRightVersion().getNodeKind(), NodeKind.none);
- assertEquals(conflict.getSrcRightVersion().getReposURL(), tcTest.getUrl().toString());
- assertEquals(conflict.getSrcRightVersion().getPegRevision(), 2L);
-
+ if (conflict.getSrcRightVersion() != null)
+ {
+ assertEquals(conflict.getSrcRightVersion().getNodeKind(), NodeKind.none);
+ assertEquals(conflict.getSrcRightVersion().getReposURL(), tcTest.getUrl().toString());
+ assertEquals(conflict.getSrcRightVersion().getPegRevision(), 2L);
+ }
}
/**
Modified: subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java Thu Aug 16 10:17:48 2012
@@ -145,6 +145,16 @@ class SVNTests extends TestCase
protected static String rootUrl;
/**
+ * Username to use in tests
+ */
+ protected final static String USERNAME = "jrandom";
+
+ /**
+ * Password to use in tests
+ */
+ protected final static String PASSWORD = "rayjandom";
+
+ /**
* Create a JUnit <code>TestCase</code> instance.
*/
protected SVNTests()
@@ -276,7 +286,7 @@ class SVNTests extends TestCase
this.client = new SVNClient();
this.client.notification2(new MyNotifier());
this.client.setPrompt(new DefaultPromptUserPassword());
- this.client.username("jrandom");
+ this.client.username(USERNAME);
this.client.setProgressCallback(new DefaultProgressListener());
this.client.setConfigDirectory(this.conf.getAbsolutePath());
this.expectedCommitItems = new HashMap<String, MyCommitItem>();
@@ -284,7 +294,7 @@ class SVNTests extends TestCase
/**
* the default prompt : never prompts the user, provides defaults answers
*/
- private static class DefaultPromptUserPassword implements UserPasswordCallback
+ protected static class DefaultPromptUserPassword implements UserPasswordCallback
{
public int askTrustSSLServer(String info, boolean allowPermanently)
@@ -304,12 +314,12 @@ class SVNTests extends TestCase
public String getPassword()
{
- return "rayjandom";
+ return PASSWORD;
}
public String getUsername()
{
- return "jrandom";
+ return USERNAME;
}
public boolean prompt(String realm, String username)
Modified: subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java Thu Aug 16 10:17:48 2012
@@ -1963,6 +1963,11 @@ public class BasicTests extends SVNTests
assertEquals("wrong date with getTimeMillis()",
lm[0].getDate(),
new java.util.Date(lm[0].getTimeMillis()));
+
+ // Ensure that targets get canonicalized
+ String non_canonical = thisTest.getUrl().toString() + "/";
+ LogMessage lm2[] = client.logMessages(non_canonical, null,
+ null, false, true);
}
/**
@@ -3034,10 +3039,12 @@ public class BasicTests extends SVNTests
conflict.getSrcLeftVersion().getPathInRepos(), tcTest.getUrl() + "/A/B/E/alpha");
assertEquals(conflict.getSrcLeftVersion().getPegRevision(), 1L);
- assertEquals(conflict.getSrcRightVersion().getNodeKind(), NodeKind.none);
- assertEquals(conflict.getSrcRightVersion().getReposURL(), tcTest.getUrl());
- assertEquals(conflict.getSrcRightVersion().getPegRevision(), 2L);
-
+ if (conflict.getSrcRightVersion() != null)
+ {
+ assertEquals(conflict.getSrcRightVersion().getNodeKind(), NodeKind.none);
+ assertEquals(conflict.getSrcRightVersion().getReposURL(), tcTest.getUrl());
+ assertEquals(conflict.getSrcRightVersion().getPegRevision(), 2L);
+ }
}
/**
Modified: subversion/branches/compressed-pristines/subversion/bindings/swig/core.i
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/swig/core.i?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/swig/core.i (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/swig/core.i Thu Aug 16 10:17:48 2012
@@ -259,34 +259,34 @@
/* -----------------------------------------------------------------------
input rangelist
*/
-%apply apr_array_header_t *RANGELIST {
- apr_array_header_t *rangeinput,
- const apr_array_header_t *rangelist,
- apr_array_header_t *from,
- apr_array_header_t *to,
- apr_array_header_t *changes,
- apr_array_header_t *eraser,
- apr_array_header_t *whiteboard,
- apr_array_header_t *rangelist1,
- apr_array_header_t *rangelist2
+%apply svn_rangelist_t *RANGELIST {
+ svn_rangelist_t *rangeinput,
+ const svn_rangelist_t *rangelist,
+ svn_rangelist_t *from,
+ svn_rangelist_t *to,
+ svn_rangelist_t *changes,
+ svn_rangelist_t *eraser,
+ svn_rangelist_t *whiteboard,
+ svn_rangelist_t *rangelist1,
+ svn_rangelist_t *rangelist2
}
/* -----------------------------------------------------------------------
output rangelist
*/
-%apply apr_array_header_t **RANGELIST {
- apr_array_header_t **rangelist,
- apr_array_header_t **inheritable_rangelist,
- apr_array_header_t **deleted,
- apr_array_header_t **added,
- apr_array_header_t **output
+%apply svn_rangelist_t **RANGELIST {
+ svn_rangelist_t **rangelist,
+ svn_rangelist_t **inheritable_rangelist,
+ svn_rangelist_t **deleted,
+ svn_rangelist_t **added,
+ svn_rangelist_t **output
}
/* -----------------------------------------------------------------------
input and output rangelist
*/
-%apply apr_array_header_t **RANGELIST_INOUT {
- apr_array_header_t **rangelist_inout
+%apply svn_rangelist_t **RANGELIST_INOUT {
+ svn_rangelist_t **rangelist_inout
}
/* -----------------------------------------------------------------------
@@ -351,12 +351,17 @@
*/
#ifdef SWIGPYTHON
%typemap(in) (char *buffer, apr_size_t *len) ($*2_type temp) {
- if (!PyInt_Check($input)) {
+ if (PyLong_Check($input)) {
+ temp = PyLong_AsLong($input);
+ }
+ else if (PyInt_Check($input)) {
+ temp = PyInt_AsLong($input);
+ }
+ else {
PyErr_SetString(PyExc_TypeError,
"expecting an integer for the buffer size");
SWIG_fail;
}
- temp = PyInt_AsLong($input);
if (temp < 0) {
PyErr_SetString(PyExc_ValueError,
"buffer size must be a positive integer");
@@ -1140,15 +1145,15 @@ svn_swig_mergeinfo_sort(apr_hash_t **mer
}
static svn_error_t *
-svn_swig_rangelist_merge(apr_array_header_t **rangelist_inout,
- apr_array_header_t *changes,
+svn_swig_rangelist_merge(svn_rangelist_t **rangelist_inout,
+ svn_rangelist_t *changes,
apr_pool_t *pool)
{
return svn_rangelist_merge(rangelist_inout, changes, pool);
}
static svn_error_t *
-svn_swig_rangelist_reverse(apr_array_header_t **rangelist_inout,
+svn_swig_rangelist_reverse(svn_rangelist_t **rangelist_inout,
apr_pool_t *pool)
{
return svn_rangelist_reverse(*rangelist_inout, pool);
Modified: subversion/branches/compressed-pristines/subversion/bindings/swig/include/svn_containers.swg
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/swig/include/svn_containers.swg?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/swig/include/svn_containers.swg (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/swig/include/svn_containers.swg Thu Aug 16 10:17:48 2012
@@ -692,10 +692,11 @@
/* -----------------------------------------------------------------------
Input of apr_array_header_t * <svn_merge_range_t *>
+ (that is: svn_rangelist_t *)
*/
#ifdef SWIGPYTHON
-%typemap(in) apr_array_header_t *RANGELIST {
- $1 = (apr_array_header_t *) svn_swig_py_seq_to_array($input,
+%typemap(in) svn_rangelist_t *RANGELIST {
+ $1 = (svn_rangelist_t *) svn_swig_py_seq_to_array($input,
sizeof(const svn_merge_range_t *),
svn_swig_py_unwrap_struct_ptr,
$descriptor(svn_merge_range_t *),
@@ -707,7 +708,7 @@
#endif
#ifdef SWIGRUBY
-%typemap(in) apr_array_header_t *RANGELIST {
+%typemap(in) svn_rangelist_t *RANGELIST {
$1 = svn_swig_rb_array_to_apr_array_merge_range($input, _global_pool);
}
#endif
@@ -809,7 +810,7 @@
Output of
apr_hash_t * <const char *,
apr_hash_t * <const char *,
- array_header_t * <svn_merge_range_t *>>>
+ apr_array_header_t * <svn_merge_range_t *>>>
*/
#ifdef SWIGRUBY
%typemap(argout) apr_hash_t **MERGEINFO_CATALOG
@@ -831,9 +832,10 @@
/* -----------------------------------------------------------------------
Output of apr_array_header_t * <svn_merge_range_t *>
+ (that is: svn_rangelist_t *)
*/
#ifdef SWIGPYTHON
-%typemap(argout) apr_array_header_t **RANGELIST {
+%typemap(argout) svn_rangelist_t **RANGELIST {
%append_output
(svn_swig_py_pointerlist_to_list(*$1, $descriptor(svn_merge_range_t *),
_global_py_pool));
@@ -842,10 +844,10 @@
}
}
-%typemap(in) apr_array_header_t **RANGELIST_INOUT ($*1_ltype temp)
+%typemap(in) svn_rangelist_t **RANGELIST_INOUT ($*1_ltype temp)
{
$1 = &temp;
- *$1 = (apr_array_header_t *) svn_swig_py_seq_to_array($input,
+ *$1 = (svn_rangelist_t *) svn_swig_py_seq_to_array($input,
sizeof(const svn_merge_range_t *),
svn_swig_py_unwrap_struct_ptr,
$descriptor(svn_merge_range_t *),
@@ -858,11 +860,11 @@
#endif
#ifdef SWIGRUBY
-%typemap(argout) apr_array_header_t **RANGELIST {
+%typemap(argout) svn_rangelist_t **RANGELIST {
%append_output(svn_swig_rb_apr_array_to_array_merge_range(*$1));
}
-%typemap(in) apr_array_header_t **RANGELIST_INOUT ($*1_ltype temp)
+%typemap(in) svn_rangelist_t **RANGELIST_INOUT ($*1_ltype temp)
{
$1 = &temp;
*$1 = svn_swig_rb_array_to_apr_array_merge_range($input, _global_pool);
@@ -870,8 +872,8 @@
#endif
#if defined(SWIGPYTHON) || defined(SWIGRUBY)
-%typemap(argout) apr_array_header_t **RANGELIST_INOUT =
- apr_array_header_t **RANGELIST;
+%typemap(argout) svn_rangelist_t **RANGELIST_INOUT =
+ svn_rangelist_t **RANGELIST;
#endif
/* -----------------------------------------------------------------------
Modified: subversion/branches/compressed-pristines/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Thu Aug 16 10:17:48 2012
@@ -988,7 +988,7 @@ apr_hash_t *svn_swig_py_mergeinfo_from_d
PyObject *key = PyList_GetItem(keys, i);
PyObject *value = PyDict_GetItem(dict, key);
const char *pathname = make_string_from_ob(key, pool);
- const apr_array_header_t *ranges = svn_swig_py_seq_to_array(value,
+ const svn_rangelist_t *ranges = svn_swig_py_seq_to_array(value,
sizeof(const svn_merge_range_t *),
svn_swig_py_unwrap_struct_ptr,
svn_swig_TypeQuery("svn_merge_range_t *"),
Modified: subversion/branches/compressed-pristines/subversion/bindings/swig/python/svn/fs.py
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/swig/python/svn/fs.py?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/swig/python/svn/fs.py (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/swig/python/svn/fs.py Thu Aug 16 10:17:48 2012
@@ -115,7 +115,7 @@ class FileDiff:
+ [self.tempfile1, self.tempfile2]
# open the pipe, and return the file object for reading from the child.
- p = _subprocess.Popen(cmd, stdout=_subprocess.PIPE,
+ p = _subprocess.Popen(cmd, stdout=_subprocess.PIPE, bufsize=-1,
close_fds=_sys.platform != "win32")
return p.stdout
Modified: subversion/branches/compressed-pristines/subversion/bindings/swig/ruby/test/test_wc.rb
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/bindings/swig/ruby/test/test_wc.rb?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/bindings/swig/ruby/test/test_wc.rb (original)
+++ subversion/branches/compressed-pristines/subversion/bindings/swig/ruby/test/test_wc.rb Thu Aug 16 10:17:48 2012
@@ -326,12 +326,16 @@ class SvnWcTest < Test::Unit::TestCase
ignored_errors = []
callbacks.ignored_errors = ignored_errors
access.walk_entries(@wc_path, callbacks)
+ sorted_ignored_errors = ignored_errors.sort_by {|path, err| path}
+ sorted_ignored_errors = sorted_ignored_errors.collect! do |path, err|
+ [path, err.class]
+ end
assert_equal([
[@wc_path, Svn::Error::Cancelled],
[path1, Svn::Error::Cancelled],
[path2, Svn::Error::Cancelled],
],
- ignored_errors.collect {|path, err| [path, err.class]})
+ sorted_ignored_errors)
end
end
end
Modified: subversion/branches/compressed-pristines/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/private/svn_client_private.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/private/svn_client_private.h Thu Aug 16 10:17:48 2012
@@ -144,9 +144,33 @@ svn_client__youngest_common_ancestor(con
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
-/* Set *ORIGIN_P to the origin of the WC node at WC_ABSPATH. If the node
+/* Get the repository location of the base node at LOCAL_ABSPATH.
+ *
+ * A pathrev_t wrapper around svn_wc__node_get_base().
+ *
+ * Set *BASE_P to the location 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).
+ *
+ * If there is no base node at LOCAL_ABSPATH (such as when there is a
+ * locally added/copied/moved-here node that is not part of a replace),
+ * set *BASE_P to NULL.
+ */
+svn_error_t *
+svn_client__wc_node_get_base(svn_client__pathrev_t **base_p,
+ const char *wc_abspath,
+ svn_wc_context_t *wc_ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/* Get the original location of the WC node at LOCAL_ABSPATH.
+ *
+ * A pathrev_t wrapper around svn_wc__node_get_origin().
+ *
+ * Set *ORIGIN_P to the origin of the WC node at WC_ABSPATH. If the node
* is a local copy, give the copy-from location. If the node is locally
- * added or deleted, set *ORIGIN_P to NULL. */
+ * added or deleted, set *ORIGIN_P to NULL.
+ */
svn_error_t *
svn_client__wc_node_get_origin(svn_client__pathrev_t **origin_p,
const char *wc_abspath,
@@ -154,16 +178,13 @@ svn_client__wc_node_get_origin(svn_clien
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
-/* A macro to mark sections of code that belong to the 'symmetric merge'
- * feature while it's still new. */
-#ifdef SVN_DEBUG
-#define SVN_WITH_SYMMETRIC_MERGE
-#endif
-
-#ifdef SVN_WITH_SYMMETRIC_MERGE
/* Details of a symmetric merge. */
-typedef struct svn_client__symmetric_merge_t svn_client__symmetric_merge_t;
+typedef struct svn_client__symmetric_merge_t
+{
+ svn_client__pathrev_t *yca, *base, *mid, *right;
+ svn_boolean_t allow_mixed_rev, allow_local_mods, allow_switched_subtrees;
+} svn_client__symmetric_merge_t;
/* Find the information needed to merge all unmerged changes from a source
* branch into a target branch. The information is the locations of the
@@ -189,9 +210,7 @@ svn_client__find_symmetric_merge(svn_cli
*
* Merge according to MERGE into the WC at TARGET_WCPATH.
*
- * The other parameters are as in svn_client_merge4(). IGNORE_ANCESTRY
- * only controls the diffing of files, it doesn't prevent mergeinfo from
- * being used.
+ * The other parameters are as in svn_client_merge4().
*
* ### TODO: There's little point in this function being the only way the
* caller can use the result of svn_client__find_symmetric_merge(). The
@@ -205,7 +224,6 @@ svn_error_t *
svn_client__do_symmetric_merge(const svn_client__symmetric_merge_t *merge,
const char *target_wcpath,
svn_depth_t depth,
- svn_boolean_t ignore_ancestry,
svn_boolean_t force,
svn_boolean_t record_only,
svn_boolean_t dry_run,
@@ -213,7 +231,6 @@ svn_client__do_symmetric_merge(const svn
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
-#endif /* SVN_WITH_SYMMETRIC_MERGE */
#ifdef __cplusplus
}
Modified: subversion/branches/compressed-pristines/subversion/include/private/svn_dav_protocol.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/private/svn_dav_protocol.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/private/svn_dav_protocol.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/private/svn_dav_protocol.h Thu Aug 16 10:17:48 2012
@@ -1,7 +1,6 @@
/*
* svn_dav_protocol.h: Declarations of the protocol shared by the
- * mod_dav_svn backend for httpd's mod_dav, and its ra_neon and
- * ra_serf RA DAV clients.
+ * mod_dav_svn backend for httpd's mod_dav and its ra_serf RA DAV clients.
*
* ====================================================================
* Licensed to the Apache Software Foundation (ASF) under one
Modified: subversion/branches/compressed-pristines/subversion/include/private/svn_fs_util.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/private/svn_fs_util.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/private/svn_fs_util.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/private/svn_fs_util.h Thu Aug 16 10:17:48 2012
@@ -59,6 +59,13 @@ svn_fs__canonicalize_abspath(const char
svn_error_t *
svn_fs__check_fs(svn_fs_t *fs, svn_boolean_t expect_open);
+/* An identifier for FS to be used in the text of error messages.
+ (Not used anywhere but in this header.)
+
+ Note: we log the UUID, rather than (fs)->path, since some of these
+ errors are marshalled to the client. */
+#define svn_fs__identifier(fs) ((fs)->uuid)
+
/* Constructing nice error messages for roots. */
/* Build an SVN_ERR_FS_NOT_FOUND error, with a detailed error text,
@@ -79,17 +86,17 @@ svn_fs__check_fs(svn_fs_t *fs, svn_boole
/* Build a detailed `file already exists' message for PATH in ROOT.
ROOT is of type svn_fs_root_t *. */
-#define SVN_FS__ALREADY_EXISTS(root, path_str, pool) ( \
+#define SVN_FS__ALREADY_EXISTS(root, path_str) ( \
root->is_txn_root ? \
svn_error_createf \
(SVN_ERR_FS_ALREADY_EXISTS, 0, \
_("File already exists: filesystem '%s', transaction '%s', path '%s'"), \
- svn_dirent_local_style(root->fs->path, pool), root->txn, path_str) \
+ svn_fs__identifier(root->fs), root->txn, path_str) \
: \
svn_error_createf \
(SVN_ERR_FS_ALREADY_EXISTS, 0, \
_("File already exists: filesystem '%s', revision %ld, path '%s'"), \
- svn_dirent_local_style(root->fs->path, pool), root->rev, path_str) \
+ svn_fs__identifier(root->fs), root->rev, path_str) \
)
/* ROOT is of type svn_fs_root_t *. */
@@ -100,64 +107,64 @@ svn_fs__check_fs(svn_fs_t *fs, svn_boole
/* SVN_FS__ERR_NOT_MUTABLE: the caller attempted to change a node
outside of a transaction. FS is of type "svn_fs_t *". */
-#define SVN_FS__ERR_NOT_MUTABLE(fs, rev, path_in_repo, scratch_pool) \
+#define SVN_FS__ERR_NOT_MUTABLE(fs, rev, path_in_repo) \
svn_error_createf( \
SVN_ERR_FS_NOT_MUTABLE, 0, \
_("File is not mutable: filesystem '%s', revision %ld, path '%s'"), \
- svn_dirent_local_style(fs->path, scratch_pool), rev, path_in_repo)
+ svn_fs__identifier(fs), rev, path_in_repo)
-/* FS is of type "svn fs_t *".*/
-#define SVN_FS__ERR_NOT_DIRECTORY(fs, path_in_repo, scratch_pool) \
+/* FS is of type "svn_fs_t *".*/
+#define SVN_FS__ERR_NOT_DIRECTORY(fs, path_in_repo) \
svn_error_createf( \
SVN_ERR_FS_NOT_DIRECTORY, 0, \
_("'%s' is not a directory in filesystem '%s'"), \
- path_in_repo, svn_dirent_local_style(fs->path, scratch_pool))
+ path_in_repo, svn_fs__identifier(fs))
-/* FS is of type "svn fs_t *". */
-#define SVN_FS__ERR_NOT_FILE(fs, path_in_repo, scratch_pool) \
+/* FS is of type "svn_fs_t *". */
+#define SVN_FS__ERR_NOT_FILE(fs, path_in_repo) \
svn_error_createf( \
SVN_ERR_FS_NOT_FILE, 0, \
_("'%s' is not a file in filesystem '%s'"), \
- path_in_repo, svn_dirent_local_style(fs->path, scratch_pool))
+ path_in_repo, svn_fs__identifier(fs))
-/* FS is of type "svn fs_t *", LOCK is of type "svn_lock_t *". */
-#define SVN_FS__ERR_PATH_ALREADY_LOCKED(fs, lock, scratch_pool) \
+/* FS is of type "svn_fs_t *", LOCK is of type "svn_lock_t *". */
+#define SVN_FS__ERR_PATH_ALREADY_LOCKED(fs, lock) \
svn_error_createf( \
SVN_ERR_FS_PATH_ALREADY_LOCKED, 0, \
_("Path '%s' is already locked by user '%s' in filesystem '%s'"), \
- lock->path, lock->owner, svn_dirent_local_style(fs->path, scratch_pool))
+ (lock)->path, (lock)->owner, svn_fs__identifier(fs))
-/* FS is of type "svn fs_t *". */
-#define SVN_FS__ERR_NO_SUCH_LOCK(fs, path_in_repo, scratch_pool) \
+/* FS is of type "svn_fs_t *". */
+#define SVN_FS__ERR_NO_SUCH_LOCK(fs, path_in_repo) \
svn_error_createf( \
SVN_ERR_FS_NO_SUCH_LOCK, 0, \
_("No lock on path '%s' in filesystem '%s'"), \
- path_in_repo, svn_dirent_local_style(fs->path, scratch_pool))
+ path_in_repo, svn_fs__identifier(fs))
-/* FS is of type "svn fs_t *". */
-#define SVN_FS__ERR_LOCK_EXPIRED(fs, token, scratch_pool) \
+/* FS is of type "svn_fs_t *". */
+#define SVN_FS__ERR_LOCK_EXPIRED(fs, token) \
svn_error_createf( \
SVN_ERR_FS_LOCK_EXPIRED, 0, \
_("Lock has expired: lock-token '%s' in filesystem '%s'"), \
- token, svn_dirent_local_style(fs->path, scratch_pool))
+ token, svn_fs__identifier(fs))
-/* FS is of type "svn fs_t *". */
-#define SVN_FS__ERR_NO_USER(fs, scratch_pool) \
+/* FS is of type "svn_fs_t *". */
+#define SVN_FS__ERR_NO_USER(fs) \
svn_error_createf( \
SVN_ERR_FS_NO_USER, 0, \
_("No username is currently associated with filesystem '%s'"), \
- svn_dirent_local_style(fs->path, scratch_pool))
+ svn_fs__identifier(fs))
/* SVN_FS__ERR_LOCK_OWNER_MISMATCH: trying to use a lock whose
LOCK_OWNER doesn't match the USERNAME associated with FS.
- FS is of type "svn fs_t *". */
-#define SVN_FS__ERR_LOCK_OWNER_MISMATCH(fs, username, lock_owner, pool) \
+ FS is of type "svn_fs_t *". */
+#define SVN_FS__ERR_LOCK_OWNER_MISMATCH(fs, username, lock_owner) \
svn_error_createf( \
SVN_ERR_FS_LOCK_OWNER_MISMATCH, 0, \
_("User '%s' is trying to use a lock owned by '%s' in " \
"filesystem '%s'"), \
- username, lock_owner, svn_dirent_local_style(fs->path, pool))
+ username, lock_owner, svn_fs__identifier(fs))
/* Return a NULL-terminated copy of the first component of PATH,
allocated in POOL. If path is empty, or consists entirely of
Modified: subversion/branches/compressed-pristines/subversion/include/private/svn_mergeinfo_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/private/svn_mergeinfo_private.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/private/svn_mergeinfo_private.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/private/svn_mergeinfo_private.h Thu Aug 16 10:17:48 2012
@@ -41,7 +41,7 @@ extern "C" {
/* Set inheritability of all ranges in RANGELIST to INHERITABLE.
If RANGELIST is NULL do nothing. */
void
-svn_rangelist__set_inheritance(apr_array_header_t *rangelist,
+svn_rangelist__set_inheritance(svn_rangelist_t *rangelist,
svn_boolean_t inheritable);
/* Parse a rangelist from the string STR. Set *RANGELIST to the result,
@@ -52,7 +52,7 @@ svn_rangelist__set_inheritance(apr_array
* Unlike svn_mergeinfo_parse(), this does not sort the ranges into order
* or combine adjacent and overlapping ranges. */
svn_error_t *
-svn_rangelist__parse(apr_array_header_t **rangelist,
+svn_rangelist__parse(svn_rangelist_t **rangelist,
const char *str,
apr_pool_t *result_pool);
@@ -185,7 +185,8 @@ svn_mergeinfo__to_formatted_string(svn_s
apr_pool_t *pool);
/* Set *YOUNGEST_REV and *OLDEST_REV to the youngest and oldest revisions
- found in the rangelists within MERGEINFO. If MERGEINFO is NULL or empty
+ found in the rangelists within MERGEINFO. Note that *OLDEST_REV is
+ exclusive and *YOUNGEST_REV is inclusive. If MERGEINFO is NULL or empty
set *YOUNGEST_REV and *OLDEST_REV to SVN_INVALID_REVNUM. */
svn_error_t *
svn_mergeinfo__get_range_endpoints(svn_revnum_t *youngest_rev,
@@ -194,9 +195,9 @@ svn_mergeinfo__get_range_endpoints(svn_r
apr_pool_t *pool);
/* Set *FILTERED_MERGEINFO to a deep copy of MERGEINFO, allocated in
- RESULT_POOL, less any rangelists that fall outside of the range
- OLDEST_REV:YOUNGEST_REV (inclusive) if INCLUDE_RANGE is true, or less
- any rangelists within the range OLDEST_REV:YOUNGEST_REV if INCLUDE_RANGE
+ RESULT_POOL, less any revision ranges that fall outside of the range
+ OLDEST_REV:YOUNGEST_REV (exclusive:inclusive) if INCLUDE_RANGE is true,
+ or less any ranges within OLDEST_REV:YOUNGEST_REV if INCLUDE_RANGE
is false. If all the rangelists mapped to a given path are filtered
then filter that path as well. If all paths are filtered or MERGEINFO is
empty or NULL then *FILTERED_MERGEINFO is set to an empty hash.
@@ -238,7 +239,7 @@ svn_mergeinfo__is_noninheritable(svn_mer
/* Return a rangelist with one svn_merge_range_t * element defined by START,
END, and INHERITABLE. The rangelist and its contents are allocated in
RESULT_POOL. */
-apr_array_header_t *
+svn_rangelist_t *
svn_rangelist__initialize(svn_revnum_t start,
svn_revnum_t end,
svn_boolean_t inheritable,
@@ -276,7 +277,7 @@ svn_mergeinfo__mergeinfo_from_segments(s
* RESULT_POOL. See svn_rangelist_merge2() for details of inheritability
* etc. */
svn_error_t *
-svn_rangelist__merge_many(apr_array_header_t *merged_rangelist,
+svn_rangelist__merge_many(svn_rangelist_t *merged_rangelist,
svn_mergeinfo_t mergeinfo,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
Propchange: subversion/branches/compressed-pristines/subversion/include/private/svn_mutex.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: subversion/branches/compressed-pristines/subversion/include/private/svn_ra_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/private/svn_ra_private.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/private/svn_ra_private.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/private/svn_ra_private.h Thu Aug 16 10:17:48 2012
@@ -32,6 +32,8 @@
#include "svn_error.h"
#include "svn_ra.h"
#include "svn_delta.h"
+#include "svn_editor.h"
+#include "svn_io.h"
#ifdef __cplusplus
extern "C" {
@@ -132,6 +134,153 @@ svn_error_t *
svn_ra__register_editor_shim_callbacks(svn_ra_session_t *ra_session,
svn_delta_shim_callbacks_t *callbacks);
+
+/* Using information from BATON, provide the (file's) pristine contents
+ for REPOS_RELPATH. They are returned in *CONTENTS, and correspond to
+ *REVISION.
+
+ If a pristine is not available (ie. a locally-added node), then set
+ *CONTENTS to NULL; *REVISION will not be examined in this case.
+
+ These are allocated in RESULT_POOL. SCRATCH_POOL can be used
+ for temporary allocations. */
+typedef svn_error_t *(*svn_ra__provide_base_cb_t)(
+ svn_stream_t **contents,
+ svn_revnum_t *revision,
+ void *baton,
+ const char *repos_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/* Using information from BATON, provide the pristine properties for
+ REPOS_RELPATH. They are returned in *PROPS, and correspond to *REVISION.
+
+ If properties are not available (ie. a locally-added node), then set
+ *PROPS to NULL; *REVISION will not be examined in this case.
+
+ The properties are allocated in RESULT_POOL. SCRATCH_POOL can be used
+ for temporary allocations. */
+typedef svn_error_t *(*svn_ra__provide_props_cb_t)(
+ apr_hash_t **props,
+ svn_revnum_t *revision,
+ void *baton,
+ const char *repos_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/* Using information from BATON, fetch the kind of REPOS_RELPATH at revision
+ SRC_REVISION, returning it in *KIND.
+
+ If the kind cannot be determined, then set *KIND to svn_kind_unknown.
+
+ Temporary allocations can be made in SCRATCH_POOL. */
+typedef svn_error_t *(*svn_ra__get_copysrc_kind_cb_t)(
+ svn_kind_t *kind,
+ void *baton,
+ const char *repos_relpath,
+ svn_revnum_t src_revision,
+ apr_pool_t *scratch_pool);
+
+
+/* Return an Ev2-based editor for performing commits.
+
+ The editor is associated with the given SESSION, and its implied target
+ repository.
+
+ REVPROPS contains all the revision properties that should be stored onto
+ the newly-committed revision. SVN_PROP_REVISION_AUTHOR will be set to
+ the username as determined by the session; overwriting any prior value
+ that may be present in REVPROPS.
+
+ COMMIT_CB/BATON contain the callback to receive post-commit information.
+
+ LOCK_TOKENS should contain all lock tokens necessary to modify paths
+ within the commit. If KEEP_LOCKS is FALSE, then the paths associated
+ with these tokens will be unlocked.
+ ### today, LOCK_TOKENS is session_relpath:token_value. in the future,
+ ### it should be repos_relpath:token_value.
+
+ PROVIDE_BASE_CB is a callback to fetch pristine contents, used to send
+ an svndiff over the wire to the server. This may be NULL, indicating
+ pristine contents are not available (eg. URL-based operations or import).
+
+ PROVIDE_PROPS_CB is a callback to fetch pristine properties, used to
+ send property deltas over the wire to the server. This may be NULL,
+ indicating pristine properties are not available (eg. URL-based operations
+ or an import).
+
+ GET_COPYSRC_KIND_CB is a callback to determine the kind of a copy-source.
+ This is necessary when an Ev2/Ev1 shim is required by the RA provider,
+ in order to determine whether to use delta->add_directory() or the
+ delta->add_file() vtable entry to perform the copy.
+ ### unclear on impact if this is NULL.
+ ### this callback will disappear when "everything" is running Ev2
+
+ CB_BATON is the baton used/shared by the above three callbacks.
+
+ CANCEL_FUNC/BATON is a standard cancellation function, and is used for
+ the returned Ev2 editor, and possibly other RA-specific operations.
+
+ *EDITOR will be allocated in RESULT_POOL, and all temporary allocations
+ will be performed in SCRATCH_POOL.
+*/
+svn_error_t *
+svn_ra__get_commit_ev2(svn_editor_t **editor,
+ svn_ra_session_t *session,
+ apr_hash_t *revprops,
+ svn_commit_callback2_t commit_cb,
+ void *commit_baton,
+ apr_hash_t *lock_tokens,
+ svn_boolean_t keep_locks,
+ svn_ra__provide_base_cb_t provide_base_cb,
+ svn_ra__provide_props_cb_t provide_props_cb,
+ svn_ra__get_copysrc_kind_cb_t get_copysrc_kind_cb,
+ void *cb_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+
+/* Similar to #svn_ra_replay_revstart_callback_t, but with an Ev2 editor. */
+typedef svn_error_t *(*svn_ra__replay_revstart_ev2_callback_t)(
+ svn_revnum_t revision,
+ void *replay_baton,
+ svn_editor_t **editor,
+ apr_hash_t *rev_props,
+ apr_pool_t *pool);
+
+/* Similar to #svn_ra_replay_revfinish_callback_t, but with an Ev2 editor. */
+typedef svn_error_t *(*svn_ra__replay_revfinish_ev2_callback_t)(
+ svn_revnum_t revision,
+ void *replay_baton,
+ svn_editor_t *editor,
+ apr_hash_t *rev_props,
+ apr_pool_t *pool);
+
+/* Similar to svn_ra_replay_range(), but uses Ev2 versions of the callback
+ functions. */
+svn_error_t *
+svn_ra__replay_range_ev2(svn_ra_session_t *session,
+ svn_revnum_t start_revision,
+ svn_revnum_t end_revision,
+ svn_revnum_t low_water_mark,
+ svn_boolean_t send_deltas,
+ svn_ra__replay_revstart_ev2_callback_t revstart_func,
+ svn_ra__replay_revfinish_ev2_callback_t revfinish_func,
+ void *replay_baton,
+ apr_pool_t *scratch_pool);
+
+/* Similar to svn_ra_replay(), but with an Ev2 editor. */
+svn_error_t *
+svn_ra__replay_ev2(svn_ra_session_t *session,
+ svn_revnum_t revision,
+ svn_revnum_t low_water_mark,
+ svn_boolean_t send_deltas,
+ svn_editor_t *editor,
+ apr_pool_t *scratch_pool);
+
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/compressed-pristines/subversion/include/private/svn_repos_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/private/svn_repos_private.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/private/svn_repos_private.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/private/svn_repos_private.h Thu Aug 16 10:17:48 2012
@@ -29,8 +29,9 @@
#include <apr_pools.h>
-#include "svn_repos.h"
#include "svn_types.h"
+#include "svn_repos.h"
+#include "svn_editor.h"
#ifdef __cplusplus
extern "C" {
@@ -81,6 +82,38 @@ const char *
svn_repos__post_commit_error_str(svn_error_t *err,
apr_pool_t *pool);
+/* A repos version of svn_fs_type */
+svn_error_t *
+svn_repos__fs_type(const char **fs_type,
+ const char *repos_path,
+ apr_pool_t *pool);
+
+
+/* Create a commit editor for REPOS, based on REVISION. */
+svn_error_t *
+svn_repos__get_commit_ev2(svn_editor_t **editor,
+ svn_repos_t *repos,
+ svn_authz_t *authz,
+ const char *authz_repos_name,
+ const char *authz_user,
+ apr_hash_t *revprops,
+ svn_commit_callback2_t commit_cb,
+ void *commit_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+svn_error_t *
+svn_repos__replay_ev2(svn_fs_root_t *root,
+ const char *base_dir,
+ svn_revnum_t low_water_mark,
+ svn_editor_t *editor,
+ svn_repos_authz_func_t authz_read_func,
+ void *authz_read_baton,
+ apr_pool_t *scratch_pool);
+
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/compressed-pristines/subversion/include/private/svn_skel.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/private/svn_skel.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/private/svn_skel.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/private/svn_skel.h Thu Aug 16 10:17:48 2012
@@ -133,6 +133,11 @@ svn_skel_t *svn_skel__mem_atom(const voi
/* Create an empty list skel, allocated from POOL. */
svn_skel_t *svn_skel__make_empty_list(apr_pool_t *pool);
+/* Duplicates the skel structure SRC_SKEL and if DUP_DATA is true also the
+ data it references in RESULT_POOL */
+svn_skel_t *svn_skel__dup(const svn_skel_t *src_skel, svn_boolean_t dup_data,
+ apr_pool_t *result_pool);
+
/* Prepend SKEL to LIST. */
void svn_skel__prepend(svn_skel_t *skel, svn_skel_t *list);
Modified: subversion/branches/compressed-pristines/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/private/svn_sqlite.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/private/svn_sqlite.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/private/svn_sqlite.h Thu Aug 16 10:17:48 2012
@@ -151,7 +151,9 @@ svn_sqlite__get_statement(svn_sqlite__st
Spec Argument type Item type
---- ----------------- ---------
n <none, absent> Column assignment skip
- i apr_int64_t Number
+ d int Number
+ L apr_int64_t Number
+ i apr_int64_t Number (deprecated format spec)
s const char * String
b const void * Blob data
apr_size_t Blob length
Modified: subversion/branches/compressed-pristines/subversion/include/private/svn_subr_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/private/svn_subr_private.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/private/svn_subr_private.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/private/svn_subr_private.h Thu Aug 16 10:17:48 2012
@@ -201,6 +201,99 @@ svn_stream__from_spillbuf(apr_size_t blo
/** @} */
+/**
+ * Internal function for creating a MD5 checksum from a binary digest.
+ *
+ * @since New in 1.8
+ */
+svn_checksum_t *
+svn_checksum__from_digest_md5(const unsigned char *digest,
+ apr_pool_t *result_pool);
+
+/**
+ * Internal function for creating a SHA1 checksum from a binary
+ * digest.
+ *
+ * @since New in 1.8
+ */
+svn_checksum_t *
+svn_checksum__from_digest_sha1(const unsigned char *digest,
+ apr_pool_t *result_pool);
+
+
+/**
+ * @defgroup svn_hash_support Hash table serialization support
+ * @{
+ */
+
+/*----------------------------------------------------*/
+
+/**
+ * @defgroup svn_hash_misc Miscellaneous hash APIs
+ * @{
+ */
+
+/**
+ * Clear any key/value pairs in the hash table. A wrapper for a
+ * apr_hash_clear(), which isn't available until APR 1.3.0.
+ *
+ * @since New in 1.5.
+ */
+svn_error_t *
+svn_hash__clear(apr_hash_t *hash, apr_pool_t *pool);
+
+/** @} */
+
+
+/**
+ * @defgroup svn_hash_getters Specialized getter APIs for hashes
+ * @{
+ */
+
+/** Find the value of a @a key in @a hash, return the value.
+ *
+ * If @a hash is @c NULL or if the @a key cannot be found, the
+ * @a default_value will be returned.
+ *
+ * @since New in 1.7.
+ */
+const char *
+svn_hash__get_cstring(apr_hash_t *hash,
+ const char *key,
+ const char *default_value);
+
+/** Like svn_hash_get_cstring(), but for boolean values.
+ *
+ * Parses the value as a boolean value. The recognized representations
+ * are 'TRUE'/'FALSE', 'yes'/'no', 'on'/'off', '1'/'0'; case does not
+ * matter.
+ *
+ * @since New in 1.7.
+ */
+svn_boolean_t
+svn_hash__get_bool(apr_hash_t *hash,
+ const char *key,
+ svn_boolean_t default_value);
+
+/** @} */
+
+/**
+ * @defgroup svn_hash_create Create optimized APR hash tables
+ * @{
+ */
+
+/** Returns a hash table, allocated in @a pool, with the same ordering of
+ * elements as APR 1.4.5 or earlier (using apr_hashfunc_default) but uses
+ * a faster hash function implementation.
+ *
+ * @since New in 1.8.
+ */
+apr_hash_t *
+svn_hash__make(apr_pool_t *pool);
+
+/** @} */
+
+/** @} */
#ifdef __cplusplus
}
Propchange: subversion/branches/compressed-pristines/subversion/include/private/svn_subr_private.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: subversion/branches/compressed-pristines/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/private/svn_wc_private.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/private/svn_wc_private.h Thu Aug 16 10:17:48 2012
@@ -228,6 +228,9 @@ svn_wc__external_register(svn_wc_context
/* Remove the external at LOCAL_ABSPATH from the working copy identified by
WRI_ABSPATH using WC_CTX.
+ If DECLARATION_ONLY is TRUE, only remove the registration and leave the
+ on-disk structure untouched.
+
If not NULL, call CANCEL_FUNC with CANCEL_BATON to allow canceling while
removing the working copy files.
@@ -237,6 +240,7 @@ svn_error_t *
svn_wc__external_remove(svn_wc_context_t *wc_ctx,
const char *wri_abspath,
const char *local_abspath,
+ svn_boolean_t declaration_only,
svn_cancel_func_t cancel_func,
void *cancel_baton,
apr_pool_t *scratch_pool);
@@ -305,20 +309,6 @@ svn_wc__del_tree_conflict(svn_wc_context
const char *victim_abspath,
apr_pool_t *scratch_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__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);
-
-
/** Like svn_wc_is_wc_root(), but it doesn't consider switched subdirs or
* deleted entries as working copy roots.
*/
@@ -628,21 +618,31 @@ svn_wc__node_has_working(svn_boolean_t *
/**
- * 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.
+ * Get the repository location of the base node at @a local_abspath.
*
- * 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,
+ * Set *REVISION, *REPOS_RELPATH, *REPOS_ROOT_URL and *REPOS_UUID to the
+ * location 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.
+ * copy-here/move-here).
+ *
+ * If there is no base node at @a local_abspath (such as when there is a
+ * locally added/copied/moved-here node that is not part of a replace),
+ * return @c SVN_INVALID_REVNUM/NULL/NULL/NULL.
+ *
+ * All output arguments may be NULL.
+ *
+ * Allocate the results in @a result_pool. Perform temporary allocations in
+ * @a scratch_pool.
*/
svn_error_t *
-svn_wc__node_get_base_rev(svn_revnum_t *base_revision,
- svn_wc_context_t *wc_ctx,
- const char *local_abspath,
- apr_pool_t *scratch_pool);
+svn_wc__node_get_base(svn_revnum_t *revision,
+ const char **repos_relpath,
+ const char **repos_root_url,
+ const char **repos_uuid,
+ svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/* Get the working revision of @a local_abspath using @a wc_ctx. If @a
@@ -679,34 +679,33 @@ svn_wc__node_get_pre_ng_status_data(svn_
apr_pool_t *scratch_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.)
+/**
+ * Return the location of the base for this node's next commit,
+ * reflecting any local tree modifications affecting this node.
*
- * Get the base revision of @a local_abspath using @a wc_ctx. If @a
+ * Get the base location 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 has no uncommitted changes, return the same location as
+ * svn_wc__node_get_base().
*
* 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
+ * return the location 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.
+ * Else, if this node is locally added, return SVN_INVALID_REVNUM/NULL, or
+ * if locally deleted or replaced, return the revert-base location.
*/
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);
+svn_wc__node_get_commit_base(svn_revnum_t *revision,
+ const char **repos_relpath,
+ const char **repos_root_url,
+ const char **repos_uuid,
+ svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/**
* Fetch lock information (if any) for @a local_abspath using @a wc_ctx:
@@ -733,27 +732,6 @@ svn_wc__node_get_lock_info(const char **
apr_pool_t *scratch_pool);
/**
- * A hack to remove the last entry from libsvn_client. This simply fetches an
- * some values from WC-NG, and puts the needed bits into the output parameters,
- * allocated in @a result_pool.
- *
- * All output arguments can be NULL to indicate that the
- * caller is not interested in the specific result.
- *
- * @a local_abspath and @a wc_ctx are what you think they are.
- */
-svn_error_t *
-svn_wc__node_get_conflict_info(const char **conflict_old,
- const char **conflict_new,
- const char **conflict_wrk,
- const char **prejfile,
- svn_wc_context_t *wc_ctx,
- const char *local_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-
-/**
* Acquire a recursive write lock for @a local_abspath. If @a lock_anchor
* is true, determine if @a local_abspath has an anchor that should be locked
* instead; otherwise, @a local_abspath must be a versioned directory.
@@ -879,10 +857,6 @@ typedef svn_error_t *(*svn_wc__proplist_
* If @a propname is not NULL, the passed hash table will only contain
* the property @a propname.
*
- * If @a base_props is @c TRUE, get the unmodified BASE properties
- * from the working copy, instead of getting the current (or "WORKING")
- * properties.
- *
* If @a pristine is not @c TRUE, and @a base_props is FALSE show local
* modifications to the properties.
*
@@ -903,7 +877,6 @@ svn_wc__prop_list_recursive(svn_wc_conte
const char *local_abspath,
const char *propname,
svn_depth_t depth,
- svn_boolean_t base_props,
svn_boolean_t pristine,
const apr_array_header_t *changelists,
svn_wc__proplist_receiver_t receiver_func,
@@ -912,6 +885,20 @@ svn_wc__prop_list_recursive(svn_wc_conte
void *cancel_baton,
apr_pool_t *scratch_pool);
+/** Obtain a mapping of const char * local_abspaths to const svn_string_t*
+ * property values in *VALUES, of all PROPNAME properties on LOCAL_ABSPATH
+ * and its descendants.
+ *
+ * Allocate the result in RESULT_POOL, and perform temporary allocations in
+ * SCRATCH_POOL.
+ */
+svn_error_t *
+svn_wc__prop_retrieve_recursive(apr_hash_t **values,
+ svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ const char *propname,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/**
* For use by entries.c and entries-dump.c to read old-format working copies.
@@ -984,20 +971,20 @@ svn_wc__has_switched_subtrees(svn_boolea
const char *trail_url,
apr_pool_t *scratch_pool);
-/* Set @a *server_excluded_subtrees to a hash mapping <tt>const char *</tt>
+/* Set @a *excluded_subtrees to a hash mapping <tt>const char *</tt>
* local * absolute paths to <tt>const char *</tt> local absolute paths for
- * every path at or under @a local_abspath in @a wc_ctx which are excluded
- * by the server (e.g. because of authz).
- * If no server-excluded paths are found then @a *server_excluded_subtrees
+ * every path under @a local_abspath in @a wc_ctx which are excluded
+ * by the server (e.g. because of authz) or the users.
+ * If no excluded paths are found then @a *server_excluded_subtrees
* is set to @c NULL.
* Allocate the hash and all items therein from @a result_pool.
*/
svn_error_t *
-svn_wc__get_server_excluded_subtrees(apr_hash_t **server_excluded_subtrees,
- svn_wc_context_t *wc_ctx,
- const char *local_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
+svn_wc__get_excluded_subtrees(apr_hash_t **server_excluded_subtrees,
+ svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/* Indicate in @a *is_modified whether the working copy has local
* modifications, using context @a wc_ctx.
@@ -1025,6 +1012,16 @@ svn_wc__rename_wc(svn_wc_context_t *wc_c
const char *dst_abspath,
apr_pool_t *scratch_pool);
+/* Set *TMPDIR_ABSPATH to a directory that is suitable for temporary
+ files which may need to be moved (atomically and same-device) into
+ the working copy indicated by WRI_ABSPATH. */
+svn_error_t *
+svn_wc__get_tmpdir(const char **tmpdir_abspath,
+ svn_wc_context_t *wc_ctx,
+ const char *wri_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
/* Gets information needed by the commit harvester.
*
* ### Currently this API is work in progress and is designed for just this
@@ -1032,23 +1029,13 @@ svn_wc__rename_wc(svn_wc_context_t *wc_c
* ### it's caller will eventually move into a wc and maybe wc_db api.
*/
svn_error_t *
-svn_wc__node_get_commit_status(svn_node_kind_t *kind,
- svn_boolean_t *added,
+svn_wc__node_get_commit_status(svn_boolean_t *added,
svn_boolean_t *deleted,
- svn_boolean_t *replaced,
- svn_boolean_t *not_present,
- svn_boolean_t *excluded,
+ svn_boolean_t *is_replace_root,
svn_boolean_t *is_op_root,
- svn_boolean_t *symlink,
svn_revnum_t *revision,
- const char **repos_relpath,
svn_revnum_t *original_revision,
const char **original_repos_relpath,
- svn_boolean_t *conflicted,
- const char **changelist,
- svn_boolean_t *props_mod,
- svn_boolean_t *update_root,
- const char **lock_token,
svn_wc_context_t *wc_ctx,
const char *local_abspath,
apr_pool_t *result_pool,
@@ -1067,6 +1054,17 @@ svn_wc__node_get_md5_from_sha1(const svn
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+/* Like svn_wc_get_pristine_contents2(), but keyed on the CHECKSUM
+ rather than on the local absolute path of the working file.
+ WRI_ABSPATH is any versioned path of the working copy in whose
+ pristine database we'll be looking for these contents. */
+svn_error_t *
+svn_wc__get_pristine_contents_by_checksum(svn_stream_t **contents,
+ svn_wc_context_t *wc_ctx,
+ const char *wri_abspath,
+ const svn_checksum_t *checksum,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/* Gets an array of const char *repos_relpaths of descendants of LOCAL_ABSPATH,
* which must be the op root of an addition, copy or move. The descendants
@@ -1622,6 +1620,76 @@ svn_wc__get_diff_editor(const svn_delta_
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+/**
+ * Assuming @a local_abspath itself or any of its children are under version
+ * control or a tree conflict victim and in a state of conflict, take these
+ * nodes out of this state.
+ *
+ * If @a resolve_text is TRUE then any text conflict is resolved,
+ * if @a resolve_tree is TRUE then any tree conflicts are resolved.
+ * If @a resolve_prop is set to "" all property conflicts are resolved,
+ * if it is set to any other string value, conflicts on that specific
+ * property are resolved and when resolve_prop is NULL, no property
+ * conflicts are resolved.
+ *
+ * If @a depth is #svn_depth_empty, act only on @a local_abspath; if
+ * #svn_depth_files, resolve @a local_abspath and its conflicted file
+ * children (if any); if #svn_depth_immediates, resolve @a local_abspath
+ * and all its immediate conflicted children (both files and directories,
+ * if any); if #svn_depth_infinity, resolve @a local_abspath and every
+ * conflicted file or directory anywhere beneath it.
+ *
+ * If @a conflict_choice is #svn_wc_conflict_choose_base, resolve the
+ * conflict with the old file contents; if
+ * #svn_wc_conflict_choose_mine_full, use the original working contents;
+ * if #svn_wc_conflict_choose_theirs_full, the new contents; and if
+ * #svn_wc_conflict_choose_merged, don't change the contents at all,
+ * just remove the conflict status, which is the pre-1.5 behavior.
+ *
+ * If @a conflict_choice is #svn_wc_conflict_choose_unspecified, invoke the
+ * @a conflict_func with the @a conflict_baton argument to obtain a
+ * resolution decision for each conflict.
+ *
+ * #svn_wc_conflict_choose_theirs_conflict and
+ * #svn_wc_conflict_choose_mine_conflict are not legal for binary
+ * files or properties.
+ *
+ * @a wc_ctx is a working copy context, with a write lock, for @a
+ * local_abspath.
+ *
+ * The implementation details are opaque, as our "conflicted" criteria
+ * might change over time. (At the moment, this routine removes the
+ * three fulltext 'backup' files and any .prej file created in a conflict,
+ * and modifies @a local_abspath's entry.)
+ *
+ * If @a local_abspath is not under version control and not a tree
+ * conflict, return #SVN_ERR_ENTRY_NOT_FOUND. If @a path isn't in a
+ * state of conflict to begin with, do nothing, and return #SVN_NO_ERROR.
+ *
+ * If @c local_abspath was successfully taken out of a state of conflict,
+ * report this information to @c notify_func (if non-@c NULL.) If only
+ * text, only property, or only tree conflict resolution was requested,
+ * and it was successful, then success gets reported.
+ *
+ * Temporary allocations will be performed in @a scratch_pool.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_wc__resolve_conflicts(svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ svn_depth_t depth,
+ svn_boolean_t resolve_text,
+ const char *resolve_prop,
+ svn_boolean_t resolve_tree,
+ svn_wc_conflict_choice_t conflict_choice,
+ svn_wc_conflict_resolver_func2_t conflict_func,
+ void *conflict_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool);
#ifdef __cplusplus
}
Modified: subversion/branches/compressed-pristines/subversion/include/svn_auth.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/svn_auth.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/svn_auth.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/svn_auth.h Thu Aug 16 10:17:48 2012
@@ -416,8 +416,8 @@ typedef svn_error_t *(*svn_auth_username
#define SVN_AUTH_SSL_CNMISMATCH 0x00000004
/** @brief Certificate authority is unknown (i.e. not trusted) */
#define SVN_AUTH_SSL_UNKNOWNCA 0x00000008
-/** @brief Other failure. This can happen if neon has introduced a new
- * failure bit that we do not handle yet. */
+/** @brief Other failure. This can happen if an unknown failure occurs
+ * that we do not handle yet. */
#define SVN_AUTH_SSL_OTHER 0x40000000
/** @} */
Modified: subversion/branches/compressed-pristines/subversion/include/svn_checksum.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/svn_checksum.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/svn_checksum.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/svn_checksum.h Thu Aug 16 10:17:48 2012
@@ -100,7 +100,8 @@ svn_checksum_match(const svn_checksum_t
/**
- * Return a deep copy of @a checksum, allocated in @a pool.
+ * Return a deep copy of @a checksum, allocated in @a pool. If @a
+ * checksum is NULL then NULL is returned.
*
* @since New in 1.6.
*/
@@ -269,18 +270,6 @@ svn_checksum_mismatch_err(const svn_chec
...)
__attribute__ ((format(printf, 4, 5)));
-
-/**
- * Internal function for creating a checksum from a binary digest.
- *
- * @since New in 1.6
- */
-svn_checksum_t *
-svn_checksum__from_digest(const unsigned char *digest,
- svn_checksum_kind_t kind,
- apr_pool_t *result_pool);
-
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/compressed-pristines/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/svn_client.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/svn_client.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/svn_client.h Thu Aug 16 10:17:48 2012
@@ -2883,6 +2883,11 @@ svn_client_blame(const char *path_or_url
* will be used.
* ### Do we need to say more about the format? A reference perhaps?
*
+ * If @a ignore_properties is TRUE, do not show property differences.
+ * If @a properties_only is TRUE, show only property changes.
+ * The above two options are mutually exclusive. It is an error to set
+ * both to TRUE.
+ *
* Generated headers are encoded using @a header_encoding.
*
* Diff output will not be generated for binary files, unless @a
@@ -2927,7 +2932,8 @@ svn_client_diff6(const apr_array_header_
svn_boolean_t no_diff_deleted,
svn_boolean_t show_copies_as_adds,
svn_boolean_t ignore_content_type,
- svn_boolean_t ignore_prop_diff,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
const char *header_encoding,
svn_stream_t *outstream,
@@ -3087,7 +3093,8 @@ svn_client_diff_peg6(const apr_array_hea
svn_boolean_t no_diff_deleted,
svn_boolean_t show_copies_as_adds,
svn_boolean_t ignore_content_type,
- svn_boolean_t ignore_prop_diff,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
const char *header_encoding,
svn_stream_t *outstream,
@@ -3669,9 +3676,8 @@ svn_client_suggest_merge_sources(apr_arr
/**
* Get the mergeinfo for a single target node (ignoring any subtrees).
*
- * Set @a *mergeinfo to a hash mapping <tt>const char *</tt> merge
- * source URLs to <tt>apr_array_header_t *</tt> rangelists (arrays of
- * <tt>svn_merge_range_t *</tt> ranges) describing the ranges which
+ * Set @a *mergeinfo to a hash mapping <tt>const char *</tt> merge source
+ * URLs to <tt>svn_rangelist_t *</tt> rangelists describing the ranges which
* have been merged into @a path_or_url as of @a peg_revision, per
* @a path_or_url's explicit mergeinfo or inherited mergeinfo if no
* explicit mergeinfo if found. If no explicit or inherited mergeinfo
@@ -3723,8 +3729,32 @@ svn_client_mergeinfo_get_merged(apr_hash
* If the server doesn't support retrieval of mergeinfo, return an
* #SVN_ERR_UNSUPPORTED_FEATURE error.
*
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_client_mergeinfo_log2(svn_boolean_t finding_merged,
+ const char *target_path_or_url,
+ const svn_opt_revision_t *target_peg_revision,
+ const char *source_path_or_url,
+ const svn_opt_revision_t *source_peg_revision,
+ const svn_opt_revision_t *source_start_revision,
+ const svn_opt_revision_t *source_end_revision,
+ svn_log_entry_receiver_t receiver,
+ void *receiver_baton,
+ svn_boolean_t discover_changed_paths,
+ svn_depth_t depth,
+ const apr_array_header_t *revprops,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_client_mergeinfo_log2(), but with @a source_start_revision
+ * and @a source_end_revision always of kind @c svn_opt_revision_unspecified;
+ *
+ * @deprecated Provided for backwards compatibility with the 1.7 API.
* @since New in 1.7.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_mergeinfo_log(svn_boolean_t finding_merged,
const char *target_path_or_url,
Modified: subversion/branches/compressed-pristines/subversion/include/svn_dav.h
URL: http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/include/svn_dav.h?rev=1373783&r1=1373782&r2=1373783&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/include/svn_dav.h (original)
+++ subversion/branches/compressed-pristines/subversion/include/svn_dav.h Thu Aug 16 10:17:48 2012
@@ -171,7 +171,7 @@ extern "C" {
#define SVN_DAV_TXN_NAME_HEADER "SVN-Txn-Name"
/** This header is used in the POST request, to pass a client supplied
- * alternative transaction name to the server, and in the the POST
+ * alternative transaction name to the server, and in the POST
* response, to tell the client that the alternative transaction
* resource names should be used. (HTTP protocol v2 only)
* @since New in 1.7. */