You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2018/11/07 12:30:11 UTC
svn commit: r1846002 [4/44] - in /subversion/branches/ra-git: ./ build/
build/ac-macros/ build/generator/ build/generator/swig/
build/generator/templates/ build/generator/util/ build/win32/
contrib/client-side/ contrib/client-side/svn_load_dirs/ contri...
Modified: subversion/branches/ra-git/notes/obliterate/obliterate-functional-spec.txt
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/notes/obliterate/obliterate-functional-spec.txt?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/notes/obliterate/obliterate-functional-spec.txt (original)
+++ subversion/branches/ra-git/notes/obliterate/obliterate-functional-spec.txt Wed Nov 7 12:30:06 2018
@@ -1021,7 +1021,7 @@ VII. Appendix
1. Link to external documentation
- [1] Issue 516: http://subversion.tigris.org/issues/show_bug.cgi?id=516
+ [1] Issue 516: https://issues.apache.org/jira/browse/SVN-516
[2] Karl Fogel's proposal to use the replay API and filters:
http://svn.haxx.se/dev/archive-2008-04/0687.shtml
[3] Bob Jenkins's thread about "Auditability": keep log of what has been
Modified: subversion/branches/ra-git/notes/ssh-tricks
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/notes/ssh-tricks?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/notes/ssh-tricks (original)
+++ subversion/branches/ra-git/notes/ssh-tricks Wed Nov 7 12:30:06 2018
@@ -15,7 +15,7 @@ not work with password authentication.
the client's key-pair is used only for access to svnserve; if you want
to retain general shell access to the host, create a second, dedicated
key-pair for Subversion access and (assuming a Unix client) set the
-environment variable SVN_SSH to "ssh -i /path/to/private/key/file".
+environment variable SVN_SSH to "ssh -i /path/to/private/key/file --".
The basic idea
--------------
Modified: subversion/branches/ra-git/notes/svndiff
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/notes/svndiff?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/notes/svndiff (original)
+++ subversion/branches/ra-git/notes/svndiff Wed Nov 7 12:30:06 2018
@@ -1,4 +1,4 @@
-This file describes the svndiff version 0 and 1 format used by the
+This file describes the svndiff version 0, 1 and 2 formats used by the
Subversion code. Its design borrows many ideas from the vdelta and
vcdiff encoding formats from AT&T Research Labs, but it is much
simpler and thus a little less compact.
@@ -33,13 +33,14 @@ A window is the concatenation of the fol
[original length of the new data section in bytes (version 1)]
The window's new data section
-In svndiff version 1, the instructions and new data
-sections may be compressed by zlib. In svndiff1, in order to determine the
-original size, an integer is appended to the beginning of each of the
-sections. If the original size matches the encoded size (minus the
+In svndiff version 1 and 2, the instructions and new data sections may
+be compressed. Version 1 uses zlib for compression. Version 2 uses LZ4
+for compression. In order to determine the original size in these
+compressed formats, an integer is appended to the beginning of each of
+the sections. If the original size matches the encoded size (minus the
length of the original size integer) from the header, the data is not
compressed. If the original size is different than the encoded size
-from the header, the remaining data in the section is compressed with zlib.
+from the header, the remaining data in the section is compressed.
Integers (including the offset and all of the lengths) are encoded using a
variable-length format. The high bit of each byte is used as a
Modified: subversion/branches/ra-git/notes/tree-conflicts/design-overview.txt
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/notes/tree-conflicts/design-overview.txt?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/notes/tree-conflicts/design-overview.txt (original)
+++ subversion/branches/ra-git/notes/tree-conflicts/design-overview.txt Wed Nov 7 12:30:06 2018
@@ -246,10 +246,10 @@ Status: incomplete
* Mark as resolved, by command: the basic "svn resolved PARENT" works to some
extent, but needs attention.
- Issue #3145 <http://subversion.tigris.org/issues/show_bug.cgi?id=3145>
+ Issue #3145 <https://issues.apache.org/jira/browse/SVN-3145>
* Mark as resolved, interactively: not started.
- Issue #3144 <http://subversion.tigris.org/issues/show_bug.cgi?id=3144>
+ Issue #3144 <https://issues.apache.org/jira/browse/SVN-3144>
To do:
Modified: subversion/branches/ra-git/notes/tree-conflicts/detection.txt
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/notes/tree-conflicts/detection.txt?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/notes/tree-conflicts/detection.txt (original)
+++ subversion/branches/ra-git/notes/tree-conflicts/detection.txt Wed Nov 7 12:30:06 2018
@@ -8,7 +8,7 @@ in use-cases.txt, for both files and dir
Issue reference:
- http://subversion.tigris.org/issues/show_bug.cgi?id=2282
+ https://issues.apache.org/jira/browse/SVN-2282
==========
USE CASE 1
Modified: subversion/branches/ra-git/notes/tree-conflicts/use-cases.txt
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/notes/tree-conflicts/use-cases.txt?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/notes/tree-conflicts/use-cases.txt (original)
+++ subversion/branches/ra-git/notes/tree-conflicts/use-cases.txt Wed Nov 7 12:30:06 2018
@@ -3,8 +3,8 @@
TREE CONFLICTS USE CASES AND DESIRED BEHAVIOURS
-Issue reference: http://subversion.tigris.org/issues/show_bug.cgi?id=2282
- http://subversion.tigris.org/issues/show_bug.cgi?id=3630
+Issue reference: https://issues.apache.org/jira/browse/SVN-2282
+ https://issues.apache.org/jira/browse/SVN-3630
These use cases are based on a scenario paper "SVN move/rename
problems & suggested improvements" submitted by a corporate Subversion
Modified: subversion/branches/ra-git/subversion/bindings/javahl/README
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/README?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/README (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/README Wed Nov 7 12:30:06 2018
@@ -5,7 +5,7 @@ JavaHL provides a (mostly native, using
a high level Java API for Subversion, which was originally targeted for
implementors of GUI clients and IDE plug-ins for Subversion. JavaHL
currently provides a minimal-but-complete set of APIs which expose the
-core Subversion C API to Java. It requires a JRE 1.6+ (runtime).
+core Subversion C API to Java. It requires a JRE 1.8+ (runtime).
It is currently quite mature, and can be considered for production use.
@@ -14,7 +14,7 @@ Build system
------------
JavaHL should compile and run under Linux, Win32, and Mac OS X with
-JDK 1.6+ and a C++ compiler with a complete implementation of
+JDK 1.8+ and a C++ compiler with a complete implementation of
C++98 (for example, GCC 3.2 and older cannot compile JavaHL 1.9+).
Its build will produce both a native library (libsvnjavahl-1.so on Unix
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/Array.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/Array.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/Array.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/Array.cpp Wed Nov 7 12:30:06 2018
@@ -55,6 +55,8 @@ Array::init(jobjectArray jobjects)
if (jobjects != NULL)
{
JNIEnv *env = JNIUtil::getEnv();
+ if (JNIUtil::isExceptionThrown())
+ return;
jint arraySize = env->GetArrayLength(jobjects);
if (JNIUtil::isExceptionThrown())
return;
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/Array.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/Array.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/Array.h (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/Array.h Wed Nov 7 12:30:06 2018
@@ -45,6 +45,10 @@ class Array
Array(jobject jobjectsCollection);
virtual ~Array();
const std::vector<jobject> &vector(void) const;
+ bool isNull() const
+ {
+ return !m_objectArray;
+ }
};
#endif // ARRAY_H
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/CreateJ.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/CreateJ.cpp Wed Nov 7 12:30:06 2018
@@ -1420,6 +1420,8 @@ jobject CreateJ::Mergeinfo(svn_mergeinfo
RevisionRangeList(static_cast<svn_rangelist_t*>(val)).toList();
env->CallVoidMethod(jmergeinfo, addRevisions, jpath, jranges);
+ if (JNIUtil::isJavaExceptionThrown())
+ return NULL;
env->DeleteLocalRef(jranges);
env->DeleteLocalRef(jpath);
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/Iterator.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/Iterator.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/Iterator.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/Iterator.cpp Wed Nov 7 12:30:06 2018
@@ -35,6 +35,8 @@ jobject init_iterator(jobject jiterable,
return NULL;
JNIEnv* env = JNIUtil::getEnv();
+ if (JNIUtil::isJavaExceptionThrown())
+ return NULL;
static jmethodID iterator_mid = 0;
if (0 == iterator_mid)
@@ -99,6 +101,8 @@ jobject Iterator::next() const
return NULL;
JNIEnv* env = JNIUtil::getEnv();
+ if (JNIUtil::isJavaExceptionThrown())
+ return NULL;
static jmethodID next_mid = 0;
if (0 == next_mid)
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/JNIUtil.cpp Wed Nov 7 12:30:06 2018
@@ -578,16 +578,17 @@ jthrowable JNIUtil::wrappedCreateClientE
if (JNIUtil::isJavaExceptionThrown())
return NULL;
- const char *source = NULL;
+ std::string source;
#ifdef SVN_DEBUG
#ifndef SVN_ERR__TRACING
if (err->file)
{
- std::ostringstream buf;
- buf << err->file;
+ source = err->file;
if (err->line > 0)
- buf << ':' << err->line;
- source = buf.str().c_str();
+ {
+ source += ':';
+ source += err->line;
+ }
}
#endif
#endif
@@ -615,7 +616,7 @@ jthrowable JNIUtil::wrappedCreateClientE
JNICriticalSection cs(*g_logMutex);
g_logStream << "Subversion JavaHL exception thrown, message:<";
g_logStream << msg << ">";
- if (source)
+ if (!source.empty())
g_logStream << " source:<" << source << ">";
if (err->apr_err != -1)
g_logStream << " apr-err:<" << err->apr_err << ">";
@@ -624,7 +625,7 @@ jthrowable JNIUtil::wrappedCreateClientE
if (isJavaExceptionThrown())
POP_AND_RETURN_NULL;
- jstring jsource = makeJString(source);
+ jstring jsource = (source.empty() ? NULL : makeJString(source.c_str()));
if (isJavaExceptionThrown())
POP_AND_RETURN_NULL;
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.cpp Wed Nov 7 12:30:06 2018
@@ -54,13 +54,15 @@ ListCallback::callback(void *baton,
const svn_dirent_t *dirent,
const svn_lock_t *lock,
const char *abs_path,
- const char * /* external_parent_url */,
- const char * /* external_target */,
+ const char *external_parent_url,
+ const char *external_target,
apr_pool_t *scratch_pool)
{
if (baton)
return static_cast<ListCallback *>(baton)->doList(
- path, dirent, lock, abs_path, scratch_pool);
+ path, dirent, lock, abs_path,
+ external_parent_url, external_target,
+ scratch_pool);
return SVN_NO_ERROR;
}
@@ -73,6 +75,8 @@ ListCallback::doList(const char *path,
const svn_dirent_t *dirent,
const svn_lock_t *lock,
const char *abs_path,
+ const char *external_parent_url,
+ const char *external_target,
apr_pool_t *pool)
{
JNIEnv *env = JNIUtil::getEnv();
@@ -87,13 +91,17 @@ ListCallback::doList(const char *path,
static jmethodID mid = 0;
if (mid == 0)
{
- jclass clazz = env->FindClass(JAVAHL_CLASS("/callback/ListCallback"));
+ jclass clazz = env->FindClass(JAVAHL_CLASS("/callback/ListItemCallback"));
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN(SVN_NO_ERROR);
mid = env->GetMethodID(clazz, "doEntry",
- "(" JAVAHL_ARG("/types/DirEntry;")
- JAVAHL_ARG("/types/Lock;") ")V");
+ "("
+ JAVAHL_ARG("/types/DirEntry;")
+ JAVAHL_ARG("/types/Lock;")
+ "Ljava/lang/String;"
+ "Ljava/lang/String;"
+ ")V");
if (JNIUtil::isJavaExceptionThrown() || mid == 0)
POP_AND_RETURN(SVN_NO_ERROR);
}
@@ -111,8 +119,16 @@ ListCallback::doList(const char *path,
POP_AND_RETURN(SVN_NO_ERROR);
}
+ jstring jexternalParentURL = JNIUtil::makeJString(external_parent_url);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(SVN_NO_ERROR);
+
+ jstring jexternalTarget = JNIUtil::makeJString(external_target);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(SVN_NO_ERROR);
+
// call the Java method
- env->CallVoidMethod(m_callback, mid, jdirentry, jlock);
+ env->CallVoidMethod(m_callback, mid, jdirentry, jlock, jexternalParentURL, jexternalTarget);
POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.h (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/ListCallback.h Wed Nov 7 12:30:06 2018
@@ -54,6 +54,8 @@ protected:
const svn_dirent_t *dirent,
const svn_lock_t *lock,
const char *abs_path,
+ const char *external_parent_url,
+ const char *external_target,
apr_pool_t *pool);
private:
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/OperationContext.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/OperationContext.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/OperationContext.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/OperationContext.cpp Wed Nov 7 12:30:06 2018
@@ -643,6 +643,8 @@ OperationContext::closeTunnel(void *tunn
return;
JNIEnv *env = JNIUtil::getEnv();
+ if (JNIUtil::isJavaExceptionThrown())
+ return;
static jmethodID mid = 0;
if (0 == mid)
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/Prompter.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/Prompter.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/Prompter.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/Prompter.cpp Wed Nov 7 12:30:06 2018
@@ -342,8 +342,7 @@ svn_error_t *Prompter::dispatch_ssl_serv
svn_auth_cred_ssl_server_trust_t *cred =
static_cast<svn_auth_cred_ssl_server_trust_t*>(apr_pcalloc(pool, sizeof(*cred)));
cred->may_save = save;
- if (save)
- cred->accepted_failures = failures;
+ cred->accepted_failures = failures;
*cred_p = cred;
return SVN_NO_ERROR;
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/RemoteSession.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/RemoteSession.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/RemoteSession.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/RemoteSession.cpp Wed Nov 7 12:30:06 2018
@@ -214,8 +214,9 @@ RemoteSession::RemoteSession(int retryAt
cycle_detected = true;
break;
}
- /* ### Shouldn't url be updated for the next attempt?
- ### There is no real cycle if we just do the same thing twice? */
+
+ url = corrected_url;
+ corrected_url = NULL;
}
if (cycle_detected)
@@ -645,6 +646,8 @@ build_string_array(const Iterator& iter,
{
const char* element;
jstring jitem = (jstring)iter.next();
+ if (JNIUtil::isExceptionThrown())
+ return NULL;
if (contains_relpaths)
{
Relpath item(jitem, pool);
@@ -958,7 +961,10 @@ long_iterable_to_revnum_array(jobject jl
Iterator iter(jlong_iterable);
while (iter.hasNext())
{
- const jlong entry = env->CallLongMethod(iter.next(), mid);
+ jobject next = iter.next();
+ if (JNIUtil::isExceptionThrown())
+ return NULL;
+ const jlong entry = env->CallLongMethod(next, mid);
if (JNIUtil::isExceptionThrown())
return NULL;
APR_ARRAY_PUSH(array, svn_revnum_t) = svn_revnum_t(entry);
@@ -970,6 +976,8 @@ jobject
location_hash_to_map(apr_hash_t* locations, apr_pool_t* scratch_pool)
{
JNIEnv* env = JNIUtil::getEnv();
+ if (JNIUtil::isExceptionThrown())
+ return NULL;
jclass long_cls = env->FindClass("java/lang/Long");
if (JNIUtil::isExceptionThrown())
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/RevisionRangeList.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/RevisionRangeList.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/RevisionRangeList.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/RevisionRangeList.cpp Wed Nov 7 12:30:06 2018
@@ -42,7 +42,10 @@ RevisionRangeList::RevisionRangeList(job
m_rangelist = apr_array_make(pool.getPool(), 0, sizeof(svn_merge_range_t*));
while (iter.hasNext())
{
- svn_merge_range_t* range = RevisionRange(iter.next()).toMergeRange(pool);
+ jobject next = iter.next();
+ if (JNIUtil::isExceptionThrown())
+ return;
+ svn_merge_range_t* range = RevisionRange(next).toMergeRange(pool);
if (JNIUtil::isExceptionThrown())
return;
APR_ARRAY_PUSH(m_rangelist, svn_merge_range_t*) = range;
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/SVNClient.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/SVNClient.cpp Wed Nov 7 12:30:06 2018
@@ -167,8 +167,9 @@ const char *SVNClient::getLastPath()
* List directory entries of a URL.
*/
void SVNClient::list(const char *url, Revision &revision,
- Revision &pegRevision, svn_depth_t depth,
- int direntFields, bool fetchLocks,
+ Revision &pegRevision, StringArray &patterns,
+ svn_depth_t depth, int direntFields,
+ bool fetchLocks, bool includeExternals,
ListCallback *callback)
{
SVN::Pool subPool(pool);
@@ -181,13 +182,14 @@ void SVNClient::list(const char *url, Re
Path urlPath(url, subPool);
SVN_JNI_ERR(urlPath.error_occurred(), );
- SVN_JNI_ERR(svn_client_list3(urlPath.c_str(),
+ SVN_JNI_ERR(svn_client_list4(urlPath.c_str(),
pegRevision.revision(),
revision.revision(),
+ patterns.array(subPool),
depth,
direntFields,
fetchLocks,
- FALSE, // include_externals
+ includeExternals,
ListCallback::callback,
callback,
ctx, subPool.getPool()), );
@@ -265,7 +267,8 @@ rev_range_vector_to_apr_array(std::vecto
void SVNClient::logMessages(const char *path, Revision &pegRevision,
std::vector<RevisionRange> &logRanges,
bool stopOnCopy, bool discoverPaths,
- bool includeMergedRevisions, StringArray &revProps,
+ bool includeMergedRevisions,
+ StringArray &revProps, bool allRevProps,
int limit, LogMessageCallback *callback)
{
SVN::Pool subPool(pool);
@@ -285,10 +288,13 @@ void SVNClient::logMessages(const char *
if (JNIUtil::isExceptionThrown())
return;
+ const apr_array_header_t *revprops = NULL;
+ if (!allRevProps)
+ revprops = revProps.array(subPool);
+
SVN_JNI_ERR(svn_client_log5(targets, pegRevision.revision(), ranges,
limit, discoverPaths, stopOnCopy,
- includeMergedRevisions,
- revProps.array(subPool),
+ includeMergedRevisions, revprops,
LogMessageCallback::callback, callback, ctx,
subPool.getPool()), );
}
@@ -1049,7 +1055,8 @@ void SVNClient::diff(const char *target1
options.useGitDiffFormat(),
SVN_APR_LOCALE_CHARSET,
outputStream.getStream(subPool),
- NULL /* error file */,
+ // Discard stderr; TODO: Update JavaHL API
+ svn_stream_empty(subPool.getPool()),
changelists.array(subPool),
ctx,
subPool.getPool()),
@@ -1078,7 +1085,8 @@ void SVNClient::diff(const char *target1
options.useGitDiffFormat(),
SVN_APR_LOCALE_CHARSET,
outputStream.getStream(subPool),
- NULL /* error stream */,
+ // Discard stderr; TODO: Update JavaHL API
+ svn_stream_empty(subPool.getPool()),
changelists.array(subPool),
ctx,
subPool.getPool()),
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/SVNClient.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/SVNClient.h Wed Nov 7 12:30:06 2018
@@ -172,7 +172,7 @@ class SVNClient :public SVNBase
void logMessages(const char *path, Revision &pegRevision,
std::vector<RevisionRange> &ranges, bool stopOnCopy,
bool discoverPaths, bool includeMergedRevisions,
- StringArray &revProps,
+ StringArray &revProps, bool allRevProps,
int limit, LogMessageCallback *callback);
jobject getVersionExtended(bool verbose);
jstring getAdminDirectoryName();
@@ -189,7 +189,8 @@ class SVNClient :public SVNBase
bool depthAsSticky, StringArray &changelists,
StatusCallback *callback);
void list(const char *url, Revision &revision, Revision &pegRevision,
- svn_depth_t depth, int direntFields, bool fetchLocks,
+ StringArray &patterns, svn_depth_t depth, int direntFields,
+ bool fetchLocks, bool includeExternals,
ListCallback *callback);
jbyteArray revProperty(const char *path, const char *name, Revision &rev);
void setRevProperty(const char *path, const char *name,
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/SVNRepos.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/SVNRepos.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/SVNRepos.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/SVNRepos.cpp Wed Nov 7 12:30:06 2018
@@ -247,6 +247,7 @@ void SVNRepos::dump(File &path, OutputSt
? ReposNotifyCallback::notify
: NULL,
notifyCallback,
+ NULL, NULL,
checkCancel, this, requestPool.getPool()), );
}
@@ -331,6 +332,7 @@ void SVNRepos::load(File &path,
bool usePostCommitHook,
bool validateProps,
bool ignoreDates,
+ bool normalizeProps,
const char *relativePath,
ReposNotifyCallback *notifyCallback)
{
@@ -367,10 +369,10 @@ void SVNRepos::load(File &path,
path.getInternalStyle(requestPool), NULL,
requestPool.getPool(), requestPool.getPool()), );
- SVN_JNI_ERR(svn_repos_load_fs5(repos, dataIn.getStream(requestPool),
+ SVN_JNI_ERR(svn_repos_load_fs6(repos, dataIn.getStream(requestPool),
lower, upper, uuid_action, relativePath,
usePreCommitHook, usePostCommitHook,
- validateProps, ignoreDates,
+ validateProps, ignoreDates, normalizeProps,
notifyCallback != NULL
? ReposNotifyCallback::notify
: NULL,
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/SVNRepos.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/SVNRepos.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/SVNRepos.h (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/SVNRepos.h Wed Nov 7 12:30:06 2018
@@ -61,7 +61,7 @@ class SVNRepos : public SVNBase
Revision &revsionStart, Revision &revisionEnd,
bool ignoreUUID, bool forceUUID,
bool usePreCommitHook, bool usePostCommitHook,
- bool validateProps, bool ignoreDates,
+ bool validateProps, bool ignoreDates, bool normalizeProps,
const char *relativePath, ReposNotifyCallback *notifyCallback);
void listUnusedDBLogs(File &path,
MessageReceiver &messageReceiver);
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/StringArray.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/StringArray.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/StringArray.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/StringArray.cpp Wed Nov 7 12:30:06 2018
@@ -38,6 +38,9 @@ StringArray::~StringArray()
const apr_array_header_t *StringArray::array(const SVN::Pool &pool)
{
+ if (isNull())
+ return NULL;
+
apr_array_header_t *strings
= apr_array_make(pool.getPool(), static_cast<int>(m_strings.size()),
sizeof(char *));
@@ -77,11 +80,13 @@ StringArray::init(void)
StringArray::StringArray(jobjectArray jstrings)
: Array(jstrings), m_strings()
{
- init();
+ if (!isNull())
+ init();
}
StringArray::StringArray(jobject jstringCollection)
: Array(jstringCollection), m_strings()
{
- init();
+ if (!isNull())
+ init();
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/StringArray.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/StringArray.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/StringArray.h (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/StringArray.h Wed Nov 7 12:30:06 2018
@@ -47,6 +47,10 @@ class StringArray : Array
~StringArray();
const apr_array_header_t *array(const SVN::Pool &pool);
const std::vector<std::string> &vector(void) const;
+ bool isNull() const
+ {
+ return Array::isNull();
+ }
};
#endif // STRINGARRAY_H
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/jniwrapper/jni_list.hpp Wed Nov 7 12:30:06 2018
@@ -173,7 +173,10 @@ public:
{
Iterator iter(get_iterator());
while (iter.has_next())
- function(T(m_env, NativeT(iter.next())));
+ {
+ ::Java::LocalFrame frame(m_env);
+ function(T(m_env, NativeT(iter.next())));
+ }
return function;
}
};
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Wed Nov 7 12:30:06 2018
@@ -156,8 +156,8 @@ Java_org_apache_subversion_javahl_SVNCli
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_list
(JNIEnv *env, jobject jthis, jstring jurl, jobject jrevision,
- jobject jpegRevision, jobject jdepth, jint jdirentFields,
- jboolean jfetchLocks, jobject jcallback)
+ jobject jpegRevision, jobject jpatterns, jobject jdepth, jint jdirentFields,
+ jboolean jfetchLocks, jboolean jincludeExternals, jobject jcallback)
{
JNIEntry(SVNClient, list);
SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -176,9 +176,16 @@ Java_org_apache_subversion_javahl_SVNCli
if (JNIUtil::isExceptionThrown())
return;
+ StringArray patterns(jpatterns);
+ if (JNIUtil::isExceptionThrown())
+ return;
+
ListCallback callback(jcallback);
- cl->list(url, revision, pegRevision, EnumMapper::toDepth(jdepth),
- static_cast<int>(jdirentFields), jfetchLocks ? true : false,
+ cl->list(url, revision, pegRevision, patterns,
+ EnumMapper::toDepth(jdepth),
+ static_cast<int>(jdirentFields),
+ jfetchLocks ? true : false,
+ jincludeExternals ? true : false,
&callback);
}
@@ -313,8 +320,9 @@ JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_logMessages
(JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
jobject jranges, jboolean jstopOnCopy, jboolean jdisoverPaths,
- jboolean jincludeMergedRevisions, jobject jrevProps, jlong jlimit,
- jobject jlogMessageCallback)
+ jboolean jincludeMergedRevisions,
+ jobject jrevProps, jboolean jallRevProps,
+ jlong jlimit, jobject jlogMessageCallback)
{
JNIEntry(SVNClient, logMessages);
@@ -366,7 +374,8 @@ Java_org_apache_subversion_javahl_SVNCli
cl->logMessages(path, pegRevision, revisionRanges,
jstopOnCopy ? true: false, jdisoverPaths ? true : false,
jincludeMergedRevisions ? true : false,
- revProps, int(jlimit), &callback);
+ revProps, jallRevProps ? true : false,
+ int(jlimit), &callback);
}
JNIEXPORT jlong JNICALL
Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp Wed Nov 7 12:30:06 2018
@@ -247,7 +247,7 @@ Java_org_apache_subversion_javahl_SVNRep
jobject jrevisionStart, jobject jrevisionEnd,
jboolean jignoreUUID, jboolean jforceUUID,
jboolean jusePreCommitHook, jboolean jusePostCommitHook,
- jboolean jvalidateProps, jboolean jignoreDates,
+ jboolean jvalidateProps, jboolean jignoreDates, jboolean jnormalizeProps,
jstring jrelativePath, jobject jnotifyCallback)
{
JNIEntry(SVNRepos, load);
@@ -287,6 +287,7 @@ Java_org_apache_subversion_javahl_SVNRep
jusePostCommitHook ? true : false,
jvalidateProps ? true : false,
jignoreDates ? true : false,
+ jnormalizeProps ? true : false,
relativePath,
(jnotifyCallback != NULL ? ¬ifyCallback : NULL));
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java Wed Nov 7 12:30:06 2018
@@ -23,6 +23,8 @@
package org.apache.subversion.javahl;
+import java.lang.annotation.*;
+
/**
* The constants in this interface describe the changes to an item to
* be committed.
@@ -32,36 +34,43 @@ public interface CommitItemStateFlags
/**
* the item has been added
*/
+ @Native
public static final int Add=1;
/**
* the item has been deleted
*/
+ @Native
public static final int Delete=2;
/**
* the item has text modifications
*/
+ @Native
public static final int TextMods=4;
/**
* the item has property modifications
*/
+ @Native
public static final int PropMods=8;
/**
* the item has been copied
*/
+ @Native
public static final int IsCopy=16;
/**
* the item has a lock token
*/
+ @Native
public static final int LockToken = 32;
/**
* the item was moved to this location
* @since 1.8
*/
+ @Native
public static int MovedHere = 64;
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Wed Nov 7 12:30:06 2018
@@ -123,12 +123,30 @@ public interface ISVNClient
* @param url the url to list
* @param revision the revision to list
* @param pegRevision the revision to interpret url
+ * @param patterns optional glob patterns to filter the result
* @param depth the depth to recurse into subdirectories
* @param direntFields the fields to retrieve
* @param fetchLocks whether to fetch lock information
+ * @param includeExternals whether to list external items
* @param callback the callback to receive the directory entries
+ * @since 1.10
*/
void list(String url, Revision revision, Revision pegRevision,
+ List<String> patterns, Depth depth, int direntFields,
+ boolean fetchLocks, boolean includeExternals,
+ ListItemCallback callback)
+ throws ClientException;
+
+ /**
+ * Lists the directory entries of a url on the server.
+ * <p>
+ * Behaves like the 1.10 version with
+ * <code>patterns = null</code> and
+ * <code>includeExternals = false</code>
+ * @deprecated
+ */
+ @Deprecated
+ void list(String url, Revision revision, Revision pegRevision,
Depth depth, int direntFields, boolean fetchLocks,
ListCallback callback)
throws ClientException;
@@ -180,6 +198,21 @@ public interface ISVNClient
/**
* Retrieve the log messages for an item.
+ * <p>
+ * Behaves like the 1.10 version with <code>allRevProps = false</code>
+ * @deprecated
+ */
+ @Deprecated
+ void logMessages(String path, Revision pegRevision,
+ List<RevisionRange> ranges, boolean stopOnCopy,
+ boolean discoverPath, boolean includeMergedRevisions,
+ Set<String> revProps, long limit,
+ LogMessageCallback callback)
+ throws ClientException;
+
+
+ /**
+ * Retrieve the log messages for an item.
* @param path path or url to get the log message for.
* @param pegRevision revision to interpret path
* @param ranges an array of revision ranges to show
@@ -189,15 +222,19 @@ public interface ISVNClient
* @param includeMergedRevisions include log messages for revisions which
* were merged.
* @param revProps the revprops to retrieve
+ * @param allRevProps if <code>true</code>, ignore the
+ * <code>revProps</code> parameter and retrieve all
+ * revision properties
* @param limit limit the number of log messages (if 0 or less no
* limit)
* @param callback the object to receive the log messages
+ * @since 1.10
*/
void logMessages(String path, Revision pegRevision,
List<RevisionRange> ranges, boolean stopOnCopy,
boolean discoverPath, boolean includeMergedRevisions,
- Set<String> revProps, long limit,
- LogMessageCallback callback)
+ Set<String> revProps, boolean allRevProps,
+ long limit, LogMessageCallback callback)
throws ClientException;
/**
Modified: subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java Wed Nov 7 12:30:06 2018
@@ -151,6 +151,39 @@ public interface ISVNRepos {
* load the data of a dump into a repository
* @param path the path to the repository
* @param dataInput the data input source
+ * @param start the first revision to load
+ * @param end the last revision to load
+ * @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 validateProps validate "svn:" revision and node properties
+ * @param ignoreDates ignore revision datestamps in the dump stream
+ * @param normalizeProps attempt to normalize invalid Subversion
+ * revision and node properties
+ * @param relativePath the directory in the repository, where the data
+ * in put optional.
+ * @param callback the target for processing messages
+ * @throws ClientException throw in case of problem
+ * @since 1.10
+ */
+ public abstract void load(File path, InputStream dataInput,
+ Revision start, Revision end,
+ boolean ignoreUUID, boolean forceUUID,
+ boolean usePreCommitHook,
+ boolean usePostCommitHook,
+ boolean validateProps,
+ boolean ignoreDates,
+ boolean normalizeProps,
+ String relativePath,
+ ReposNotifyCallback callback)
+ 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 start the first revision to load
* @param end the last revision to load
* @param ignoreUUID ignore any UUID found in the input stream
Modified: subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java Wed Nov 7 12:30:06 2018
@@ -141,12 +141,15 @@ public class NativeResources
*/
private static final void init()
{
+ final int SVN_VER_MAJOR = 1;
+ final int SVN_VER_MINOR = 12;
initNativeLibrary();
version = new Version();
- if (!version.isAtLeast(1, 10, 0))
+ if (!version.isAtLeast(SVN_VER_MAJOR, SVN_VER_MINOR, 0))
{
throw new LinkageError("Native library version must be at least " +
- "1.10.0, but is only " + version);
+ SVN_VER_MAJOR + "." + SVN_VER_MINOR + ".0," +
+ "but is only " + version);
}
runtimeVersion = new RuntimeVersion();
Modified: subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Wed Nov 7 12:30:06 2018
@@ -141,11 +141,39 @@ public class SVNClient implements ISVNCl
ignoreExternals, false, changelists, callback);
}
- public native void list(String url, Revision revision,
- Revision pegRevision, Depth depth, int direntFields,
- boolean fetchLocks, ListCallback callback)
+ public native void list(String url, Revision revision, Revision pegRevision,
+ List<String> patterns, Depth depth, int direntFields,
+ boolean fetchLocks, boolean includeExternals,
+ ListItemCallback callback)
throws ClientException;
+ private final class ListCallbackWrapper implements ListItemCallback
+ {
+ private final ListCallback wrappedCallback;
+
+ ListCallbackWrapper(ListCallback wrappedCallback)
+ {
+ this.wrappedCallback = wrappedCallback;
+ }
+
+ public void doEntry(DirEntry dirent, Lock lock,
+ String externalParentURL,
+ String externalTarget)
+ {
+ wrappedCallback.doEntry(dirent, lock);
+ }
+ };
+
+ @Deprecated
+ public void list(String url, Revision revision,
+ Revision pegRevision, Depth depth, int direntFields,
+ boolean fetchLocks, ListCallback callback)
+ throws ClientException
+ {
+ list(url, revision, pegRevision, null, depth, direntFields,
+ fetchLocks, false, new ListCallbackWrapper(callback));
+ }
+
public native void username(String username);
public native void password(String password);
@@ -157,12 +185,24 @@ public class SVNClient implements ISVNCl
public native void setTunnelAgent(TunnelAgent tunnelAgent);
+ @Deprecated
+ public void logMessages(String path, Revision pegRevision,
+ List<RevisionRange> ranges, boolean stopOnCopy,
+ boolean discoverPath, boolean includeMergedRevisions,
+ Set<String> revProps, long limit,
+ LogMessageCallback callback)
+ throws ClientException
+ {
+ logMessages(path, pegRevision, ranges, stopOnCopy, discoverPath,
+ includeMergedRevisions, revProps, false, limit, callback);
+ }
+
public native void logMessages(String path, Revision pegRevision,
List<RevisionRange> revisionRanges,
boolean stopOnCopy, boolean discoverPath,
boolean includeMergedRevisions,
- Set<String> revProps, long limit,
- LogMessageCallback callback)
+ Set<String> revProps, boolean allRevProps,
+ long limit, LogMessageCallback callback)
throws ClientException;
public native long checkout(String moduleName, String destPath,
Modified: subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java Wed Nov 7 12:30:06 2018
@@ -160,6 +160,17 @@ public class SVNRepos implements ISVNRep
throws ClientException;
public void load(File path, InputStream dataInput,
+ boolean ignoreUUID, boolean forceUUID,
+ boolean usePreCommitHook, boolean usePostCommitHook,
+ String relativePath, ReposNotifyCallback callback)
+ throws ClientException
+ {
+ load(path, dataInput, Revision.START, Revision.HEAD,
+ ignoreUUID, forceUUID, usePreCommitHook, usePostCommitHook,
+ false, false, false, relativePath, callback);
+ }
+
+ public void load(File path, InputStream dataInput,
Revision start, Revision end,
boolean ignoreUUID, boolean forceUUID,
boolean usePreCommitHook, boolean usePostCommitHook,
@@ -168,18 +179,20 @@ public class SVNRepos implements ISVNRep
{
load(path, dataInput, start, end,
ignoreUUID, forceUUID, usePreCommitHook, usePostCommitHook,
- false, false, relativePath, callback);
+ false, false, false, relativePath, callback);
}
public void load(File path, InputStream dataInput,
+ Revision start, Revision end,
boolean ignoreUUID, boolean forceUUID,
boolean usePreCommitHook, boolean usePostCommitHook,
+ boolean validateProps, boolean ignoreDates,
String relativePath, ReposNotifyCallback callback)
- throws ClientException
+ throws ClientException
{
- load(path, dataInput, Revision.START, Revision.HEAD,
+ load(path, dataInput, start, end,
ignoreUUID, forceUUID, usePreCommitHook, usePostCommitHook,
- false, false, relativePath, callback);
+ validateProps, ignoreDates, false, relativePath, callback);
}
public native void load(File path, InputStream dataInput,
@@ -187,6 +200,7 @@ public class SVNRepos implements ISVNRep
boolean ignoreUUID, boolean forceUUID,
boolean usePreCommitHook, boolean usePostCommitHook,
boolean validateProps, boolean ignoreDates,
+ boolean normalizeProps,
String relativePath, ReposNotifyCallback callback)
throws ClientException;
Modified: subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java Wed Nov 7 12:30:06 2018
@@ -23,6 +23,8 @@
package org.apache.subversion.javahl.callback;
+import java.lang.annotation.*;
+
/**
* <p>The interface for requesting authentication credentials from the
* user. Should the javahl bindings need the matching information,
@@ -40,16 +42,19 @@ public interface UserPasswordCallback
/**
* Reject the connection to the server.
*/
+ @Native
public static final int Reject = 0;
/**
* Accept the connection to the server <i>once</i>.
*/
+ @Native
public static final int AcceptTemporary = 1;
/**
* Accept the connection to the server <i>forever</i>.
*/
+ @Native
public static final int AcceptPermanently = 2;
/**
Modified: subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java Wed Nov 7 12:30:06 2018
@@ -23,6 +23,7 @@
package org.apache.subversion.javahl.types;
+import java.lang.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
@@ -179,6 +180,7 @@ public class Revision implements java.io
/**
* Marker revision number for no real revision
*/
+ @Native
public static final int SVN_INVALID_REVNUM = -1;
/**
Modified: subversion/branches/ra-git/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Wed Nov 7 12:30:06 2018
@@ -3930,7 +3930,7 @@ public class BasicTests extends SVNTests
/*
This is currently commented out, because we don't have an XFail method
for JavaHL. The resolution is pending the result of issue #3680:
- http://subversion.tigris.org/issues/show_bug.cgi?id=3680
+ https://issues.apache.org/jira/browse/SVN-3680
public void testObstructionTolerance()
throws SubversionException, IOException
@@ -4193,10 +4193,11 @@ public class BasicTests extends SVNTests
Set<String> revProps = new HashSet<String>(2);
revProps.add("kfogel");
revProps.add("cmpilato");
+ // Testing variant with allRevProps = false
client.logMessages(thisTest.getWCPath(), Revision.getInstance(2),
toRevisionRange(Revision.getInstance(2),
Revision.getInstance(2)),
- false, false, false, revProps, 0,
+ false, false, false, revProps, false, 0,
new LogMessageCallback () {
public void singleMessage(Set<ChangePath> changedPaths,
long revision,
@@ -4671,13 +4672,10 @@ public class BasicTests extends SVNTests
}
MyLogMessageCallback callback = new MyLogMessageCallback();
- Set<String> revProps = new HashSet<String>();
- revProps.add("svn:log");
- revProps.add("svn:date");
- revProps.add("svn:author");
+ // Testing variant with allRevProps = true
client.logMessages(path, pegRevision, revisionRanges, stopOnCopy,
- discoverPath, includeMergedRevisions, revProps,
- limit, callback);
+ discoverPath, includeMergedRevisions, null,
+ true, limit, callback);
return callback.getMessages();
}
Modified: subversion/branches/ra-git/subversion/bindings/javahl/tests/org/apache/subversion/javahl/ExceptionTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/tests/org/apache/subversion/javahl/ExceptionTests.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/tests/org/apache/subversion/javahl/ExceptionTests.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/tests/org/apache/subversion/javahl/ExceptionTests.java Wed Nov 7 12:30:06 2018
@@ -241,10 +241,11 @@ public class ExceptionTests extends SVNT
{
List<RevisionRange> ranges = new ArrayList<RevisionRange>(1);
ranges.add(new RevisionRange(null, null));
+ // Testing variant with allRevProps = false
client.logMessages(thisTest.getWorkingCopy() + "/iota",
Revision.getInstance(1), ranges,
false, false, false,
- null, 2,
+ null, false, 2,
new LogMessageCallback()
{
public void singleMessage(
Modified: subversion/branches/ra-git/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java Wed Nov 7 12:30:06 2018
@@ -3066,7 +3066,7 @@ public class BasicTests extends SVNTests
/*
This is currently commented out, because we don't have an XFail method
for JavaHL. The resolution is pending the result of issue #3680:
- http://subversion.tigris.org/issues/show_bug.cgi?id=3680
+ https://issues.apache.org/jira/browse/SVN-3680
public void testObstructionTolerance()
throws SubversionException, IOException
{
Modified: subversion/branches/ra-git/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/include/svn_types.swg?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/include/svn_types.swg Wed Nov 7 12:30:06 2018
@@ -44,6 +44,7 @@
Known instances of "type **" which are *not* OUTPUT parameters are:
- svn_stream_checksummed(..., const unsigned char **read_digest,
const unsigned char **write_digest, ...)
+ - svn_*_change_rev_prop2(..., const svn_string_t *const *old_value_p, ...)
*/
%typemap(in, numinputs=0) SWIGTYPE ** ($*1_ltype temp) "$1 = &temp;";
@@ -1107,7 +1108,7 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
#ifdef SWIGRUBY
%typemap(argout) unsigned char digest[ANY] {
char *digest_string = (char *)svn_md5_digest_to_cstring($1, _global_pool);
- %append_output(rb_str_new2(digest_string));
+ %append_output(rb_str_new2(digest_string ? digest_string : ""));
}
#endif
Modified: subversion/branches/ra-git/subversion/bindings/swig/perl/native/Core.pm
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/perl/native/Core.pm?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/perl/native/Core.pm (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/perl/native/Core.pm Wed Nov 7 12:30:06 2018
@@ -613,7 +613,7 @@ The second is if you have $SVN::Error::h
calls you want to croak on when there is an error, but you don't want to write
an explicit error handler. For example:
-my $result_rev=SVN::Error::croak_on_error($ctx-E<gt>checkout($url,$path,'HEAD',1));
+my $rev = SVN::Error::croak_on_error($ctx-E<gt>checkout($url,$path,'HEAD',1));
If there is no error then croak_on_error will return the arguments passed to it
unchanged.
Modified: subversion/branches/ra-git/subversion/bindings/swig/perl/native/Makefile.PL.in
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/perl/native/Makefile.PL.in?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/perl/native/Makefile.PL.in (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/perl/native/Makefile.PL.in Wed Nov 7 12:30:06 2018
@@ -90,6 +90,9 @@ my %config = (
(map {"-L$_"} @ldpaths),
@ldmodules, '-lsvn_swig_perl-1',
`$swig -perl -ldflags`)],
+ LDFLAGS => join(' ', (map {"-L$_"} @ldpaths), '@LDFLAGS@ @SWIG_PL_LINK@'),
+ LDDLFLAGS => join(' ', (map {"-L$_"} @ldpaths),
+ '@LDFLAGS@ @SWIG_PL_LINK@', $Config{lddlflags}),
test => { TESTS => "$swig_srcdir/perl/native/t/*.t" }
);
Modified: subversion/branches/ra-git/subversion/bindings/swig/perl/native/t/3client.t
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/perl/native/t/3client.t?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/perl/native/t/3client.t (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/perl/native/t/3client.t Wed Nov 7 12:30:06 2018
@@ -1091,8 +1091,8 @@ isa_ok($dirents->{'dir1'},'_p_svn_dirent
is($dirents->{'dir1'}->kind(),$SVN::Core::node_dir,
'kind() returns a dir node');
# TEST
-is($dirents->{'dir1'}->size(),0,
- 'size() returns 0 for a directory');
+is($dirents->{'dir1'}->size(), -1,
+ 'size() returns -1 for a directory');
# TEST
is($dirents->{'dir1'}->has_props(),1,
'has_props() returns true');
Modified: subversion/branches/ra-git/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Wed Nov 7 12:30:06 2018
@@ -2578,8 +2578,7 @@ svn_swig_py_make_stream(PyObject *py_io,
svn_stream_t *stream;
stream = svn_stream_create(py_io, pool);
- svn_stream_set_read2(stream, NULL /* only full read support */,
- read_handler_pyio);
+ svn_stream_set_read2(stream, read_handler_pyio, NULL);
svn_stream_set_write(stream, write_handler_pyio);
svn_stream_set_close(stream, close_handler_pyio);
apr_pool_cleanup_register(pool, py_io, svn_swig_py_stream_destroy,
Modified: subversion/branches/ra-git/subversion/bindings/swig/python/svn/fs.py
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/python/svn/fs.py?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/python/svn/fs.py (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/python/svn/fs.py Wed Nov 7 12:30:06 2018
@@ -34,12 +34,15 @@ del _unprefix_names
# Names that are not to be exported
import sys as _sys, os as _os, tempfile as _tempfile, subprocess as _subprocess
try:
- # Python >=3.0
- import builtins
-except ImportError:
# Python <3.0
+ # Check for Python <3.0 first to prevent the presence of the python2-future
+ # package from incorrectly importing Python 3 behavior when it isn't intended.
import __builtin__ as builtins
+except ImportError:
+ # Python >=3.0
+ import builtins
import svn.core as _svncore
+import svn.diff as _svndiff
def entries(root, path, pool=None):
@@ -56,6 +59,7 @@ class FileDiff:
self.tempfile1 = None
self.tempfile2 = None
+ self.difftemp = None
self.root1 = root1
self.path1 = path1
@@ -76,7 +80,7 @@ class FileDiff:
return 0
def _dump_contents(self, file, root, path, pool=None):
- fp = builtins.open(file, 'w+') # avoid namespace clash with
+ fp = builtins.open(file, 'wb') # avoid namespace clash with
# trimmed-down svn_fs_open()
if path is not None:
stream = file_contents(root, path, pool)
@@ -108,27 +112,49 @@ class FileDiff:
def get_pipe(self):
self.get_files()
- # use an array for the command to avoid the shell and potential
- # security exposures
- cmd = ["diff"] \
- + self.diffoptions \
- + [self.tempfile1, self.tempfile2]
-
- # open the pipe, and return the file object for reading from the child.
- p = _subprocess.Popen(cmd, stdout=_subprocess.PIPE, bufsize=-1,
- close_fds=_sys.platform != "win32")
- return p.stdout
+ # If diffoptions were provided, then the diff command needs to be
+ # called in preference to using the internal Subversion diff.
+ if self.diffoptions is not None:
+ # use an array for the command to avoid the shell and potential
+ # security exposures
+ cmd = ["diff"] \
+ + self.diffoptions \
+ + [self.tempfile1, self.tempfile2]
+
+ # open the pipe, and return the file object for reading from the child.
+ p = _subprocess.Popen(cmd, stdout=_subprocess.PIPE, bufsize=-1,
+ close_fds=_sys.platform != "win32")
+ return p.stdout
+
+ else:
+ if self.difftemp is None:
+ self.difftemp = _tempfile.mktemp()
+
+ with builtins.open(self.difftemp, "wb") as fp:
+ diffopt = _svndiff.file_options_create()
+ diffobj = _svndiff.file_diff_2(self.tempfile1,
+ self.tempfile2,
+ diffopt)
+
+ _svndiff.file_output_unified4(fp,
+ diffobj,
+ self.tempfile1,
+ self.tempfile2,
+ None, None,
+ "utf8",
+ None,
+ diffopt.show_c_function,
+ diffopt.context_size,
+ None, None)
+
+ return builtins.open(self.difftemp, "rb")
def __del__(self):
# it seems that sometimes the files are deleted, so just ignore any
# failures trying to remove them
- if self.tempfile1 is not None:
- try:
- _os.remove(self.tempfile1)
- except OSError:
- pass
- if self.tempfile2 is not None:
- try:
- _os.remove(self.tempfile2)
- except OSError:
- pass
+ for tmpfile in [self.tempfile1, self.tempfile2, self.difftemp]:
+ if tmpfile is not None:
+ try:
+ _os.remove(tmpfile)
+ except OSError:
+ pass
Modified: subversion/branches/ra-git/subversion/bindings/swig/python/tests/run_all.py
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/python/tests/run_all.py?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/python/tests/run_all.py (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/python/tests/run_all.py Wed Nov 7 12:30:06 2018
@@ -19,7 +19,7 @@
#
#
import unittest, setup_path
-import mergeinfo, core, client, delta, checksum, pool, ra, wc, repository, \
+import mergeinfo, core, client, delta, checksum, pool, fs, ra, wc, repository, \
auth, trac.versioncontrol.tests
from svn.core import svn_cache_config_get, svn_cache_config_set
@@ -37,6 +37,7 @@ def suite():
s.addTest(client.suite())
s.addTest(delta.suite())
s.addTest(pool.suite())
+ s.addTest(fs.suite())
s.addTest(ra.suite())
s.addTest(wc.suite())
s.addTest(repository.suite())
Modified: subversion/branches/ra-git/subversion/bindings/swig/ruby/svn/util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/ruby/svn/util.rb?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/ruby/svn/util.rb (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/ruby/svn/util.rb Wed Nov 7 12:30:06 2018
@@ -36,8 +36,13 @@ module Svn
module Util #:nodoc:
module_function
def to_ruby_class_name(name)
+ # Convert to CamelCase with 'X' for a leading/double/trailing underscore.
name.to_s.split("_").collect do |x|
- "#{x[0,1].upcase}#{x[1..-1].downcase}"
+ if x.empty?
+ "X"
+ else
+ x.capitalize
+ end
end.join("")
end
@@ -70,6 +75,8 @@ module Svn
target_name = $POSTMATCH
when /^SWIG_SVN_/
target_name = $POSTMATCH
+ when /^Svn_(?:#{target_mod.name.split("::").last.downcase}_)?_(.+)_t$/
+ # ignore private types
when /^Svn_(?:#{target_mod.name.split("::").last.downcase}_)?(.+)_t$/
target_name = to_ruby_class_name($1)
when /^Svn_(?:#{target_mod.name.split("::").last.downcase}_)?/
Modified: subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_client.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_client.rb?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_client.rb (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_client.rb Wed Nov 7 12:30:06 2018
@@ -1087,7 +1087,7 @@ class SvnClientTest < Test::Unit::TestCa
We haven't yet figured out what to expect in the case of an obstruction,
but it is no longer an error. Commenting out this test until that
decision is made (see issue #3680:
- http://subversion.tigris.org/issues/show_bug.cgi?id=3680)
+ https://issues.apache.org/jira/browse/SVN-3680)
def test_cleanup
log = "sample log"
Modified: subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_core.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_core.rb?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_core.rb (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_core.rb Wed Nov 7 12:30:06 2018
@@ -472,19 +472,9 @@ EOS
latest.close
expected = <<-EOD
-<<<<<<< #{modified.path}
-a
- b
-
-||||||| #{original.path}
-a
- b
-c
-=======
b
-c
->>>>>>> #{latest.path}
+
d
e
EOD
Modified: subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_fs.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_fs.rb?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_fs.rb (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_fs.rb Wed Nov 7 12:30:06 2018
@@ -358,7 +358,7 @@ class SvnFsTest < Test::Unit::TestCase
src = "a\nb\nc\nd\ne\n"
modified = "A\nb\nc\nd\nE\n"
result = "a\n\n\n\ne\n"
- expected = "<<<<<<< .mine\nA\nb\nc\nd\n||||||| .r1\na\nb\nc\nd\n=======\na\n\n\n\n>>>>>>> .r2\nE\n"
+ expected = "A\n\n\n\nE\n"
path_in_repos = "/#{file}"
path = File.join(@wc_path, file)
@@ -378,10 +378,6 @@ class SvnFsTest < Test::Unit::TestCase
ctx.up(@wc_path)
assert_equal(expected, File.open(path){|f| f.read})
- ctx.resolve(:path=>@wc_path,
- :conflict_choice=>Svn::Wc::CONFLICT_CHOOSE_THEIRS_CONFLICT)
- expected = "a\n\n\n\nE\n"
-
rev2 = ctx.ci(@wc_path).revision
if use_deprecated_api
stream = @fs.root(rev2).file_delta_stream(@fs.root(rev1),
Modified: subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_util.rb?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_util.rb (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_util.rb Wed Nov 7 12:30:06 2018
@@ -33,5 +33,6 @@ class SvnUtilTest < Test::Unit::TestCase
assert_equal("Abc", Svn::Util.to_ruby_class_name("abc"))
assert_equal("AbcDef", Svn::Util.to_ruby_class_name("abc_def"))
assert_equal("AbcDef", Svn::Util.to_ruby_class_name("ABC_DEF"))
+ assert_equal("XFoo", Svn::Util.to_ruby_class_name("_foo"))
end
end
Modified: subversion/branches/ra-git/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_client_private.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_client_private.h Wed Nov 7 12:30:06 2018
@@ -341,6 +341,77 @@ svn_client__mergeinfo_log(svn_boolean_t
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+/** Return a diff processor that will print a Subversion-style
+ * (not git-style) diff.
+ *
+ * @a anchor is optional (may be null), and is the 'anchor' path to prefix
+ * to the diff-processor paths before displaying.
+ *
+ * @a orig_path_1 and @a orig_path_2 are the two main root paths to be
+ * diffed; each may be a URL, a local WC path or a local unversioned path.
+ *
+ * Other arguments are as for svn_client_diff7() etc.
+ */
+svn_error_t *
+svn_client__get_diff_writer_svn(
+ svn_diff_tree_processor_t **diff_processor,
+ const char *anchor,
+ const char *orig_path_1,
+ const char *orig_path_2,
+ const apr_array_header_t *options,
+ const char *relative_to_dir,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/** Output the subtree of @a shelf_version rooted at @a shelf_relpath
+ * as a diff to @a diff_processor.
+ *
+ * ### depth and ignore_ancestry are currently ignored.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_diff(svn_client__shelf_version_t *shelf_version,
+ const char *shelf_relpath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ apr_pool_t *scratch_pool);
+
+/*** Editor for diff summary ***/
+
+/* Set *DIFF_PROCESSOR to a diff processor that will report a diff summary
+ to SUMMARIZE_FUNC.
+
+ P_ROOT_RELPATH will return a pointer to a string that must be set,
+ before the processor is called, to a prefix that will be found on
+ every DIFF_PROCESSOR relpath, that will be removed before passing
+ the path to SUMMARIZE_FUNC.
+
+ ORIGINAL_TARGET is not used.
+
+ SUMMARIZE_FUNC is called with SUMMARIZE_BATON as parameter by the
+ created callbacks for each changed item.
+*/
+svn_error_t *
+svn_client__get_diff_summarize_callbacks(
+ svn_diff_tree_processor_t **diff_processor,
+ svn_client_diff_summarize_func_t summarize_func,
+ void *summarize_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/ra-git/subversion/include/private/svn_cmdline_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_cmdline_private.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_cmdline_private.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_cmdline_private.h Wed Nov 7 12:30:06 2018
@@ -63,6 +63,7 @@ svn_cmdline__print_xml_prop(svn_stringbu
* Expects a @c svn_cmdline_prompt_baton2_t to be passed as @a baton.
*
* @since New in 1.6.
+ * @deprecated Only used by old libgome-keyring implementation.
*/
svn_error_t *
svn_cmdline__auth_gnome_keyring_unlock_prompt(char **keyring_password,
@@ -268,6 +269,15 @@ svn_cmdline__disable_cancellation_handle
void
svn_cmdline__cancellation_exit(void);
+/** Reads a string from stdin until a newline or EOF is found
+ *
+ * @since New in 1.10.
+ */
+svn_error_t *
+svn_cmdline__stdin_readline(const char **result,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/ra-git/subversion/include/private/svn_dep_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_dep_compat.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_dep_compat.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_dep_compat.h Wed Nov 7 12:30:06 2018
@@ -115,6 +115,28 @@ extern "C" {
#endif
/**
+ * APR 1 has volatile qualifier bugs in some atomic prototypes that
+ * are fixed in APR 2:
+ * https://issues.apache.org/bugzilla/show_bug.cgi?id=50731
+ * Subversion code should put the volatile qualifier in the correct
+ * place when declaring variables which means that casting at the call
+ * site is necessary when using APR 1. No casts should be used with
+ * APR 2 as this allows the compiler to check that the variable has
+ * the correct volatile qualifier.
+ */
+#if APR_VERSION_AT_LEAST(2,0,0)
+#define svn_atomic_casptr(mem, with, cmp) \
+ apr_atomic_casptr((mem), (with), (cmp))
+#define svn_atomic_xchgptr(mem, val) \
+ apr_atomic_xchgptr((mem), (val))
+#else
+#define svn_atomic_casptr(mem, with, cmp) \
+ apr_atomic_casptr((void volatile **)(mem), (with), (cmp))
+#define svn_atomic_xchgptr(mem, val) \
+ apr_atomic_xchgptr((void volatile **)(mem), (val))
+#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/ra-git/subversion/include/private/svn_diff_tree.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_diff_tree.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_diff_tree.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_diff_tree.h Wed Nov 7 12:30:06 2018
@@ -321,7 +321,6 @@ svn_diff__tree_processor_create(void *ba
*/ /* Used by libsvn clients repository diff */
const svn_diff_tree_processor_t *
svn_diff__tree_processor_reverse_create(const svn_diff_tree_processor_t * processor,
- const char *prefix_relpath,
apr_pool_t *result_pool);
/**
Modified: subversion/branches/ra-git/subversion/include/private/svn_element.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_element.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_element.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_element.h Wed Nov 7 12:30:06 2018
@@ -348,7 +348,7 @@ svn_element__content_t *
svn_element__tree_get(const svn_element__tree_t *tree,
int eid);
-svn_error_t *
+void
svn_element__tree_set(svn_element__tree_t *tree,
int eid,
const svn_element__content_t *element);
Modified: subversion/branches/ra-git/subversion/include/private/svn_fs_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_fs_private.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_fs_private.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_fs_private.h Wed Nov 7 12:30:06 2018
@@ -183,7 +183,7 @@ svn_fs__editor_commit(svn_revnum_t *revi
*
* If there is no mergeinfo, set @a *mergeinfo to NULL.
*
- * See svn_fs_get_mergeinfo2() but for the meanings of @a inherit and
+ * See svn_fs_get_mergeinfo3() but for the meanings of @a inherit and
* @a adjust_inheritable_mergeinfo and other details.
*/
svn_error_t *
Modified: subversion/branches/ra-git/subversion/include/private/svn_io_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_io_private.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_io_private.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_io_private.h Wed Nov 7 12:30:06 2018
@@ -127,6 +127,13 @@ svn_stream__install_get_info(apr_finfo_t
apr_int32_t wanted,
apr_pool_t *scratch_pool);
+/* Internal version of svn_stream_from_aprfile2() supporting the
+ additional TRUNCATE_ON_SEEK argument. */
+svn_stream_t *
+svn_stream__from_aprfile(apr_file_t *file,
+ svn_boolean_t disown,
+ svn_boolean_t truncate_on_seek,
+ apr_pool_t *pool);
#if defined(WIN32)
Modified: subversion/branches/ra-git/subversion/include/private/svn_log.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_log.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_log.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_log.h Wed Nov 7 12:30:06 2018
@@ -93,7 +93,7 @@ svn_log__get_file(const char *path, svn_
const char *
svn_log__get_dir(const char *path, svn_revnum_t rev,
svn_boolean_t want_contents, svn_boolean_t want_props,
- apr_uint64_t dirent_fields,
+ apr_uint32_t dirent_fields,
apr_pool_t *pool);
/**
@@ -262,7 +262,7 @@ svn_log__get_inherited_props(const char
const char *
svn_log__list(const char *path, svn_revnum_t revision,
apr_array_header_t *patterns, svn_depth_t depth,
- apr_uint64_t dirent_fields, apr_pool_t *pool);
+ apr_uint32_t dirent_fields, apr_pool_t *pool);
#ifdef __cplusplus
}
Modified: subversion/branches/ra-git/subversion/include/private/svn_mergeinfo_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_mergeinfo_private.h?rev=1846002&r1=1846001&r2=1846002&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_mergeinfo_private.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_mergeinfo_private.h Wed Nov 7 12:30:06 2018
@@ -52,18 +52,21 @@ svn_rangelist__set_inheritance(svn_range
* Unlike svn_mergeinfo_parse(), this does not sort the ranges into order
* or combine adjacent and overlapping ranges.
*
- * The compaction can be done with svn_rangelist__combine_adjacent_ranges().
+ * The compaction can be done with svn_rangelist__canonicalize().
*/
svn_error_t *
svn_rangelist__parse(svn_rangelist_t **rangelist,
const char *str,
apr_pool_t *result_pool);
-/* In-place combines adjacent ranges in a rangelist.
- SCRATCH_POOL is just used for providing error messages. */
-svn_error_t *
-svn_rangelist__combine_adjacent_ranges(svn_rangelist_t *rangelist,
- apr_pool_t *scratch_pool);
+/* Return TRUE, if all ranges in RANGELIST are in ascending order and do
+* not overlap and are not adjacent.
+*
+* If this returns FALSE, you probaly want to call
+* svn_rangelist__canonicalize().
+*/
+svn_boolean_t
+svn_rangelist__is_canonical(const svn_rangelist_t *rangelist);
/** Canonicalize the @a rangelist: sort the ranges, and combine adjacent or
* overlapping ranges into single ranges where possible.