You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2012/12/31 21:35:20 UTC
svn commit: r1427238 [1/2] - in /subversion/branches/ev2-export: ./
build/generator/templates/ subversion/bindings/cxxhl/include/svncxxhl/
subversion/bindings/cxxhl/src/ subversion/bindings/cxxhl/tests/
subversion/include/ subversion/libsvn_client/ sub...
Author: hwright
Date: Mon Dec 31 20:35:19 2012
New Revision: 1427238
URL: http://svn.apache.org/viewvc?rev=1427238&view=rev
Log:
On the ev2-export branch:
Bring up-to-date with trunk.
Added:
subversion/branches/ev2-export/tools/dev/fsfs-access-map.c
- copied unchanged from r1427237, subversion/trunk/tools/dev/fsfs-access-map.c
Modified:
subversion/branches/ev2-export/ (props changed)
subversion/branches/ev2-export/CHANGES
subversion/branches/ev2-export/build.conf
subversion/branches/ev2-export/build/generator/templates/svn_locale.vcproj.ezt
subversion/branches/ev2-export/build/generator/templates/svn_locale.vcxproj.ezt
subversion/branches/ev2-export/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp
subversion/branches/ev2-export/subversion/bindings/cxxhl/src/exception.cpp
subversion/branches/ev2-export/subversion/bindings/cxxhl/tests/test_exception.cpp
subversion/branches/ev2-export/subversion/include/svn_io.h
subversion/branches/ev2-export/subversion/include/svn_repos.h
subversion/branches/ev2-export/subversion/libsvn_client/cat.c
subversion/branches/ev2-export/subversion/libsvn_client/merge.c
subversion/branches/ev2-export/subversion/libsvn_client/patch.c
subversion/branches/ev2-export/subversion/libsvn_diff/diff_file.c
subversion/branches/ev2-export/subversion/libsvn_diff/parse-diff.c
subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c
subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/ev2-export/subversion/libsvn_fs_fs/tree.c
subversion/branches/ev2-export/subversion/libsvn_repos/authz.c
subversion/branches/ev2-export/subversion/libsvn_subr/cache-membuffer.c
subversion/branches/ev2-export/subversion/libsvn_subr/cache_config.c
subversion/branches/ev2-export/subversion/libsvn_subr/io.c
subversion/branches/ev2-export/subversion/libsvn_subr/mergeinfo.c
subversion/branches/ev2-export/subversion/libsvn_subr/stream.c
subversion/branches/ev2-export/subversion/libsvn_wc/diff_editor.c
subversion/branches/ev2-export/subversion/svn/cl.h
subversion/branches/ev2-export/subversion/svn/file-merge.c
subversion/branches/ev2-export/subversion/svn/svn.c
subversion/branches/ev2-export/subversion/svnadmin/svnadmin.c
subversion/branches/ev2-export/subversion/svndumpfilter/svndumpfilter.c
subversion/branches/ev2-export/subversion/svnlook/svnlook.c
subversion/branches/ev2-export/subversion/svnmucc/svnmucc.c
subversion/branches/ev2-export/subversion/svnrdump/load_editor.c
subversion/branches/ev2-export/subversion/svnserve/svnserve.c
subversion/branches/ev2-export/subversion/svnsync/svnsync.c
subversion/branches/ev2-export/subversion/tests/cmdline/authz_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/basic_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/commit_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/copy_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/depth_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/diff_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/entries_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/history_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/info_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/lock_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/log_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/merge_reintegrate_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/merge_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/merge_tree_conflict_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/patch_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/relocate_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/resolved_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/revert_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/special_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/stat_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/svnadmin_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/svntest/main.py
subversion/branches/ev2-export/subversion/tests/cmdline/switch_tests.py
subversion/branches/ev2-export/subversion/tests/cmdline/update_tests.py
subversion/branches/ev2-export/subversion/tests/libsvn_diff/diff-diff3-test.c
subversion/branches/ev2-export/subversion/tests/libsvn_fs/fs-test.c
subversion/branches/ev2-export/subversion/tests/libsvn_repos/repos-test.c
subversion/branches/ev2-export/subversion/tests/libsvn_subr/named_atomic-test.c
subversion/branches/ev2-export/subversion/tests/svn_test_main.c
subversion/branches/ev2-export/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
subversion/branches/ev2-export/tools/dist/backport.pl
subversion/branches/ev2-export/tools/server-side/fsfs-reorg.c
subversion/branches/ev2-export/tools/server-side/fsfs-stats.c
subversion/branches/ev2-export/tools/server-side/svnauthz-validate.c
Propchange: subversion/branches/ev2-export/
------------------------------------------------------------------------------
Merged /subversion/trunk:r1425775-1427237
Modified: subversion/branches/ev2-export/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/CHANGES?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/CHANGES (original)
+++ subversion/branches/ev2-export/CHANGES Mon Dec 31 20:35:19 2012
@@ -66,7 +66,7 @@ http://svn.apache.org/repos/asf/subversi
- Client-side bugfixes:
* fix crash with --username option on Windows (r1396285)
* add missing attributes to "svn log -v --xml" output (r1398100)
- * fix svn patch ignoring hunks after no trailing newline (r139917)
+ * fix svn patch ignoring hunks after no trailing newline (r1399174)
* fix hang with ra_serf during error processing (r1403583)
* ignore file externals with mergeinfo when merging (r1401915)
* fix "svnmucc cp" segfault with a missing last argument (issue #4079)
@@ -564,6 +564,21 @@ the 1.6 release: http://subversion.apac
* fixed setting binary properties in JavaHL (issue #3770)
* fix type mapping of svn_txdelta_window_t in python bindings (issue #3688)
+
+Version 1.6.20
+(04 Jan 2013, from /branches/1.6.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.6.20
+
+ User-visible changes
+ - Client- and server-side bugfixes:
+ * Fix typos in pt_BR, es and zh_TW translations (r1402417)
+
+ - Server-side bugfixes:
+ * add Vary: header to GET responses to improve cacheability (r1390653)
+ * fix fs_fs to cleanup after failed rep transmission (r1403964, et al)
+ * fix an assert with SVNAutoVersioning in mod_dav_svn (issue #4231)
+
+
Version 1.6.19
(10 Sep 2012, from /branches/1.6.x)
http://svn.apache.org/repos/asf/subversion/tags/1.6.19
@@ -579,6 +594,7 @@ http://svn.apache.org/repos/asf/subversi
- Developer-visible changes:
* fix the testsuite to avoid FAILs on APR hash order (r1230714, et al)
+
Version 1.6.18
(29 Mar 2012, from /branches/1.6.x)
http://svn.apache.org/repos/asf/subversion/tags/1.6.18
Modified: subversion/branches/ev2-export/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build.conf?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/build.conf (original)
+++ subversion/branches/ev2-export/build.conf Mon Dec 31 20:35:19 2012
@@ -1224,7 +1224,7 @@ libs = __ALL__
ra-local-test
svndiff-test vdelta-test
entries-dump atomic-ra-revprop-change wc-lock-tester wc-incomplete-tester
- diff diff3 diff4 fsfs-reorg fsfs-stats svn-bench
+ diff diff3 diff4 fsfs-reorg fsfs-stats fsfs-access-map svn-bench
client-test
conflict-data-test db-test pristine-store-test entries-compat-test
op-depth-test dirent_uri-test wc-queries-test wc-test
@@ -1287,6 +1287,13 @@ sources = fsfs-stats.c
install = tools
libs = libsvn_delta libsvn_subr apr
+[fsfs-access-map]
+type = exe
+path = tools/dev
+sources = fsfs-access-map.c
+install = tools
+libs = libsvn_subr apr
+
[diff]
type = exe
path = tools/diff
@@ -1321,7 +1328,7 @@ type = exe
path = tools/server-side
sources = svnauthz-validate.c
install = tools
-libs = libsvn_repos libsvn_subr apr
+libs = libsvn_repos libsvn_fs libsvn_subr apr
[svn-populate-node-origins-index]
type = exe
Modified: subversion/branches/ev2-export/build/generator/templates/svn_locale.vcproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build/generator/templates/svn_locale.vcproj.ezt?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/build/generator/templates/svn_locale.vcproj.ezt (original)
+++ subversion/branches/ev2-export/build/generator/templates/svn_locale.vcproj.ezt Mon Dec 31 20:35:19 2012
@@ -22,7 +22,7 @@
ProjectType="Visual C++"
Version="[version]"
Name="locale"
- ProjectGUID="{18FA6D17-1EE7-43A2-BC2A-C2AF819CEEFB}"
+ ProjectGUID="[project_guid]"
Keyword="MakeFileProj">
<Platforms>
[for platforms] <Platform
Modified: subversion/branches/ev2-export/build/generator/templates/svn_locale.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build/generator/templates/svn_locale.vcxproj.ezt?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/build/generator/templates/svn_locale.vcxproj.ezt (original)
+++ subversion/branches/ev2-export/build/generator/templates/svn_locale.vcxproj.ezt Mon Dec 31 20:35:19 2012
@@ -27,7 +27,7 @@
[end][end] </ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>locale</ProjectName>
- <ProjectGuid>{18FA6D17-1EE7-43A2-BC2A-C2AF819CEEFB}</ProjectGuid>
+ <ProjectGuid>[project_guid]</ProjectGuid>
<Keyword>MakeFileProj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
Modified: subversion/branches/ev2-export/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp (original)
+++ subversion/branches/ev2-export/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp Mon Dec 31 20:35:19 2012
@@ -115,8 +115,10 @@ public:
/** Used internally by the implementation. */
static void throw_svn_error(svn_error_t*);
-private:
+protected:
error(int error_code, detail::error_description* description) throw();
+
+private:
std::vector<message> compile_messages(bool show_traces) const;
int m_errno; /**< The (SVN or APR) error code. */
@@ -125,7 +127,15 @@ private:
detail::error_description* m_description;
};
-class canceled : public error {};
+class cancelled : public error
+{
+ friend void error::throw_svn_error(svn_error_t*);
+
+protected:
+ cancelled(int error_code, detail::error_description* description) throw()
+ : error(error_code, description)
+ {}
+};
} // namespace version_1_9_dev
} // namespace cxxhl
Modified: subversion/branches/ev2-export/subversion/bindings/cxxhl/src/exception.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/cxxhl/src/exception.cpp?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/cxxhl/src/exception.cpp (original)
+++ subversion/branches/ev2-export/subversion/bindings/cxxhl/src/exception.cpp Mon Dec 31 20:35:19 2012
@@ -162,6 +162,7 @@ error::error(int error_code, detail::err
void error::throw_svn_error(svn_error_t* err)
{
+ const bool throw_cancelled = (err->apr_err == SVN_ERR_CANCELLED);
detail::error_description* description = NULL;
try
{
@@ -169,28 +170,41 @@ void error::throw_svn_error(svn_error_t*
// the exception unwinder can free them if an allocation fails.
// The private constructor does not increment the refcount
// precisely for this reason.
+
+ shared_ptr nested;
+ shared_ptr* current = &nested;
+
+ for (svn_error_t* next = err->child; next; next = next->child)
+ {
+ description = detail::error_description::create(
+ next->message, next->file, next->line,
+ svn_error__is_tracing_link(next));
+ description->reference();
+ current->reset(new error(next->apr_err, description));
+ description = NULL;
+ current = &(*current)->m_nested;
+ }
+
+ const int apr_err = err->apr_err;
description = detail::error_description::create(
err->message, err->file, err->line,
svn_error__is_tracing_link(err));
description->reference();
- error converted = error(err->apr_err, description);
- description = NULL;
-
- svn_error_t *prev = err;
- error* current = &converted;
- for (err = err->child; err; prev = err, err = err->child)
+ svn_error_clear(err);
+ if (throw_cancelled)
{
- svn_error_clear(prev);
- description = detail::error_description::create(
- err->message, err->file, err->line,
- svn_error__is_tracing_link(err));
- description->reference();
- current->m_nested.reset(new error(err->apr_err, description));
+ cancelled converted = cancelled(apr_err, description);
+ description = NULL;
+ converted.m_nested = nested;
+ throw converted;
+ }
+ else
+ {
+ error converted = error(apr_err, description);
description = NULL;
- current = current->m_nested.get();
+ converted.m_nested = nested;
+ throw converted;
}
- svn_error_clear(prev);
- throw converted;
}
catch (...)
{
@@ -295,11 +309,11 @@ error::message_list error::compile_messa
}
catch (...)
{
- apr_pool_destroy(pool);
+ svn_pool_destroy(pool);
throw;
}
- apr_pool_destroy(pool);
+ svn_pool_destroy(pool);
return ml;
}
Modified: subversion/branches/ev2-export/subversion/bindings/cxxhl/tests/test_exception.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/cxxhl/tests/test_exception.cpp?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/cxxhl/tests/test_exception.cpp (original)
+++ subversion/branches/ev2-export/subversion/bindings/cxxhl/tests/test_exception.cpp Mon Dec 31 20:35:19 2012
@@ -1,3 +1,24 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
#include <algorithm>
#include <iomanip>
#include <ios>
@@ -18,12 +39,52 @@ void trace(const svn::error::message& ms
<< msg.first << ':' << ' ';
std::cout << msg.second << std::endl;
}
+
+void traceall(const char *message, const svn::error& err)
+{
+ typedef svn::error::message_list message_list;
+ std::cout << message << std::endl;
+ std::cout << "Traced Messages:" << std::endl;
+ message_list ml = err.traced_messages();
+ std::for_each(ml.begin(), ml.end(), trace);
+ std::cout << "Just Messages:" << std::endl;
+ ml = err.messages();
+ std::for_each(ml.begin(), ml.end(), trace);
+}
} // anonymous namespace
-int main()
+
+bool test_cancel()
{
- apr_initialize();
+ try
+ {
+ svn_error_t* err;
+ err = svn_error_create(SVN_ERR_TEST_FAILED, NULL, "original message");
+ err = svn_error_create(SVN_ERR_BASE, err, "wrapper message");
+ err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
+ err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
+ err = svn_error_trace(err);
+ svn::error::throw_svn_error(err);
+ }
+ catch (const svn::cancelled& err)
+ {
+ traceall("Caught: CANCEL", err);
+ return true;
+ }
+ catch (const svn::error& err)
+ {
+ traceall("Caught: ERROR", err);
+ return false;
+ }
+ catch (...)
+ {
+ return false;
+ }
+ return false;
+}
+int test_error()
+{
try
{
svn_error_t* err;
@@ -33,20 +94,36 @@ int main()
err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
err = svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, err, NULL);
err = svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, err, NULL);
- err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
err = svn_error_trace(err);
svn::error::throw_svn_error(err);
}
+ catch (const svn::cancelled& err)
+ {
+ traceall("Caught: CANCEL", err);
+ return false;
+ }
catch (const svn::error& err)
{
- typedef svn::error::message_list message_list;
- std::cout << "Traced Messages:" << std::endl;
- message_list ml = err.traced_messages();
- std::for_each(ml.begin(), ml.end(), trace);
- std::cout << "Just Messages:" << std::endl;
- ml = err.messages();
- std::for_each(ml.begin(), ml.end(), trace);
+ traceall("Caught: ERROR", err);
+ return true;
}
+ catch (...)
+ {
+ return false;
+ }
+ return false;
+}
+
+int main()
+{
+ apr_initialize();
+
+ const char *stat = (test_cancel() ? "OK" : "ERROR");
+ std::cerr << "test_cancel .... " << stat << std::endl;
+
+ stat = (test_error() ? "OK" : "ERROR");
+ std::cerr << "test_error ..... " << stat << std::endl;
+ apr_terminate();
return 0;
}
Modified: subversion/branches/ev2-export/subversion/include/svn_io.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_io.h?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_io.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_io.h Mon Dec 31 20:35:19 2012
@@ -1935,7 +1935,8 @@ svn_boolean_t
svn_io_is_binary_data(const void *buf, apr_size_t len);
-/** Wrapper for apr_file_open(). @a fname is utf8-encoded. */
+/** Wrapper for apr_file_open(). @a fname is utf8-encoded.
+ Always passed flag | APR_BINARY to apr. */
svn_error_t *
svn_io_file_open(apr_file_t **new_file,
const char *fname,
Modified: subversion/branches/ev2-export/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_repos.h?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_repos.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_repos.h Mon Dec 31 20:35:19 2012
@@ -3187,6 +3187,17 @@ svn_repos_authz_read2(svn_authz_t **auth
/**
+ * Read authz configuration data from @a stream into @a *authz_p,
+ * allocated in @a pool.
+ *
+ * @since New in 1.8
+ */
+svn_error_t *
+svn_repos_authz_parse(svn_authz_t **authz_p,
+ svn_stream_t *stream,
+ apr_pool_t *pool);
+
+/**
* Check whether @a user can access @a path in the repository @a
* repos_name with the @a required_access. @a authz lists the ACLs to
* check against. Set @a *access_granted to indicate if the requested
Modified: subversion/branches/ev2-export/subversion/libsvn_client/cat.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/cat.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/cat.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/cat.c Mon Dec 31 20:35:19 2012
@@ -103,7 +103,7 @@ svn_client__get_normalized_stream(svn_st
scratch_pool));
SVN_ERR(svn_wc_status3(&status, wc_ctx, local_abspath, scratch_pool,
scratch_pool));
- if (status->text_status != svn_wc_status_normal)
+ if (status->node_status != svn_wc_status_normal)
local_mod = TRUE;
}
Modified: subversion/branches/ev2-export/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/merge.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/merge.c Mon Dec 31 20:35:19 2012
@@ -7348,7 +7348,7 @@ process_children_with_new_mergeinfo(merg
svn_mergeinfo_t path_explicit_mergeinfo;
svn_client__merge_path_t *new_child;
- apr_pool_clear(iterpool);
+ svn_pool_clear(iterpool);
/* Get the path's new explicit mergeinfo... */
SVN_ERR(svn_client__get_wc_mergeinfo(&path_explicit_mergeinfo, NULL,
@@ -8231,7 +8231,7 @@ record_mergeinfo_for_added_subtrees(
svn_mergeinfo_t parent_mergeinfo;
svn_mergeinfo_t added_path_mergeinfo;
- apr_pool_clear(iterpool);
+ svn_pool_clear(iterpool);
dir_abspath = svn_dirent_dirname(added_abspath, iterpool);
/* Grab the added path's explicit mergeinfo. */
Modified: subversion/branches/ev2-export/subversion/libsvn_client/patch.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/patch.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/patch.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/patch.c Mon Dec 31 20:35:19 2012
@@ -915,7 +915,7 @@ init_patch_target(patch_target_t **patch
if (target->kind_on_disk == svn_node_file)
{
SVN_ERR(svn_io_file_open(&target->file, target->local_abspath,
- APR_READ | APR_BINARY | APR_BUFFERED,
+ APR_READ | APR_BUFFERED,
APR_OS_DEFAULT, result_pool));
SVN_ERR(svn_wc_text_modified_p2(&target->local_mods, wc_ctx,
target->local_abspath, FALSE,
Modified: subversion/branches/ev2-export/subversion/libsvn_diff/diff_file.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_diff/diff_file.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_diff/diff_file.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_diff/diff_file.c Mon Dec 31 20:35:19 2012
@@ -122,7 +122,8 @@ datasource_to_index(svn_diff_datasource_
* whatsoever. If there is a number someone comes up with that has some
* argumentation, let's use that.
*/
-/* If you change this number, update test_wrap() in diff-diff3-test.c */
+/* If you change this number, update test_norm_offset()
+ and test_identical_suffix() in diff-diff3-test.c */
#define CHUNK_SHIFT 17
#define CHUNK_SIZE (1 << CHUNK_SHIFT)
@@ -419,7 +420,7 @@ find_identical_prefix(svn_boolean_t *rea
}
is_match = TRUE;
- for (delta = 0; delta < max_delta && is_match; delta += sizeof(apr_uintptr_t))
+ for (delta = 0; delta < max_delta; delta += sizeof(apr_uintptr_t))
{
apr_uintptr_t chunk = *(const apr_uintptr_t *)(file[0].curp + delta);
if (contains_eol(chunk))
@@ -429,18 +430,25 @@ find_identical_prefix(svn_boolean_t *rea
if (chunk != *(const apr_uintptr_t *)(file[i].curp + delta))
{
is_match = FALSE;
- delta -= sizeof(apr_uintptr_t);
break;
}
+
+ if (! is_match)
+ break;
}
- /* We either found a mismatch or an EOL at or shortly behind curp+delta
- * or we cannot proceed with chunky ops without exceeding endp.
- * In any way, everything up to curp + delta is equal and not an EOL.
- */
- for (i = 0; i < file_len; i++)
- file[i].curp += delta;
+ if (delta /* > 0*/)
+ {
+ /* We either found a mismatch or an EOL at or shortly behind curp+delta
+ * or we cannot proceed with chunky ops without exceeding endp.
+ * In any way, everything up to curp + delta is equal and not an EOL.
+ */
+ for (i = 0; i < file_len; i++)
+ file[i].curp += delta;
+ /* Skipped data without EOL markers, so last char was not a CR. */
+ had_cr = FALSE;
+ }
#endif
*reached_one_eof = is_one_at_eof(file, file_len);
@@ -497,6 +505,7 @@ find_identical_prefix(svn_boolean_t *rea
* The number 50 is more or less arbitrary, based on some real-world tests
* with big files (and then doubling the required number to be on the safe
* side). This has a negligible effect on the power of the optimization. */
+/* If you change this number, update test_identical_suffix() in diff-diff3-test.c */
#ifndef SUFFIX_LINES_TO_KEEP
#define SUFFIX_LINES_TO_KEEP 50
#endif
@@ -519,7 +528,6 @@ find_identical_suffix(apr_off_t *suffix_
apr_off_t min_file_size;
int suffix_lines_to_keep = SUFFIX_LINES_TO_KEEP;
svn_boolean_t is_match;
- svn_boolean_t reached_prefix;
apr_off_t lines = 0;
svn_boolean_t had_cr;
svn_boolean_t had_nl;
@@ -581,6 +589,7 @@ find_identical_suffix(apr_off_t *suffix_
had_nl = FALSE;
while (is_match)
{
+ svn_boolean_t reached_prefix;
#if SVN_UNALIGNED_ACCESS_IS_OK
/* Initialize the minimum pointer positions. */
const char *min_curp[4];
@@ -607,44 +616,60 @@ find_identical_suffix(apr_off_t *suffix_
DECREMENT_POINTERS(file_for_suffix, file_len, pool);
#if SVN_UNALIGNED_ACCESS_IS_OK
+ for (i = 0; i < file_len; i++)
+ min_curp[i] = file_for_suffix[i].buffer;
- min_curp[0] = file_for_suffix[0].chunk == suffix_min_chunk0
- ? file_for_suffix[0].buffer + suffix_min_offset0 + 1
- : file_for_suffix[0].buffer + 1;
- for (i = 1; i < file_len; i++)
- min_curp[i] = file_for_suffix[i].buffer + 1;
+ /* If we are in the same chunk that contains the last part of the common
+ prefix, use the min_curp[0] pointer to make sure we don't get a
+ suffix that overlaps the already determined common prefix. */
+ if (file_for_suffix[0].chunk == suffix_min_chunk0)
+ min_curp[0] += suffix_min_offset0;
/* Scan quickly by reading with machine-word granularity. */
for (i = 0, can_read_word = TRUE; i < file_len; i++)
can_read_word = can_read_word
- && ( file_for_suffix[i].curp - sizeof(apr_uintptr_t)
- >= min_curp[i]);
- if (can_read_word)
- {
- do
- {
- apr_uintptr_t chunk;
- for (i = 0; i < file_len; i++)
- file_for_suffix[i].curp -= sizeof(apr_uintptr_t);
+ && ( (file_for_suffix[i].curp + 1
+ - sizeof(apr_uintptr_t))
+ > min_curp[i]);
+ while (can_read_word)
+ {
+ apr_uintptr_t chunk;
+
+ /* For each file curp is positioned at the current byte, but we
+ want to examine the current byte and the ones before the current
+ location as one machine word. */
- chunk = *(const apr_uintptr_t *)(file_for_suffix[0].curp + 1);
- if (contains_eol(chunk))
- break;
+ chunk = *(const apr_uintptr_t *)(file_for_suffix[0].curp + 1
+ - sizeof(apr_uintptr_t));
+ if (contains_eol(chunk))
+ break;
+
+ for (i = 1, is_match = TRUE; i < file_len; i++)
+ is_match = is_match
+ && ( chunk
+ == *(const apr_uintptr_t *)
+ (file_for_suffix[i].curp + 1
+ - sizeof(apr_uintptr_t)));
- for (i = 0, can_read_word = TRUE; i < file_len; i++)
- can_read_word = can_read_word
- && ( file_for_suffix[i].curp - sizeof(apr_uintptr_t)
- >= min_curp[i]);
- for (i = 1, is_match = TRUE; i < file_len; i++)
- is_match = is_match
- && ( chunk
- == *(const apr_uintptr_t *)(file_for_suffix[i].curp + 1));
- } while (can_read_word && is_match);
+ if (! is_match)
+ break;
- for (i = 0; i < file_len; i++)
- file_for_suffix[i].curp += sizeof(apr_uintptr_t);
+ for (i = 0; i < file_len; i++)
+ {
+ file_for_suffix[i].curp -= sizeof(apr_uintptr_t);
+ can_read_word = can_read_word
+ && ( (file_for_suffix[i].curp + 1
+ - sizeof(apr_uintptr_t))
+ > min_curp[i]);
+ }
+
+ /* We skipped some bytes, so there are no closing EOLs */
+ had_nl = FALSE;
+ had_cr = FALSE;
}
+ /* The > min_curp[i] check leaves at least one final byte for checking
+ in the non block optimized case below. */
#endif
reached_prefix = file_for_suffix[0].chunk == suffix_min_chunk0
@@ -653,7 +678,8 @@ find_identical_suffix(apr_off_t *suffix_
if (reached_prefix || is_one_at_bof(file_for_suffix, file_len))
break;
- for (i = 1, is_match = TRUE; i < file_len; i++)
+ is_match = TRUE;
+ for (i = 1; i < file_len; i++)
is_match = is_match
&& *file_for_suffix[0].curp == *file_for_suffix[i].curp;
}
@@ -829,17 +855,24 @@ datasource_get_next_token(apr_uint32_t *
last_chunk = offset_to_chunk(file->size);
- if (curp == endp
- && last_chunk == file->chunk)
+ /* Are we already at the end of a chunk? */
+ if (curp == endp)
{
- return SVN_NO_ERROR;
+ /* Are we at EOF */
+ if (last_chunk == file->chunk)
+ return SVN_NO_ERROR; /* EOF */
+
+ /* Or right before an identical suffix in the next chunk? */
+ if (file->chunk + 1 == file->suffix_start_chunk
+ && file->suffix_offset_in_chunk == 0)
+ return SVN_NO_ERROR;
}
/* Stop when we encounter the identical suffix. If suffix scanning was not
* performed, suffix_start_chunk will be -1, so this condition will never
* be true. */
if (file->chunk == file->suffix_start_chunk
- && curp - file->buffer == file->suffix_offset_in_chunk)
+ && (curp - file->buffer) == file->suffix_offset_in_chunk)
return SVN_NO_ERROR;
/* Allocate a new token, or fetch one from the "reusable tokens" list. */
@@ -856,6 +889,7 @@ datasource_get_next_token(apr_uint32_t *
file_token->datasource = datasource;
file_token->offset = chunk_to_offset(file->chunk)
+ (curp - file->buffer);
+ file_token->norm_offset = file_token->offset;
file_token->raw_length = 0;
file_token->length = 0;
@@ -884,11 +918,21 @@ datasource_get_next_token(apr_uint32_t *
length = endp - curp;
file_token->raw_length += length;
- svn_diff__normalize_buffer(&curp, &length,
- &file->normalize_state,
- curp, file_baton->options);
- file_token->length += length;
- h = svn__adler32(h, curp, length);
+ {
+ char *c = curp;
+
+ svn_diff__normalize_buffer(&c, &length,
+ &file->normalize_state,
+ curp, file_baton->options);
+ if (file_token->length == 0)
+ {
+ /* When we are reading the first part of the token, move the
+ normalized offset past leading ignored characters, if any. */
+ file_token->norm_offset += (c - curp);
+ }
+ file_token->length += length;
+ h = svn__adler32(h, c, length);
+ }
curp = endp = file->buffer;
file->chunk++;
@@ -897,6 +941,14 @@ datasource_get_next_token(apr_uint32_t *
endp += length;
file->endp = endp;
+ /* Issue #4283: Normally we should have checked for reaching the skipped
+ suffix here, but because we assume that a suffix always starts on a
+ line and token boundary we rely on catching the suffix earlier in this
+ function.
+
+ When changing things here, make sure the whitespace settings are
+ applied, or we mught not reach the exact suffix boundary as token
+ boundary. */
SVN_ERR(read_chunk(file->file, file->path,
curp, length,
chunk_to_offset(file->chunk),
@@ -927,11 +979,12 @@ datasource_get_next_token(apr_uint32_t *
svn_diff__normalize_buffer(&c, &length,
&file->normalize_state,
curp, file_baton->options);
-
- file_token->norm_offset = file_token->offset;
if (file_token->length == 0)
- /* move past leading ignored characters */
- file_token->norm_offset += (c - curp);
+ {
+ /* When we are reading the first part of the token, move the
+ normalized offset past leading ignored characters, if any. */
+ file_token->norm_offset += (c - curp);
+ }
file_token->length += length;
Modified: subversion/branches/ev2-export/subversion/libsvn_diff/parse-diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_diff/parse-diff.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_diff/parse-diff.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_diff/parse-diff.c Mon Dec 31 20:35:19 2012
@@ -1147,8 +1147,8 @@ svn_diff_open_patch_file(svn_patch_file_
svn_patch_file_t *p;
p = apr_palloc(result_pool, sizeof(*p));
- SVN_ERR(svn_io_file_open(&p->apr_file, local_abspath,
- APR_READ | APR_BINARY, 0, result_pool));
+ SVN_ERR(svn_io_file_open(&p->apr_file, local_abspath, APR_READ,
+ APR_OS_DEFAULT, result_pool));
p->next_patch_offset = 0;
*patch_file = p;
Modified: subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c Mon Dec 31 20:35:19 2012
@@ -1124,7 +1124,7 @@ copy_db_file_safely(const char *src_dir,
/* Open source file. If it's missing and that's allowed, there's
nothing more to do here. */
err = svn_io_file_open(&s, file_src_path,
- (APR_READ | APR_LARGEFILE | APR_BINARY),
+ (APR_READ | APR_LARGEFILE),
APR_OS_DEFAULT, pool);
if (err && APR_STATUS_IS_ENOENT(err->apr_err) && allow_missing)
{
@@ -1135,7 +1135,7 @@ copy_db_file_safely(const char *src_dir,
/* Open destination file. */
SVN_ERR(svn_io_file_open(&d, file_dst_path, (APR_WRITE | APR_CREATE |
- APR_LARGEFILE | APR_BINARY),
+ APR_LARGEFILE),
APR_OS_DEFAULT, pool));
/* Allocate our read/write buffer. */
Modified: subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c Mon Dec 31 20:35:19 2012
@@ -7219,7 +7219,7 @@ choose_delta_base(representation_t **rep
if (max_chain_length == 0)
*rep = NULL;
- apr_pool_destroy(sub_pool);
+ svn_pool_destroy(sub_pool);
}
/* verify that the reps don't form a degenerated '*/
Modified: subversion/branches/ev2-export/subversion/libsvn_fs_fs/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_fs_fs/tree.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_fs_fs/tree.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_fs_fs/tree.c Mon Dec 31 20:35:19 2012
@@ -319,7 +319,7 @@ auto_clear_dag_cache(fs_fs_dag_cache_t*
{
if (cache->first_lock == NULL && cache->insertions > BUCKET_COUNT)
{
- apr_pool_clear(cache->pool);
+ svn_pool_clear(cache->pool);
memset(cache->buckets, 0, sizeof(cache->buckets));
cache->insertions = 0;
Modified: subversion/branches/ev2-export/subversion/libsvn_repos/authz.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_repos/authz.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_repos/authz.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_repos/authz.c Mon Dec 31 20:35:19 2012
@@ -751,6 +751,25 @@ static svn_boolean_t authz_validate_sect
return TRUE;
}
+
+/* Walk the configuration in AUTHZ looking for any errors. */
+static svn_error_t *
+authz_validate(svn_authz_t *authz, apr_pool_t *pool)
+{
+ struct authz_validate_baton baton = { 0 };
+
+ baton.err = SVN_NO_ERROR;
+ baton.config = authz->cfg;
+
+ /* Step through the entire rule file stopping on error. */
+ svn_config_enumerate_sections2(authz->cfg, authz_validate_section,
+ &baton, pool);
+ SVN_ERR(baton.err);
+
+ return SVN_NO_ERROR;
+}
+
+
/* Retrieve the file at DIRENT (contained in a repo) then parse it as a config
* file placing the result into CFG_P allocated in POOL.
*
@@ -908,9 +927,6 @@ svn_repos__authz_read(svn_authz_t **auth
const char *repos_root, apr_pool_t *pool)
{
svn_authz_t *authz = apr_palloc(pool, sizeof(*authz));
- struct authz_validate_baton baton = { 0 };
-
- baton.err = SVN_NO_ERROR;
/* Load the rule file */
if (accept_urls)
@@ -918,12 +934,9 @@ svn_repos__authz_read(svn_authz_t **auth
pool));
else
SVN_ERR(svn_config_read2(&authz->cfg, path, must_exist, TRUE, pool));
- baton.config = authz->cfg;
- /* Step through the entire rule file, stopping on error. */
- svn_config_enumerate_sections2(authz->cfg, authz_validate_section,
- &baton, pool);
- SVN_ERR(baton.err);
+ /* Make sure there are no errors in the configuration. */
+ SVN_ERR(authz_validate(authz, pool));
*authz_p = authz;
return SVN_NO_ERROR;
@@ -943,6 +956,22 @@ svn_repos_authz_read2(svn_authz_t **auth
}
+svn_error_t *
+svn_repos_authz_parse(svn_authz_t **authz_p, svn_stream_t *stream,
+ apr_pool_t *pool)
+{
+ svn_authz_t *authz = apr_palloc(pool, sizeof(*authz));
+
+ /* Parse the stream */
+ SVN_ERR(svn_config_parse(&authz->cfg, stream, TRUE, pool));
+
+ /* Make sure there are no errors in the configuration. */
+ SVN_ERR(authz_validate(authz, pool));
+
+ *authz_p = authz;
+ return SVN_NO_ERROR;
+}
+
svn_error_t *
svn_repos_authz_check_access(svn_authz_t *authz, const char *repos_name,
Modified: subversion/branches/ev2-export/subversion/libsvn_subr/cache-membuffer.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/cache-membuffer.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/cache-membuffer.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/cache-membuffer.c Mon Dec 31 20:35:19 2012
@@ -1973,7 +1973,7 @@ svn_membuffer_cache_get(void **value_p,
*/
if (++cache->alloc_counter > ALLOCATIONS_PER_POOL_CLEAR)
{
- apr_pool_clear(cache->pool);
+ svn_pool_clear(cache->pool);
cache->alloc_counter = 0;
}
@@ -2004,7 +2004,7 @@ svn_membuffer_cache_set(void *cache_void
cache->alloc_counter += 3;
if (cache->alloc_counter > ALLOCATIONS_PER_POOL_CLEAR)
{
- apr_pool_clear(cache->pool);
+ svn_pool_clear(cache->pool);
cache->alloc_counter = 0;
}
@@ -2062,7 +2062,7 @@ svn_membuffer_cache_get_partial(void **v
if (++cache->alloc_counter > ALLOCATIONS_PER_POOL_CLEAR)
{
- apr_pool_clear(cache->pool);
+ svn_pool_clear(cache->pool);
cache->alloc_counter = 0;
}
Modified: subversion/branches/ev2-export/subversion/libsvn_subr/cache_config.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/cache_config.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/cache_config.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/cache_config.c Mon Dec 31 20:35:19 2012
@@ -131,7 +131,7 @@ svn_cache__get_global_membuffer_cache(vo
{
/* Memory and error cleanup */
svn_error_clear(err);
- apr_pool_destroy(pool);
+ svn_pool_destroy(pool);
/* Prevent future attempts to create the cache. However, an
* existing cache instance (see next comment) remains valid.
@@ -155,7 +155,7 @@ svn_cache__get_global_membuffer_cache(vo
*/
old_cache = apr_atomic_casptr((volatile void **)&cache, new_cache, NULL);
if (old_cache != NULL)
- apr_pool_destroy(pool);
+ svn_pool_destroy(pool);
}
return cache;
Modified: subversion/branches/ev2-export/subversion/libsvn_subr/io.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/io.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/io.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/io.c Mon Dec 31 20:35:19 2012
@@ -834,7 +834,7 @@ svn_io_copy_file(const char *src,
return SVN_NO_ERROR;
#endif
- SVN_ERR(svn_io_file_open(&from_file, src, APR_READ | APR_BINARY,
+ SVN_ERR(svn_io_file_open(&from_file, src, APR_READ,
APR_OS_DEFAULT, pool));
/* For atomicity, we copy to a tmp file and then rename the tmp
@@ -1536,7 +1536,7 @@ io_set_file_perms(const char *path,
/* Get the perms for the original file so we'll have any other bits
* that were already set (like the execute bits, for example). */
- SVN_ERR(svn_io_file_open(&fd, path, APR_READ | APR_BINARY,
+ SVN_ERR(svn_io_file_open(&fd, path, APR_READ,
APR_OS_DEFAULT, pool));
SVN_ERR(merge_default_file_perms(fd, &perms_to_set, pool));
SVN_ERR(svn_io_file_close(fd, pool));
Modified: subversion/branches/ev2-export/subversion/libsvn_subr/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/mergeinfo.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/mergeinfo.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/mergeinfo.c Mon Dec 31 20:35:19 2012
@@ -1763,7 +1763,7 @@ svn_mergeinfo_merge2(svn_mergeinfo_t mer
{
SVN_ERR(svn_rangelist_merge2(target, to_insert, result_pool,
iterpool));
- apr_pool_clear(iterpool);
+ svn_pool_clear(iterpool);
}
else
apr_hash_set(mergeinfo, key, klen, to_insert);
Modified: subversion/branches/ev2-export/subversion/libsvn_subr/stream.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/stream.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/stream.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/stream.c Mon Dec 31 20:35:19 2012
@@ -847,7 +847,7 @@ svn_stream_open_readonly(svn_stream_t **
{
apr_file_t *file;
- SVN_ERR(svn_io_file_open(&file, path, APR_READ | APR_BUFFERED | APR_BINARY,
+ SVN_ERR(svn_io_file_open(&file, path, APR_READ | APR_BUFFERED,
APR_OS_DEFAULT, result_pool));
*stream = svn_stream_from_aprfile2(file, FALSE, result_pool);
@@ -866,7 +866,6 @@ svn_stream_open_writable(svn_stream_t **
SVN_ERR(svn_io_file_open(&file, path,
APR_WRITE
| APR_BUFFERED
- | APR_BINARY
| APR_CREATE
| APR_EXCL,
APR_OS_DEFAULT, result_pool));
Modified: subversion/branches/ev2-export/subversion/libsvn_wc/diff_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_wc/diff_editor.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_wc/diff_editor.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_wc/diff_editor.c Mon Dec 31 20:35:19 2012
@@ -1288,11 +1288,10 @@ add_directory(const char *path,
dir_pool);
*child_baton = db;
- /* Add this path to the parent directory's list of elements that
- have been compared. */
- apr_hash_set(pb->compared, apr_pstrdup(pb->pool, db->path),
- APR_HASH_KEY_STRING, "");
-
+ /* Issue #3797: Don't add this filename to the parent directory's list of
+ elements that have been compared, to show local additions via the local
+ diff. The repository node is unrelated from the working copy version
+ (similar to not-present in the working copy) */
return SVN_NO_ERROR;
}
@@ -1438,10 +1437,10 @@ add_file(const char *path,
fb = make_file_baton(path, TRUE, pb, file_pool);
*file_baton = fb;
- /* Add this filename to the parent directory's list of elements that
- have been compared. */
- apr_hash_set(pb->compared, apr_pstrdup(pb->pool, path),
- APR_HASH_KEY_STRING, "");
+ /* Issue #3797: Don't add this filename to the parent directory's list of
+ elements that have been compared, to show local additions via the local
+ diff. The repository node is unrelated from the working copy version
+ (similar to not-present in the working copy) */
return SVN_NO_ERROR;
}
Modified: subversion/branches/ev2-export/subversion/svn/cl.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svn/cl.h?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svn/cl.h (original)
+++ subversion/branches/ev2-export/subversion/svn/cl.h Mon Dec 31 20:35:19 2012
@@ -288,13 +288,13 @@ svn_opt_subcommand_t
svn_cl__upgrade;
-/* See definition in main.c for documentation. */
+/* See definition in svn.c for documentation. */
extern const svn_opt_subcommand_desc2_t svn_cl__cmd_table[];
-/* See definition in main.c for documentation. */
+/* See definition in svn.c for documentation. */
extern const int svn_cl__global_options[];
-/* See definition in main.c for documentation. */
+/* See definition in svn.c for documentation. */
extern const apr_getopt_option_t svn_cl__options[];
Modified: subversion/branches/ev2-export/subversion/svn/file-merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svn/file-merge.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svn/file-merge.c (original)
+++ subversion/branches/ev2-export/subversion/svn/file-merge.c Mon Dec 31 20:35:19 2012
@@ -862,13 +862,13 @@ svn_cl__merge_file(const char *base_path
scratch_pool)));
SVN_ERR(svn_io_file_open(&original_file, base_path,
- APR_READ|APR_BUFFERED|APR_BINARY,
+ APR_READ | APR_BUFFERED,
APR_OS_DEFAULT, scratch_pool));
SVN_ERR(svn_io_file_open(&modified_file, their_path,
- APR_READ|APR_BUFFERED|APR_BINARY,
+ APR_READ | APR_BUFFERED,
APR_OS_DEFAULT, scratch_pool));
SVN_ERR(svn_io_file_open(&latest_file, my_path,
- APR_READ|APR_BUFFERED|APR_BINARY,
+ APR_READ | APR_BUFFERED,
APR_OS_DEFAULT, scratch_pool));
SVN_ERR(svn_io_open_unique_file3(&merged_file, &merged_file_name,
NULL, svn_io_file_del_none,
Modified: subversion/branches/ev2-export/subversion/svn/svn.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svn/svn.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svn/svn.c (original)
+++ subversion/branches/ev2-export/subversion/svn/svn.c Mon Dec 31 20:35:19 2012
@@ -1,5 +1,5 @@
/*
- * main.c: Subversion command line client.
+ * svn.c: Subversion command line client main file.
*
* ====================================================================
* Licensed to the Apache Software Foundation (ASF) under one
Modified: subversion/branches/ev2-export/subversion/svnadmin/svnadmin.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svnadmin/svnadmin.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svnadmin/svnadmin.c (original)
+++ subversion/branches/ev2-export/subversion/svnadmin/svnadmin.c Mon Dec 31 20:35:19 2012
@@ -1,5 +1,5 @@
/*
- * main.c: Subversion server administration tool.
+ * svnadmin.c: Subversion server administration tool main file.
*
* ====================================================================
* Licensed to the Apache Software Foundation (ASF) under one
Modified: subversion/branches/ev2-export/subversion/svndumpfilter/svndumpfilter.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svndumpfilter/svndumpfilter.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svndumpfilter/svndumpfilter.c (original)
+++ subversion/branches/ev2-export/subversion/svndumpfilter/svndumpfilter.c Mon Dec 31 20:35:19 2012
@@ -1,5 +1,5 @@
/*
- * main.c: Subversion dump stream filtering tool.
+ * svndumpfilter.c: Subversion dump stream filtering tool main file.
*
* ====================================================================
* Licensed to the Apache Software Foundation (ASF) under one
Modified: subversion/branches/ev2-export/subversion/svnlook/svnlook.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svnlook/svnlook.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svnlook/svnlook.c (original)
+++ subversion/branches/ev2-export/subversion/svnlook/svnlook.c Mon Dec 31 20:35:19 2012
@@ -1,5 +1,5 @@
/*
- * main.c: Subversion server inspection tool.
+ * svnlook.c: Subversion server inspection tool main file.
*
* ====================================================================
* Licensed to the Apache Software Foundation (ASF) under one
Modified: subversion/branches/ev2-export/subversion/svnmucc/svnmucc.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svnmucc/svnmucc.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svnmucc/svnmucc.c (original)
+++ subversion/branches/ev2-export/subversion/svnmucc/svnmucc.c Mon Dec 31 20:35:19 2012
@@ -961,7 +961,7 @@ usage(apr_pool_t *pool, int exit_val)
" --no-auth-cache : do not cache authentication tokens\n"
" --version : print version information\n"),
stream, pool));
- apr_pool_destroy(pool);
+ svn_pool_destroy(pool);
exit(exit_val);
}
Modified: subversion/branches/ev2-export/subversion/svnrdump/load_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svnrdump/load_editor.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svnrdump/load_editor.c (original)
+++ subversion/branches/ev2-export/subversion/svnrdump/load_editor.c Mon Dec 31 20:35:19 2012
@@ -501,7 +501,8 @@ get_shim_callbacks(struct revision_baton
/* Acquire a lock (of sorts) on the repository associated with the
* given RA SESSION. This lock is just a revprop change attempt in a
- * time-delay loop. This function is duplicated by svnsync in main.c.
+ * time-delay loop. This function is duplicated by svnsync in
+ * svnsync/svnsync.c
*
* ### TODO: Make this function more generic and
* expose it through a header for use by other Subversion
Modified: subversion/branches/ev2-export/subversion/svnserve/svnserve.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svnserve/svnserve.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svnserve/svnserve.c (original)
+++ subversion/branches/ev2-export/subversion/svnserve/svnserve.c Mon Dec 31 20:35:19 2012
@@ -1,5 +1,5 @@
/*
- * main.c : Main control function for svnserve
+ * svnserve.c : Main control function for svnserve
*
* ====================================================================
* Licensed to the Apache Software Foundation (ASF) under one
Modified: subversion/branches/ev2-export/subversion/svnsync/svnsync.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/svnsync/svnsync.c?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/svnsync/svnsync.c (original)
+++ subversion/branches/ev2-export/subversion/svnsync/svnsync.c Mon Dec 31 20:35:19 2012
@@ -330,7 +330,7 @@ lock_retry_func(void *baton,
/* Acquire a lock (of sorts) on the repository associated with the
* given RA SESSION. This lock is just a revprop change attempt in a
* time-delay loop. This function is duplicated by svnrdump in
- * load_editor.c.
+ * svnrdump/load_editor.c
*/
static svn_error_t *
get_lock(const svn_string_t **lock_string_p,
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/authz_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/authz_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/authz_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/authz_tests.py Mon Dec 31 20:35:19 2012
@@ -137,7 +137,7 @@ def broken_authz_file(sbox):
exit_code, out, err = svntest.main.run_svn(1,
"delete",
sbox.repo_url + "/A",
- "-m", "a log message");
+ "-m", "a log message")
if out:
raise svntest.verify.SVNUnexpectedStdout(out)
if not err:
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/basic_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/basic_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/basic_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/basic_tests.py Mon Dec 31 20:35:19 2012
@@ -1942,7 +1942,7 @@ def delete_keep_local(sbox):
# Update working copy to check disk state still greek tree
expected_disk = svntest.main.greek_state.copy()
expected_output = svntest.wc.State(wc_dir, {})
- expected_status.tweak(wc_rev = 2);
+ expected_status.tweak(wc_rev = 2)
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/commit_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/commit_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/commit_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/commit_tests.py Mon Dec 31 20:35:19 2012
@@ -2921,8 +2921,8 @@ def commit_danglers(sbox):
# dir/subdir should bump LastChangedRev of subdir in originating WC
@XFail()
@Issue(4203)
-def commit_moved_dir_with_nested_mod_in_subdir(sbox):
- "commit of moved dir with nested mod in subdir"
+def last_changed_of_copied_subdir(sbox):
+ "last changed of copied subdir"
sbox.build()
wc_dir = sbox.wc_dir
@@ -3013,7 +3013,7 @@ test_list = [ None,
commit_incomplete,
commit_add_subadd,
commit_danglers,
- commit_moved_dir_with_nested_mod_in_subdir,
+ last_changed_of_copied_subdir,
]
if __name__ == '__main__':
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/copy_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/copy_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/copy_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/copy_tests.py Mon Dec 31 20:35:19 2012
@@ -2458,22 +2458,11 @@ def move_dir_back_and_forth(sbox):
# Move the moved dir: D_moved back to its starting
# location at A/D.
- if svntest.main.wc_is_singledb(wc_dir):
- # In single-db target is gone on-disk after it was moved away, so this
- # move works ok
- expected_err = []
- else:
- # In !SINGLE_DB the target of the copy exists on-dir, so svn tries
- # to move the file below the deleted directory
- expected_err = '.*Cannot copy to .*as it is scheduled for deletion'
-
- svntest.actions.run_and_verify_svn(None, None, expected_err,
- 'mv', D_move_path, D_path)
-
- if svntest.main.wc_is_singledb(wc_dir):
- # Verify that the status indicates a replace with history
- expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
- expected_status.add({
+ svntest.actions.run_and_verify_svn(None, None, [], 'mv', D_move_path, D_path)
+
+ # Verify that the status indicates a replace with history
+ expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+ expected_status.add({
'A/D' : Item(status='R ', copied='+', wc_rev='-'),
'A/D/G' : Item(status=' ', copied='+', wc_rev='-'),
'A/D/G/pi' : Item(status=' ', copied='+', wc_rev='-'),
@@ -2484,8 +2473,8 @@ def move_dir_back_and_forth(sbox):
'A/D/H/chi' : Item(status=' ', copied='+', wc_rev='-'),
'A/D/H/omega' : Item(status=' ', copied='+', wc_rev='-'),
'A/D/H/psi' : Item(status=' ', copied='+', wc_rev='-'),
- })
- svntest.actions.run_and_verify_status(wc_dir, expected_status)
+ })
+ svntest.actions.run_and_verify_status(wc_dir, expected_status)
def copy_move_added_paths(sbox):
"copy and move added paths without commits"
@@ -4364,9 +4353,9 @@ def copy_added_dir_with_copy(sbox):
sbox.build(read_only=True)
wc_dir = sbox.wc_dir
- new_dir = sbox.ospath('NewDir');
- new_dir2 = sbox.ospath('NewDir2');
- new_dir3 = sbox.ospath('NewDir3');
+ new_dir = sbox.ospath('NewDir')
+ new_dir2 = sbox.ospath('NewDir2')
+ new_dir3 = sbox.ospath('NewDir3')
# Alias for svntest.actions.run_and_verify_svn
rav_svn = svntest.actions.run_and_verify_svn
@@ -4398,7 +4387,6 @@ def copy_added_dir_with_copy(sbox):
svntest.actions.run_and_verify_status(wc_dir, expected_status)
-@SkipUnless(svntest.main.is_posix_os)
@Issue(3303)
def copy_broken_symlink(sbox):
"""copy broken symlink"""
@@ -4408,14 +4396,14 @@ def copy_broken_symlink(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- new_symlink = sbox.ospath('new_symlink');
- copied_symlink = sbox.ospath('copied_symlink');
- os.symlink('linktarget', new_symlink)
+ new_symlink = sbox.ospath('new_symlink')
+ copied_symlink = sbox.ospath('copied_symlink')
# Alias for svntest.actions.run_and_verify_svn
rav_svn = svntest.actions.run_and_verify_svn
- rav_svn(None, None, [], 'add', new_symlink)
+ sbox.simple_add_symlink('linktarget', 'new_symlink')
+
rav_svn(None, None, [], 'cp', new_symlink, copied_symlink)
# Check whether both new_symlink and copied_symlink are added to the
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/depth_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/depth_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/depth_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/depth_tests.py Mon Dec 31 20:35:19 2012
@@ -2084,9 +2084,9 @@ def excluded_path_update_operation(sbox)
'A/B/E' : Item(status='D '),
})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
- expected_status.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E');
+ expected_status.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E')
expected_disk = svntest.main.greek_state.copy()
- expected_disk.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E');
+ expected_disk.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
@@ -2124,8 +2124,8 @@ def excluded_path_update_operation(sbox)
expected_output = svntest.wc.State(wc_dir, {
'A/B' : Item(status='D '),
})
- expected_status.remove('A/B/F', 'A/B/E', 'A/B/lambda', 'A/B');
- expected_disk.remove('A/B/F', 'A/B/E', 'A/B/lambda', 'A/B');
+ expected_status.remove('A/B/F', 'A/B/E', 'A/B/lambda', 'A/B')
+ expected_disk.remove('A/B/F', 'A/B/E', 'A/B/lambda', 'A/B')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
expected_disk,
@@ -2158,8 +2158,8 @@ def excluded_path_update_operation(sbox)
expected_output = svntest.wc.State(wc_dir, {
'iota' : Item(status='D '),
})
- expected_status.remove('iota');
- expected_disk.remove('iota');
+ expected_status.remove('iota')
+ expected_disk.remove('iota')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
expected_disk,
@@ -2202,9 +2202,9 @@ def excluded_path_misc_operation(sbox):
'A/B/E' : Item(status='D '),
})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
- expected_status.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E');
+ expected_status.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E')
expected_disk = svntest.main.greek_state.copy()
- expected_disk.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E');
+ expected_disk.remove('A/B/E/alpha', 'A/B/E/beta', 'A/B/E')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
@@ -2452,9 +2452,8 @@ def make_depth_tree_conflicts(sbox):
expected_disk = svntest.main.greek_state.copy()
expected_disk.remove('A/mu',
'A/B', 'A/B/lambda', 'A/B/E/alpha', 'A/B/E/beta',
- 'A/D/gamma');
- if svntest.main.wc_is_singledb(sbox.wc_dir):
- expected_disk.remove('A/B/E', 'A/B/F')
+ 'A/D/gamma',
+ 'A/B/E', 'A/B/F')
# This test is set XFail because this (correct) status cannot be
# verified due to an "svn update" bug. The tree-conflict on A/B
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/diff_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/diff_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/diff_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/diff_tests.py Mon Dec 31 20:35:19 2012
@@ -3336,12 +3336,12 @@ def diff_url_against_local_mods(sbox):
'up')
# In A, add, remove and change a file, and commit.
- make_file_edit_del_add(A);
+ make_file_edit_del_add(A)
svntest.actions.run_and_verify_svn(None, None, [],
'ci', '-m', 'committing A')
# In A2, do the same changes but leave uncommitted.
- make_file_edit_del_add(A2);
+ make_file_edit_del_add(A2)
# Diff URL of A against working copy of A2. Output should be empty.
expected_output = []
@@ -3352,7 +3352,6 @@ def diff_url_against_local_mods(sbox):
#----------------------------------------------------------------------
# Diff against old revision of the parent directory of a removed and
# locally re-added file.
-@XFail()
@Issue(3797)
def diff_preexisting_rev_against_local_add(sbox):
"diff -r1 of dir with removed-then-readded file"
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/entries_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/entries_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/entries_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/entries_tests.py Mon Dec 31 20:35:19 2012
@@ -185,11 +185,8 @@ def obstructed_entries(sbox):
entries = svntest.main.run_entriesdump(D_path)
check_names(entries, 'H')
- if svntest.main.wc_is_singledb(wc_dir):
- # Data is not missing in single-db
- validate(entries['H'], revision=1)
- else:
- validate(entries['H'], revision=-1)
+ # Data is not missing in single-db
+ validate(entries['H'], revision=1)
### need to get svn_wc__db_read_info() to generate obstructed_add
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/history_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/history_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/history_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/history_tests.py Mon Dec 31 20:35:19 2012
@@ -64,7 +64,7 @@ def cat_traces_renames(sbox):
'A/D/G/bloo' : Item(verb='Adding')
})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
- expected_status.remove('A/D/G/rho');
+ expected_status.remove('A/D/G/rho')
expected_status.add({ 'A/D/G/bloo' :
Item(wc_rev=2, status=' ') })
@@ -87,7 +87,7 @@ def cat_traces_renames(sbox):
'A/D/G/rho' : Item(verb='Adding')
})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
- expected_status.remove('A/D/G/pi');
+ expected_status.remove('A/D/G/pi')
expected_status.tweak('A/D/G/rho', wc_rev=3)
expected_status.add({ 'A/D/G/bloo' :
Item(wc_rev=2, status=' ') })
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/info_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/info_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/info_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/info_tests.py Mon Dec 31 20:35:19 2012
@@ -522,8 +522,65 @@ def binary_tree_conflict(sbox):
}]
svntest.actions.run_and_verify_info(expected_info, iota)
+def relpath_escaping(sbox):
+ "relpath escaping should be usable as-is"
+ sbox.build()
+ wc_dir = sbox.wc_dir
+ name = 'path with space, +, % and #'
+ name2 = 'path with %20'
+ sbox.simple_copy('iota', name)
+ sbox.simple_copy('iota', name2)
+ sbox.simple_commit()
+
+ testpath = sbox.ospath(name)
+
+ expected = {'Path' : re.escape(testpath),
+ 'URL' : '.*/path.*with.*space.*',
+ 'Relative URL' : '.*/path.*with.*space.*',
+ }
+
+ svntest.actions.run_and_verify_info([expected], sbox.ospath(name))
+
+ info = svntest.actions.run_and_parse_info(sbox.ospath(name), sbox.ospath(name2))
+
+ # And now verify that the returned URL and relative url are usable
+
+ # Also test the local path (to help resolving the relative path) and an
+ # unescaped path which the client should automatically encode
+ svntest.actions.run_and_verify_svn(None, None, [], 'info',
+ info[0]['Relative URL'],
+ info[0]['URL'],
+ testpath,
+ '^/' + name,
+
+ info[1]['Relative URL'],
+ info[1]['URL'])
+
+ # And now do the same thing with a the file external handling
+ sbox.simple_propset('svn:externals',
+ info[0]['Relative URL'] + " f1\n" +
+ info[0]['URL'] + " f2\n" +
+ '"^/' + name + "\" f3\n" +
+
+ info[1]['Relative URL'] + " g1\n" +
+ info[1]['URL'] + " g2\n",
+ ''
+ )
+
+ # And now we expect to see 3 file externals
+ expected_output = svntest.wc.State(wc_dir, {
+ 'f1' : Item(status='A '),
+ 'f2' : Item(status='A '),
+ 'f3' : Item(status='A '),
+
+ 'g1' : Item(status='A '),
+ 'g2' : Item(status='A '),
+ })
+
+ svntest.actions.run_and_verify_update(wc_dir,
+ expected_output, None, None)
########################################################################
# Run the tests
@@ -539,6 +596,7 @@ test_list = [ None,
info_repos_root_url,
info_show_exclude,
binary_tree_conflict,
+ relpath_escaping,
]
if __name__ == '__main__':
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/lock_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/lock_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/lock_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/lock_tests.py Mon Dec 31 20:35:19 2012
@@ -855,12 +855,7 @@ def lock_switched_files(sbox):
expected_status.tweak('A/D/gamma', 'A/B/lambda', writelocked='K')
# In WC-NG locks are kept per working copy, not per file
- if svntest.main.wc_is_singledb(wc_dir):
- # In single-db you see these files are locked locally
- expected_status.tweak('A/B/E/alpha', 'iota', writelocked='K')
- else:
- # In multi-db you see these files are not locked in the right dir
- expected_status.tweak('A/B/E/alpha', 'iota', writelocked='O')
+ expected_status.tweak('A/B/E/alpha', 'iota', writelocked='K')
svntest.actions.run_and_verify_status(wc_dir, expected_status)
@@ -1437,15 +1432,10 @@ def lock_twice_in_one_wc(sbox):
os.chmod(mu2_path, 0700)
svntest.main.file_append(mu2_path, "Updated text")
- if svntest.main.wc_is_singledb(wc_dir):
- # Commit will just succeed as the DB owns the lock. It's a user decision
- # to commit the other target instead of the one originally locked
- expected_err = []
- else:
- # Commit should fail because it is locked in the other location
- expected_err = '.*(([Nn]o)|(Server)).*[lL]ock.*'
+ # Commit will just succeed as the DB owns the lock. It's a user decision
+ # to commit the other target instead of the one originally locked
- svntest.actions.run_and_verify_svn(None, None, expected_err,
+ svntest.actions.run_and_verify_svn(None, None, [],
'commit', mu2_path, '-m', '')
#----------------------------------------------------------------------
@@ -1520,7 +1510,7 @@ def verify_path_escaping(sbox):
'file #1' : Item(status=' ', writelocked='K', wc_rev='2'),
'file #2' : Item(status=' ', writelocked='O', wc_rev='2'),
'file #3' : Item(status=' ', writelocked='B', wc_rev='2')
- });
+ })
# Make sure the file locking is reported correctly
svntest.actions.run_and_verify_status(wc_dir, expected_status)
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/log_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/log_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/log_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/log_tests.py Mon Dec 31 20:35:19 2012
@@ -1006,7 +1006,7 @@ def log_xml_empty_date(sbox):
# Create the revprop-change hook for this test
svntest.actions.enable_revprop_changes(sbox.repo_dir)
- date_re = re.compile('<date');
+ date_re = re.compile('<date')
# Ensure that we get a date before we delete the property.
exit_code, output, errput = svntest.actions.run_and_verify_svn(
Modified: subversion/branches/ev2-export/subversion/tests/cmdline/merge_reintegrate_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/tests/cmdline/merge_reintegrate_tests.py?rev=1427238&r1=1427237&r2=1427238&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/tests/cmdline/merge_reintegrate_tests.py (original)
+++ subversion/branches/ev2-export/subversion/tests/cmdline/merge_reintegrate_tests.py Mon Dec 31 20:35:19 2012
@@ -860,9 +860,9 @@ def reintegrate_fail_on_stale_source(sbo
mu_path = os.path.join(A_path, "mu")
svntest.main.file_append(mu_path, 'some text appended to mu\n')
svntest.actions.run_and_verify_svn(None, None, [], 'commit',
- '-m', 'a change to mu', mu_path);
+ '-m', 'a change to mu', mu_path)
# Unmix the revisions in the working copy.
- svntest.actions.run_and_verify_svn(None, None, [], 'update', wc_dir);
+ svntest.actions.run_and_verify_svn(None, None, [], 'update', wc_dir)
# The merge --reintegrate succeeds but since there were no changes
# on A_COPY after it was branched the only result is updated mergeinfo
# on the reintegrate target.