You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2014/06/24 23:30:01 UTC
svn commit: r1605201 [1/5] - in /subversion/branches/svn-auth-x509: ./
build/generator/ subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apache/subversion/javahl/
subversion/bindings/javahl/tests/org/apache/subversion/javahl/ subve...
Author: stsp
Date: Tue Jun 24 21:29:59 2014
New Revision: 1605201
URL: http://svn.apache.org/r1605201
Log:
On the svn-auth-x509-branch, merge outstanding changes from trunk.
Modified:
subversion/branches/svn-auth-x509/ (props changed)
subversion/branches/svn-auth-x509/CHANGES
subversion/branches/svn-auth-x509/build/generator/gen_win_dependencies.py
subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/SVNClient.cpp
subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/SVNClient.h
subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java
subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
subversion/branches/svn-auth-x509/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
subversion/branches/svn-auth-x509/subversion/bindings/swig/ruby/test/test_client.rb
subversion/branches/svn-auth-x509/subversion/include/private/svn_string_private.h
subversion/branches/svn-auth-x509/subversion/include/svn_client.h
subversion/branches/svn-auth-x509/subversion/include/svn_diff.h
subversion/branches/svn-auth-x509/subversion/include/svn_fs.h
subversion/branches/svn-auth-x509/subversion/include/svn_path.h
subversion/branches/svn-auth-x509/subversion/include/svn_types.h
subversion/branches/svn-auth-x509/subversion/include/svn_wc.h
subversion/branches/svn-auth-x509/subversion/libsvn_client/diff.c
subversion/branches/svn-auth-x509/subversion/libsvn_diff/diff_file.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/cached_data.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/cached_data.h
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/dag.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/fs.h
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/hotcopy.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/id.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/id.h
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/index.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/index.h
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/low_level.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/low_level.h
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/pack.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/recovery.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/rev_file.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/rev_file.h
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/temp_serializer.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/transaction.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/transaction.h
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/tree.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/util.c
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/util.h
subversion/branches/svn-auth-x509/subversion/libsvn_fs_fs/verify.c
subversion/branches/svn-auth-x509/subversion/libsvn_repos/log.c
subversion/branches/svn-auth-x509/subversion/libsvn_repos/repos.c
subversion/branches/svn-auth-x509/subversion/libsvn_subr/checksum.c
subversion/branches/svn-auth-x509/subversion/libsvn_subr/io.c
subversion/branches/svn-auth-x509/subversion/libsvn_subr/string.c
subversion/branches/svn-auth-x509/subversion/libsvn_subr/win32_crashrpt.c
subversion/branches/svn-auth-x509/subversion/mod_dav_svn/dav_svn.h
subversion/branches/svn-auth-x509/subversion/mod_dav_svn/mod_dav_svn.c
subversion/branches/svn-auth-x509/subversion/mod_dav_svn/repos.c
subversion/branches/svn-auth-x509/subversion/svn/log-cmd.c
subversion/branches/svn-auth-x509/subversion/svn/notify.c
subversion/branches/svn-auth-x509/subversion/svn/svn.c
subversion/branches/svn-auth-x509/subversion/svnadmin/svnadmin.c
subversion/branches/svn-auth-x509/subversion/svnlook/svnlook.c
subversion/branches/svn-auth-x509/subversion/svnserve/svnserve.c
subversion/branches/svn-auth-x509/subversion/tests/cmdline/commit_tests.py
subversion/branches/svn-auth-x509/subversion/tests/cmdline/depth_tests.py
subversion/branches/svn-auth-x509/subversion/tests/cmdline/diff_tests.py
subversion/branches/svn-auth-x509/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
subversion/branches/svn-auth-x509/subversion/tests/cmdline/svnadmin_tests.py
subversion/branches/svn-auth-x509/subversion/tests/cmdline/svntest/wc.py
subversion/branches/svn-auth-x509/subversion/tests/cmdline/trans_tests.py
subversion/branches/svn-auth-x509/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
subversion/branches/svn-auth-x509/subversion/tests/libsvn_subr/dirent_uri-test.c
subversion/branches/svn-auth-x509/tools/dev/unix-build/Makefile.svn
subversion/branches/svn-auth-x509/tools/server-side/svn-rep-sharing-stats.c
subversion/branches/svn-auth-x509/tools/server-side/svnfsfs/load-index-cmd.c
Propchange: subversion/branches/svn-auth-x509/
------------------------------------------------------------------------------
Merged /subversion/trunk:r1603833-1605200
Modified: subversion/branches/svn-auth-x509/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/CHANGES?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/CHANGES (original)
+++ subversion/branches/svn-auth-x509/CHANGES Tue Jun 24 21:29:59 2014
@@ -391,7 +391,7 @@ http://svn.apache.org/repos/asf/subversi
* javahl: new utility class SVNUtil (r1512354)
* javahl: serialize init of native library (r1519803)
* javahl: fix value truncation checks (r1519913)
- * javahl: Add ISVNClient.info2 which exposes svn_client_info3 (r1527844)
+ * javahl: Add ISVNClient.info which exposes svn_client_info4 (r1603481)
* javahl: include name of exception class in error messages (r1532117)
* javahl: simplify JNI environment handling (r1533804)
* javahl: Revsion.UNSPECIFIED added as alias to Revision.START (r1533928)
Modified: subversion/branches/svn-auth-x509/build/generator/gen_win_dependencies.py
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/build/generator/gen_win_dependencies.py?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/build/generator/gen_win_dependencies.py (original)
+++ subversion/branches/svn-auth-x509/build/generator/gen_win_dependencies.py Tue Jun 24 21:29:59 2014
@@ -321,7 +321,7 @@ class GenDependenciesBase(gen_base.Gener
elif os.path.isfile(os.path.join(inc_base, 'apr_version.h')):
inc_path = inc_base
else:
- sys.stderr.write("ERROR: '%s' not found.\n" % version_file_path)
+ sys.stderr.write("ERROR: 'apr_version' not found.\n")
sys.stderr.write("Use '--with-apr' option to configure APR location.\n")
sys.exit(1)
@@ -429,12 +429,6 @@ class GenDependenciesBase(gen_base.Gener
sys.exit(1)
version_file_path = os.path.join(inc_path, 'apu_version.h')
-
- if not os.path.exists(version_file_path):
- sys.stderr.write("ERROR: '%s' not found.\n" % version_file_path);
- sys.stderr.write("Use '--with-apr-util' option to configure APR-Util location.\n");
- sys.exit(1)
-
txt = open(version_file_path).read()
vermatch = re.search(r'^\s*#define\s+APU_MAJOR_VERSION\s+(\d+)', txt, re.M)
@@ -564,7 +558,7 @@ class GenDependenciesBase(gen_base.Gener
debug_lib_dir = debug_lib_dir,
defines=['XML_STATIC'])
- def _find_httpd(self, show_warning):
+ def _find_httpd(self, show_warnings):
"Find Apache HTTPD and version"
minimal_httpd_version = (2, 0, 0)
@@ -588,7 +582,7 @@ class GenDependenciesBase(gen_base.Gener
elif os.path.isfile(os.path.join(inc_base, 'ap_release.h')):
inc_path = inc_base
else:
- if show_warning:
+ if show_warnings:
print('WARNING: \'ap_release.h\' not found')
print("Use '--with-httpd' to configure openssl location.");
return
@@ -612,7 +606,7 @@ class GenDependenciesBase(gen_base.Gener
httpd_version = '%d.%d.%d' % version
if version < minimal_httpd_version:
- if show_warning:
+ if show_warnings:
print("WARNING: httpd %s or higher is required "
"(%s found)\n" % (
'.'.join(str(v) for v in minimal_httpd_version),
@@ -649,7 +643,7 @@ class GenDependenciesBase(gen_base.Gener
# Source location
inc_path = os.path.join(lib_base, 'modules/dav/main')
else:
- if show_warning:
+ if show_warnings:
print("WARNING: Can't find mod_dav.h in the httpd directory")
return
@@ -666,7 +660,7 @@ class GenDependenciesBase(gen_base.Gener
else:
debug_lib_dir = None
else:
- if show_warning:
+ if show_warnings:
print("WARNING: Can't find mod_dav.lib in the httpd directory")
return
@@ -836,7 +830,7 @@ class GenDependenciesBase(gen_base.Gener
else:
bin_dir = os.path.join(self.openssl_path, 'bin')
else:
- if show_warning:
+ if show_warnings:
print('WARNING: \'opensslv.h\' not found')
print("Use '--with-openssl' to configure openssl location.");
return
@@ -1045,7 +1039,7 @@ class GenDependenciesBase(gen_base.Gener
return
if version < minimal_jdk_version:
- if show_warning:
+ if show_warnings:
print('Found java jdk %s, but >= %s is required. '
'javahl will not be built.\n' % \
(versionstr, '.'.join(str(v) for v in minimal_jdk_version)))
@@ -1102,7 +1096,7 @@ class GenDependenciesBase(gen_base.Gener
swig_ver = '%d.%d.%d' % (swig_version)
if swig_version < minimal_swig_version:
- if show_warning:
+ if show_warnings:
print('Found swig %s, but >= %s is required. '
'the swig bindings will not be built.\n' %
(swig_version, '.'.join(str(v) for v in minimal_swig_version)))
@@ -1167,7 +1161,7 @@ class GenDependenciesBase(gen_base.Gener
return serf_ver_maj, serf_ver_min, serf_ver_patch
- def _find_serf(self, show_warning):
+ def _find_serf(self, show_warnings):
"Check if serf and its dependencies are available"
minimal_serf_version = (1, 3, 4)
@@ -1193,7 +1187,7 @@ class GenDependenciesBase(gen_base.Gener
lib_dir = os.path.join(self.serf_path, 'lib')
debug_lib_dir = None
else:
- if show_warning:
+ if show_warnings:
print('WARNING: \'serf.h\' not found')
print("Use '--with-serf' to configure serf location.");
return
@@ -1202,7 +1196,7 @@ class GenDependenciesBase(gen_base.Gener
serf_version = '.'.join(str(v) for v in version)
if version < minimal_serf_version:
- if show_warning:
+ if show_warnings:
print('Found serf %s, but >= %s is required. '
'ra_serf will not be built.\n' %
(serf_version, '.'.join(str(v) for v in minimal_serf_version)))
@@ -1222,7 +1216,7 @@ class GenDependenciesBase(gen_base.Gener
debug_lib_dir=debug_lib_dir,
defines=defines)
- def _find_sasl(self, show_warning):
+ def _find_sasl(self, show_warnings):
"Check if sals is available"
minimal_sasl_version = (2, 0, 0)
@@ -1235,7 +1229,7 @@ class GenDependenciesBase(gen_base.Gener
version_file_path = os.path.join(inc_dir, 'sasl.h')
if not os.path.isfile(version_file_path):
- if show_warning:
+ if show_warnings:
print('WARNING: \'%s\' not found' % (version_file_path,))
print("Use '--with-sasl' to configure sasl location.");
return
@@ -1255,7 +1249,7 @@ class GenDependenciesBase(gen_base.Gener
sasl_version = '.'.join(str(v) for v in version)
if version < minimal_sasl_version:
- if show_warning:
+ if show_warnings:
print('Found sasl %s, but >= %s is required. '
'sals support will not be built.\n' %
(sasl_version, '.'.join(str(v) for v in minimal_serf_version)))
@@ -1280,7 +1274,7 @@ class GenDependenciesBase(gen_base.Gener
dll_name=dll_name,
defines=['SVN_HAVE_SASL'])
- def _find_libintl(self, show_warning):
+ def _find_libintl(self, show_warnings):
"Find gettext support"
minimal_libintl_version = (0, 14, 1)
@@ -1308,7 +1302,7 @@ class GenDependenciesBase(gen_base.Gener
lib_name = 'intl.lib'
dll_name = 'intl.dll'
else:
- if (show_warning):
+ if (show_warnings):
print('WARNING: \'libintl.h\' not found')
print("Use '--with-libintl' to configure libintl location.")
return
@@ -1325,7 +1319,7 @@ class GenDependenciesBase(gen_base.Gener
libintl_version = '.'.join(str(v) for v in version)
if version < minimal_libintl_version:
- if show_warning:
+ if show_warnings:
print('Found libintl %s, but >= %s is required.\n' % \
(libintl_version,
'.'.join(str(v) for v in minimal_libintl_version)))
Modified: subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/SVNClient.cpp?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/SVNClient.cpp Tue Jun 24 21:29:59 2014
@@ -510,7 +510,12 @@ void SVNClient::mkdir(Targets &targets,
ctx, subPool.getPool()), );
}
-void SVNClient::cleanup(const char *path)
+void SVNClient::cleanup(const char *path,
+ bool break_locks,
+ bool fix_recorded_timestamps,
+ bool clear_dav_cache,
+ bool remove_unused_pristines,
+ bool include_externals)
{
SVN::Pool subPool(pool);
SVN_JNI_NULL_PTR_EX(path, "path", );
@@ -521,7 +526,13 @@ void SVNClient::cleanup(const char *path
if (ctx == NULL)
return;
- SVN_JNI_ERR(svn_client_cleanup(intPath.c_str(), ctx, subPool.getPool()),);
+ SVN_JNI_ERR(svn_client_cleanup2(intPath.c_str(),
+ break_locks,
+ fix_recorded_timestamps,
+ clear_dav_cache,
+ remove_unused_pristines,
+ include_externals,
+ ctx, subPool.getPool()),);
}
void SVNClient::resolve(const char *path, svn_depth_t depth,
@@ -1479,6 +1490,29 @@ SVNClient::patch(const char *patchPath,
ctx, subPool.getPool()), );
}
+void SVNClient::vacuum(const char *path,
+ bool remove_unversioned_items,
+ bool remove_ignored_items,
+ bool fix_recorded_timestamps,
+ bool remove_unused_pristines,
+ bool include_externals)
+{
+ SVN_JNI_NULL_PTR_EX(path, "path", );
+
+ SVN::Pool subPool(pool);
+ svn_client_ctx_t *ctx = context.getContext(NULL, subPool);
+ if (ctx == NULL)
+ return;
+
+ SVN_JNI_ERR(svn_client_vacuum(path,
+ remove_unversioned_items,
+ remove_ignored_items,
+ fix_recorded_timestamps,
+ remove_unused_pristines,
+ include_externals,
+ ctx, subPool.getPool()), );
+}
+
jobject
SVNClient::openRemoteSession(const char* path, int retryAttempts)
{
Modified: subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/SVNClient.h?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/SVNClient.h Tue Jun 24 21:29:59 2014
@@ -63,6 +63,10 @@ class SVNClient :public SVNBase
{
public:
jobject openRemoteSession(const char* path, int);
+ void vacuum(const char *path,
+ bool remove_unversioned_items, bool remove_ignored_items,
+ bool fix_recorded_timestamps, bool remove_unused_pristines,
+ bool include_externals);
void patch(const char *patchPath, const char *targetPath, bool dryRun,
int stripCount, bool reverse, bool ignoreWhitespace,
bool removeTempfiles, PatchCallback *callback);
@@ -131,7 +135,12 @@ class SVNClient :public SVNBase
svn_depth_t depth, const char *nativeEOL);
void resolve(const char *path, svn_depth_t depth,
svn_wc_conflict_choice_t choice);
- void cleanup(const char *path);
+ void cleanup(const char *path,
+ bool break_locks,
+ bool fix_recorded_timestamps,
+ bool clear_dav_cache,
+ bool remove_unused_pristines,
+ bool include_externals);
void mkdir(Targets &targets, CommitMessage *message, bool makeParents,
PropertyTable &revprops, CommitCallback *callback);
void move(Targets &srcPaths, const char *destPath,
Modified: subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/svn-auth-x509/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Tue Jun 24 21:29:59 2014
@@ -667,7 +667,10 @@ Java_org_apache_subversion_javahl_SVNCli
JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_cleanup
-(JNIEnv *env, jobject jthis, jstring jpath)
+(JNIEnv *env, jobject jthis, jstring jpath,
+ jboolean jbreakLocks, jboolean jfixRecordedTimestamps,
+ jboolean jclearDavCache, jboolean jremoveUnusedPristines,
+ jboolean jincludeExternals)
{
JNIEntry(SVNClient, cleanup);
SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -680,7 +683,9 @@ Java_org_apache_subversion_javahl_SVNCli
if (JNIUtil::isExceptionThrown())
return;
- cl->cleanup(path);
+ cl->cleanup(path, jbreakLocks, jfixRecordedTimestamps,
+ jclearDavCache, jremoveUnusedPristines,
+ jincludeExternals);
}
JNIEXPORT void JNICALL
@@ -1947,6 +1952,28 @@ Java_org_apache_subversion_javahl_SVNCli
jremoveTempfiles ? true : false, &callback);
}
+JNIEXPORT void JNICALL
+Java_org_apache_subversion_javahl_SVNClient_vacuum
+(JNIEnv *env, jobject jthis, jstring jpath,
+ jboolean jremoveUnversionedItems, jboolean jremoveIgnoredItems,
+ jboolean jfixRecordedTimestamps, jboolean jremoveUnusedPristines,
+ jboolean jincludeExternals)
+{
+ JNIEntry(SVNClient, patch);
+ SVNClient *cl = SVNClient::getCppObject(jthis);
+ if (cl == NULL)
+ {
+ JNIUtil::throwError("bad C++ this");
+ return;
+ }
+
+ JNIStringHolder path(jpath);
+ cl->vacuum(path,
+ jremoveUnversionedItems, jremoveIgnoredItems,
+ jfixRecordedTimestamps, jremoveUnusedPristines,
+ jincludeExternals);
+}
+
JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_SVNClient_nativeOpenRemoteSession
(JNIEnv *env, jobject jthis, jstring jpath, jint jretryAttempts)
Modified: subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Tue Jun 24 21:29:59 2014
@@ -446,6 +446,30 @@ public interface ISVNClient
* Recursively cleans up a local directory, finishing any
* incomplete operations, removing lockfiles, etc.
* @param path a local directory.
+ * @param breakLocks ### FIXME: Missing docstring in svn_client.h
+ * @param clearDavCache ### FIXME: Missing docstring in svn_client.h
+ * @param removeUnusedPristines ### FIXME: Missing docstring in svn_client.h
+ * @param includeExternals Recurse into externals working copies
+ * and clean them up, too.
+ * @throws ClientException
+ * @since 1.9
+ */
+ void cleanup(String path,
+ boolean breakLocks,
+ boolean fixRecordedTimestamps,
+ boolean clearDavCache,
+ boolean removeUnusedPristines,
+ boolean includeExternals)
+ throws ClientException;
+
+ /**
+ * Recursively cleans up a local directory, finishing any
+ * incomplete operations, removing lockfiles, etc.
+ * <p>
+ * Behaves like the 1.9 version with <code>breakLocks</code> and
+ * <code>includeExternals</code> set to <code>false<code>, and the
+ * other flags to <code>true</code>.
+ * @param path a local directory.
* @throws ClientException
*/
void cleanup(String path) throws ClientException;
@@ -1446,28 +1470,10 @@ public interface ISVNClient
/**
* Retrieve information about repository or working copy items.
* <p>
- * Behaves like {@see ISVNClient#info} with
- * <code>includeExternals</code> set to <code>fals</code>
- * @since 1.9
- */
- void info2(String pathOrUrl,
- Revision revision, Revision pegRevision, Depth depth,
- boolean fetchExcluded, boolean fetchActualOnly,
- Collection<String> changelists, InfoCallback callback)
- throws ClientException;
-
- /**
- * Retrieve information about repository or working copy items.
- * <p>
* Behaves like the 1.9 version, with <code>fetchExcluded</code>
- * set to <code>false</code> and <code>fetchActualOnly</code> set
- * to <code>true</code>.
- * @param pathOrUrl the path or the url of the item
- * @param revision the revision of the item to return
- * @param pegRevision the revision to interpret pathOrUrl
- * @param depth the depth to recurse
- * @param changelists if non-null, filter paths using changelists
- * @param callback a callback to receive the infos retrieved
+ * set to <code>false</code>, <code>fetchActualOnly</code> set to
+ * <code>true</code> anf <code>includeExternals</code> set to
+ * <code>false</code>.
*/
void info2(String pathOrUrl, Revision revision, Revision pegRevision,
Depth depth, Collection<String> changelists,
@@ -1511,6 +1517,37 @@ public interface ISVNClient
throws ClientException;
/**
+ * Recursively vacuum a working copy, removing unnecessary data.
+ * <p>
+ * This method will report an error when
+ * <code>removeUnversionedItems</code> or
+ * <code>removeIgnoredItems</code> are set, and the working copy
+ * is already locked. This prevents accidental corruption of the
+ * working copy if this method is invoked while another client is
+ * performing some other operation on the working copy.
+ * @param path The path of the working copy directory.
+ * @param removeUnversionedItems Remove unversioned items from the
+ * working copy after it has been successfully cleaned up.
+ * @param removeIgnoredItems Remove unversioned items that are
+ * ignored by Subversion, after the working copy has been
+ * successfully cleaned up.
+ * @param fixRecordedTimestamps Update timestamps recorded in the
+ * working copy database to their actual on-disk values.
+ * @param removeUnusedPristines Remove pristine files that are not
+ * referenced by the working copy.
+ * @param includeExternals Recurse into externals working copies
+ * and vacuum them, too.
+ * @since 1.9
+ */
+ void vacuum(String path,
+ boolean removeUnversionedItems,
+ boolean removeIgnoredItems,
+ boolean fixRecordedTimestamps,
+ boolean removeUnusedPristines,
+ boolean includeExternals)
+ throws ClientException;
+
+ /**
* Open a persistent session to a repository.
* <p>
* <b>Note:</b> The session object inherits the progress callback,
Modified: subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java (original)
+++ subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java Tue Jun 24 21:29:59 2014
@@ -59,6 +59,7 @@ public interface ISVNConfig
public static final String LOG_ENCODING = "log-encoding";
public static final String USE_COMMIT_TIMES = "use-commit-times";
public static final String ENABLE_AUTO_PROPS = "enable-auto-props";
+ public static final String ENABLE_MAGIC_FILE = "enable-magic-file";
public static final String NO_UNLOCK = "no-unlock";
public static final String MIMETYPES_FILE = "mime-types-file";
public static final String PRESERVED_CF_EXTS = "preserved-conflict-file-exts";
@@ -73,6 +74,7 @@ public interface ISVNConfig
public static final String SECTION_WORKING_COPY = "working-copy";
public static final String SQLITE_EXCLUSIVE = "exclusive-locking";
public static final String SQLITE_EXCLUSIVE_CLIENTS = "exclusive-locking-clients";
+ public static final String SQLITE_BUSY_TIMEOUT = "busy-timeout";
/**
* Returns a reference to the "servers" configuration category.
@@ -110,6 +112,8 @@ public interface ISVNConfig
public static final String HTTP_BULK_UPDATES = "http-bulk-updates";
public static final String HTTP_MAX_CONNECTIONS = "http-max-connections";
public static final String HTTP_CHUNKED_REQUESTS = "http-chunked-requests";
+ public static final String SERF_LOG_COMPONENTS = "serf-log-components";
+ public static final String SERF_LOG_LEVEL = "serf-log-level";
/**
* "true" value in configuration. One of the values returned by
Modified: subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/svn-auth-x509/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Tue Jun 24 21:29:59 2014
@@ -270,8 +270,18 @@ public class SVNClient implements ISVNCl
CommitMessageCallback handler, CommitCallback callback)
throws ClientException;
- public native void cleanup(String path)
- throws ClientException;
+ public native void cleanup(String path,
+ boolean breakLocks,
+ boolean fixRecordedTimestamps,
+ boolean clearDavCache,
+ boolean removeUnusedPristines,
+ boolean includeExternals)
+ throws ClientException;
+
+ public void cleanup(String path) throws ClientException
+ {
+ cleanup(path, false, true, true, true, false);
+ }
public native void resolve(String path, Depth depth,
ConflictResult.Choice conflictResult)
@@ -754,17 +764,6 @@ public class SVNClient implements ISVNCl
public void info2(String pathOrUrl, Revision revision,
Revision pegRevision, Depth depth,
- boolean fetchExcluded, boolean fetchActualOnly,
- Collection<String> changelists,
- InfoCallback callback)
- throws ClientException
- {
- info(pathOrUrl, revision, pegRevision, depth,
- fetchExcluded, fetchActualOnly, false, changelists, callback);
- }
-
- public void info2(String pathOrUrl, Revision revision,
- Revision pegRevision, Depth depth,
Collection<String> changelists,
InfoCallback callback)
throws ClientException
@@ -779,6 +778,14 @@ public class SVNClient implements ISVNCl
PatchCallback callback)
throws ClientException;
+ public native void vacuum(String wcPath,
+ boolean removeUnversionedItems,
+ boolean removeIgnoredItems,
+ boolean fixRecordedTimestamps,
+ boolean removeUnusedPristines,
+ boolean includeExternals)
+ throws ClientException;
+
public ISVNRemote openRemoteSession(String pathOrUrl)
throws ClientException, SubversionException
{
Modified: subversion/branches/svn-auth-x509/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/svn-auth-x509/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Tue Jun 24 21:29:59 2014
@@ -2278,7 +2278,7 @@ public class BasicTests extends SVNTests
}
/**
- * Test the basic SVNClient.info2 functionality.
+ * Test the basic SVNClient.info functionality.
* @throws Throwable
* @since 1.2
*/
@@ -4305,8 +4305,9 @@ public class BasicTests extends SVNTests
{
final List<Info> infos = new ArrayList<Info>();
- client.info2(pathOrUrl, revision, pegRevision, depth, true, true,
- changelists, new InfoCallback () {
+ client.info(pathOrUrl, revision, pegRevision, depth,
+ true, true, false,
+ changelists, new InfoCallback () {
public void singleInfo(Info info)
{ infos.add(info); }
});
Modified: subversion/branches/svn-auth-x509/subversion/bindings/swig/ruby/test/test_client.rb
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/bindings/swig/ruby/test/test_client.rb?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/bindings/swig/ruby/test/test_client.rb (original)
+++ subversion/branches/svn-auth-x509/subversion/bindings/swig/ruby/test/test_client.rb Tue Jun 24 21:29:59 2014
@@ -179,7 +179,9 @@ class SvnClientTest < Test::Unit::TestCa
infos = []
ctx.set_notify_func do |notify|
- infos << [notify.path, notify]
+ if notify.action != Svn::Wc::NOTIFY_COMMIT_FINALIZING
+ infos << [notify.path, notify]
+ end
end
assert_equal([false, false], dirs_path.collect {|path| path.exist?})
@@ -223,7 +225,9 @@ class SvnClientTest < Test::Unit::TestCa
infos = []
ctx.set_notify_func do |notify|
- infos << [notify.path, notify]
+ if notify.action != Svn::Wc::NOTIFY_COMMIT_FINALIZING
+ infos << [notify.path, notify]
+ end
end
assert_equal([false, false], [dir_path.exist?, child_dir_path.exist?])
@@ -1228,10 +1232,12 @@ class SvnClientTest < Test::Unit::TestCa
end
ctx.ci(@wc_path)
- assert_equal([full_path2.to_s].sort,
+ assert_equal([full_path2.to_s, '.'].sort,
infos.collect{|path, notify| path}.sort)
path2_notify = infos.assoc(full_path2.to_s)[1]
assert(path2_notify.commit_added?)
+ finalizing_notify = infos.assoc('.')[1]
+ assert(finalizing_notify.action == Svn::Wc::NOTIFY_COMMIT_FINALIZING)
assert_equal(File.open(path1) {|f| f.read},
File.open(path2) {|f| f.read})
end
@@ -1259,12 +1265,16 @@ class SvnClientTest < Test::Unit::TestCa
end
ctx.ci(@wc_path)
- assert_equal([path1, path2].sort.collect{|p|File.expand_path(p)},
+ assert_equal([path1, path2].collect do |p|
+ File.expand_path(p)
+ end.push('.').sort,
infos.collect{|path, notify| path}.sort)
path1_notify = infos.assoc(File.expand_path(path1))[1]
assert(path1_notify.commit_deleted?)
path2_notify = infos.assoc(File.expand_path(path2))[1]
assert(path2_notify.commit_added?)
+ finalizing_notify = infos.assoc('.')[1]
+ assert(finalizing_notify.action == Svn::Wc::NOTIFY_COMMIT_FINALIZING)
assert_equal(src, File.open(path2) {|f| f.read})
end
end
@@ -1303,7 +1313,9 @@ class SvnClientTest < Test::Unit::TestCa
paths = notifies.collect do |notify|
notify.path
end
- assert_equal([path1, path2, path2].sort.collect{|p|File.expand_path(p)},
+ assert_equal([path1, path2, path2].collect do |p|
+ File.expand_path(p)
+ end.push('.').sort,
paths.sort)
deleted_paths = notifies.find_all do |notify|
@@ -1330,6 +1342,13 @@ class SvnClientTest < Test::Unit::TestCa
assert_equal([path2].sort.collect{|p|File.expand_path(p)},
postfix_txdelta_paths.sort)
+ finalizing_paths = notifies.find_all do |notify|
+ notify.action == Svn::Wc::NOTIFY_COMMIT_FINALIZING
+ end.collect do |notify|
+ notify.path
+ end
+ assert_equal(['.'], finalizing_paths)
+
assert_equal(src2, File.open(path2) {|f| f.read})
end
end
Modified: subversion/branches/svn-auth-x509/subversion/include/private/svn_string_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/include/private/svn_string_private.h?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/include/private/svn_string_private.h (original)
+++ subversion/branches/svn-auth-x509/subversion/include/private/svn_string_private.h Tue Jun 24 21:29:59 2014
@@ -139,6 +139,13 @@ svn_stringbuf__morph_into_string(svn_str
unsigned long
svn__strtoul(const char *buffer, const char **end);
+/** Like strtol but with a fixed base of 10 and without overflow checks.
+ * This allows the compiler to generate massively faster code.
+ * (E.g. Avoiding locale specific processing)
+ */
+long
+svn__strtol(const char *buffer, const char **end);
+
/** Number of chars needed to represent signed (19 places + sign + NUL) or
* unsigned (20 places + NUL) integers as strings.
*/
Modified: subversion/branches/svn-auth-x509/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/include/svn_client.h?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/include/svn_client.h (original)
+++ subversion/branches/svn-auth-x509/subversion/include/svn_client.h Tue Jun 24 21:29:59 2014
@@ -4130,9 +4130,23 @@ svn_client_vacuum(const char *dir_abspat
apr_pool_t *scratch_pool);
-/** Recursively cleanup a working copy directory @a dir, finishing any
+/** Recursively cleanup a working copy directory @a dir_abspath, finishing any
* incomplete operations, removing lockfiles, etc.
*
+ * If @a break_locks is @c TRUE, existing working copy locks at or below @a
+ * dir_abspath are broken, otherwise a normal write lock is obtained.
+ *
+ * If @a fix_recorded_timestamps is @c TRUE, this function fixes recorded
+ * timestamps for unmodified files in the working copy, reducing comparision
+ * time on future checks.
+ *
+ * If @a clear_dav_cache is @c TRUE, the caching of DAV information for older
+ * mod_dav served repositories is cleared. This clearing invalidates some
+ * cached information used for pre-HTTPv2 repositories.
+ *
+ * If @a vacuum_pristines is @c TRUE, and @a dir_abspath points to the working
+ * copy root unreferenced files in the pristine store are removed.
+ *
* If @a include_externals is @c TRUE, recurse into externals and clean
* them up as well.
*
@@ -4160,6 +4174,7 @@ svn_client_cleanup2(const char *dir_absp
*
* @deprecated Provided for limited backwards compatibility with the 1.8 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_cleanup(const char *dir,
svn_client_ctx_t *ctx,
Modified: subversion/branches/svn-auth-x509/subversion/include/svn_diff.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/include/svn_diff.h?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/include/svn_diff.h (original)
+++ subversion/branches/svn-auth-x509/subversion/include/svn_diff.h Tue Jun 24 21:29:59 2014
@@ -505,6 +505,7 @@ svn_diff_file_options_create(apr_pool_t
* - --ignore-all-space, -w
* - --ignore-eol-style
* - --show-c-function, -p @since New in 1.5.
+ * - --context, -U ARG @since New in 1.9.
* - --unified, -u (for compatibility, does nothing).
*/
svn_error_t *
Modified: subversion/branches/svn-auth-x509/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/include/svn_fs.h?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/include/svn_fs.h (original)
+++ subversion/branches/svn-auth-x509/subversion/include/svn_fs.h Tue Jun 24 21:29:59 2014
@@ -110,6 +110,12 @@ typedef struct svn_fs_t svn_fs_t;
*/
#define SVN_FS_CONFIG_FSFS_CACHE_NS "fsfs-cache-namespace"
+/** Enable / disable the FSFS format 7 "block read" feature.
+ *
+ * @since New in 1.9.
+ */
+#define SVN_FS_CONFIG_FSFS_BLOCK_READ "fsfs-block-read"
+
/* Note to maintainers: if you add further SVN_FS_CONFIG_FSFS_CACHE_* knobs,
update fs_fs.c:verify_as_revision_before_current_plus_plus(). */
@@ -1003,6 +1009,8 @@ typedef struct svn_fs_txn_t svn_fs_txn_t
/** Allow the client to specify the final svn:date of the revision by
* setting or deleting the corresponding transaction property rather
* than have it set automatically when the transaction is committed.
+ *
+ * @since New in 1.9.
*/
#define SVN_FS_TXN_CLIENT_DATE 0x00004
@@ -2561,6 +2569,8 @@ void svn_fs_lock_target_set_token(svn_fs
*
* If the callback returns an error no further callbacks will be made
* and svn_fs_lock_many/svn_fs_unlock_many will return an error.
+ *
+ * @since New in 1.9.
*/
typedef svn_error_t *(*svn_fs_lock_callback_t)(void *baton,
const char *path,
Modified: subversion/branches/svn-auth-x509/subversion/include/svn_path.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/include/svn_path.h?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/include/svn_path.h (original)
+++ subversion/branches/svn-auth-x509/subversion/include/svn_path.h Tue Jun 24 21:29:59 2014
@@ -722,7 +722,7 @@ svn_path_resolve_repos_relative_url(cons
* characters have been escaped using the form "\NNN" (where NNN is the
* octal representation of the byte's ordinal value).
*
- * @since New in 1.9. */
+ * @since New in 1.8. */
const char *
svn_path_illegal_path_escape(const char *path, apr_pool_t *pool);
Modified: subversion/branches/svn-auth-x509/subversion/include/svn_types.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/include/svn_types.h?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/include/svn_types.h (original)
+++ subversion/branches/svn-auth-x509/subversion/include/svn_types.h Tue Jun 24 21:29:59 2014
@@ -149,10 +149,16 @@ typedef int svn_boolean_t;
-/** Declaration of the null pointer constant type. */
+/** Declaration of the null pointer constant type.
+ *
+ * @since New in 1.9.
+ */
struct svn_null_pointer_constant_stdarg_sentinel_t;
-/** Null pointer constant used as a sentinel in variable argument lists. */
+/** Null pointer constant used as a sentinel in variable argument lists.
+ *
+ * @since New in 1.9.
+ */
#define SVN_VA_NULL ((struct svn_null_pointer_constant_stdarg_sentinel_t*)0)
/* See? (char*)NULL -- They have the same length, but the cast looks ugly. */
Modified: subversion/branches/svn-auth-x509/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/include/svn_wc.h?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/include/svn_wc.h (original)
+++ subversion/branches/svn-auth-x509/subversion/include/svn_wc.h Tue Jun 24 21:29:59 2014
@@ -7362,8 +7362,13 @@ svn_wc_get_pristine_copy_path(const char
* files will be updated, which will improve performance of future is-modified
* checks.
*
+ * If @a clear_dav_cache is @c TRUE, the caching of DAV information for older
+ * mod_dav served repositories is cleared. This clearing invalidates some
+ * cached information used for pre-HTTPv2 repositories.
+ *
* If @a vacuum_pristines is TRUE, try to remove unreferenced pristines from
- * the working copy.
+ * the working copy. (Will not remove anything unless the obtained lock applies
+ * to the entire working copy)
*
* If @a cancel_func is non-NULL, invoke it with @a cancel_baton at various
* points during the operation. If it returns an error (typically
Modified: subversion/branches/svn-auth-x509/subversion/libsvn_client/diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/libsvn_client/diff.c?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/svn-auth-x509/subversion/libsvn_client/diff.c Tue Jun 24 21:29:59 2014
@@ -1926,6 +1926,13 @@ diff_repos_wc(const char **root_relpath,
SVN_ERR(svn_wc_get_actual_target2(&anchor, &target, ctx->wc_ctx, path2,
scratch_pool, scratch_pool));
+ /* Handle the ugly case where target is ".." */
+ if (*target && !svn_path_is_single_path_component(target))
+ {
+ anchor = svn_dirent_join(anchor, target, scratch_pool);
+ target = "";
+ }
+
if (root_relpath)
*root_relpath = apr_pstrdup(result_pool, target);
if (root_is_dir)
Modified: subversion/branches/svn-auth-x509/subversion/libsvn_diff/diff_file.c
URL: http://svn.apache.org/viewvc/subversion/branches/svn-auth-x509/subversion/libsvn_diff/diff_file.c?rev=1605201&r1=1605200&r2=1605201&view=diff
==============================================================================
--- subversion/branches/svn-auth-x509/subversion/libsvn_diff/diff_file.c (original)
+++ subversion/branches/svn-auth-x509/subversion/libsvn_diff/diff_file.c Tue Jun 24 21:29:59 2014
@@ -1198,6 +1198,7 @@ static const apr_getopt_option_t diff_op
/* ### For compatibility; we don't support the argument to -u, because
* ### we don't have optional argument support. */
{ "unified", 'u', 0, NULL },
+ { "context", 'U', 1, NULL },
{ NULL, 0, 0, NULL }
};
@@ -1297,6 +1298,9 @@ svn_diff_file_options_parse(svn_diff_fil
case 'p':
options->show_c_function = TRUE;
break;
+ case 'U':
+ SVN_ERR(svn_cstring_atoi(&options->context_size, opt_arg));
+ break;
default:
break;
}