Merge lp:~mdiers/ubuntu/natty/subversion/ppa-proposed into lp:~svn/ubuntu/natty/subversion/ppa
- Natty (11.04)
- ppa-proposed
- Merge into ppa
Proposed by
Michael Diers
Status: | Merged |
---|---|
Approved by: | Max Bowsher |
Approved revision: | 55 |
Merged at revision: | 54 |
Proposed branch: | lp:~mdiers/ubuntu/natty/subversion/ppa-proposed |
Merge into: | lp:~svn/ubuntu/natty/subversion/ppa |
Diff against target: |
2645 lines (+603/-244) 44 files modified
CHANGES (+54/-0) Makefile.in (+7/-1) README.Debian-tarball (+2/-2) configure (+11/-11) debian/changelog (+58/-30) debian/patches/build-fixes (+12/-21) debian/patches/change-range (+88/-0) debian/patches/loosen-sqlite-version-check (+18/-0) debian/patches/series (+2/-0) debian/rules (+3/-8) debian/subversion.install (+2/-2) debian/tools/Makefile (+0/-21) debian/tools/README (+0/-5) debian/tools/svn-make-config.c (+0/-60) subversion/bindings/javahl/native/Outputer.cpp (+4/-0) subversion/bindings/swig/perl/native/Makefile.PL.in (+1/-1) subversion/bindings/swig/perl/native/core.c (+4/-4) subversion/bindings/swig/python/core.c (+4/-4) subversion/bindings/swig/ruby/core.c (+4/-4) subversion/bindings/swig/ruby/test/util.rb (+3/-0) subversion/include/svn_version.h (+3/-3) subversion/libsvn_client/merge.c (+13/-5) subversion/libsvn_fs/fs-loader.c (+1/-0) subversion/libsvn_fs_fs/fs_fs.c (+8/-2) subversion/libsvn_ra_neon/mergeinfo.c (+3/-1) subversion/libsvn_ra_neon/options.c (+21/-5) subversion/libsvn_ra_serf/mergeinfo.c (+3/-1) subversion/libsvn_ra_serf/serf.c (+20/-4) subversion/libsvn_ra_serf/update.c (+3/-1) subversion/libsvn_repos/fs-wrap.c (+2/-0) subversion/libsvn_repos/log.c (+15/-5) subversion/libsvn_repos/rev_hunt.c (+3/-2) subversion/libsvn_subr/error.c (+14/-1) subversion/libsvn_wc/props.c (+22/-14) subversion/mod_dav_svn/repos.c (+21/-3) subversion/mod_dav_svn/version.c (+3/-1) subversion/po/zh_CN.po (+18/-18) subversion/tests/libsvn_fs/fs-test.c (+64/-4) subversion/tests/libsvn_fs/locks-test.c (+22/-0) subversion/tests/libsvn_fs_base/changes-test.c (+4/-0) subversion/tests/libsvn_fs_base/fs-base-test.c (+12/-0) subversion/tests/libsvn_fs_fs/fs-pack-test.c (+3/-0) subversion/tests/libsvn_repos/repos-test.c (+37/-0) subversion/tests/svn_test.h (+11/-0) |
To merge this branch: | bzr merge lp:~mdiers/ubuntu/natty/subversion/ppa-proposed |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Max Bowsher (community) | Approve | ||
Review via email: mp+54325@code.launchpad.net |
Commit message
Description of the change
Merge Debian (1.6.16dfsg-1).
Fixes CVE-2011-0715: Remotely crash mod_dav_svn anonymously via a lock token.
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'CHANGES' |
2 | --- CHANGES 2011-01-05 22:59:03 +0000 |
3 | +++ CHANGES 2011-03-22 11:15:25 +0000 |
4 | @@ -1,3 +1,31 @@ |
5 | +Version 1.6.16 |
6 | +(02 Mar 2011, from /branches/1.6.x) |
7 | +http://svn.apache.org/repos/asf/subversion/tags/1.6.16 |
8 | + |
9 | + User-visible changes: |
10 | + * more improvement to the 'blame -g' memory leak from 1.6.15 (r1041438) |
11 | + * avoid a crash in mod_dav_svn when using locks (r1071239, -307) |
12 | + See CVE-2011-0715, and descriptive advisory at |
13 | + http://subversion.apache.org/security/CVE-2011-0715-advisory.txt |
14 | + * avoid unnecessary globbing for performance (r1068988) |
15 | + * don't add tree conflicts when one already exists (issue #3486) |
16 | + * fix potential crash when requesting mergeinfo (r902467) |
17 | + * don't attempt to resolve prop conflicts in 'merge --dry-run' (r880146) |
18 | + * more fixes for issue #3270. |
19 | + |
20 | + Developer-visible changes: |
21 | + * ensure report_info_t is properly initialized by ra_serf (r1058722) |
22 | + * locate errors properly on a malfunction (r1053208) |
23 | + * fix output param timing of svn_fs_commit_txn() on fsfs (r1051751) |
24 | + * for svn_fs_commit_txn(), set invalid rev on failed commit (r1051632, -8) |
25 | + * fix sporadic Ruby bindings test failures (r1038792) |
26 | + * fix JavaHL JVM object leak when dumping large revisions (r947006) |
27 | + * use Perl to resolve symlinks when building swig-pl (r1039040) |
28 | + * allow Perl bindings to build within a symlinked working copy (r1036534) |
29 | + * don't overwrite the LD_LIBRARY_PATH during make check-swig-pl (r946355) |
30 | + * improve unit tests for some fs functions (r1051744, -5, -3185, -241) |
31 | + |
32 | + |
33 | Version 1.6.15 |
34 | (26 Nov 2010, from /branches/1.6.x) |
35 | http://svn.apache.org/repos/asf/subversion/tags/1.6.15 |
36 | @@ -444,6 +472,32 @@ |
37 | * fix building Ruby bindings with Ruby 1.9 (r35852, r35883) |
38 | |
39 | |
40 | +Version 1.5.8 |
41 | +(?? ??? 2010, from /branches/1.5.x) |
42 | +http://svn.apache.org/repos/asf/subversion/tags/1.5.8 |
43 | + |
44 | + User-visible changes: |
45 | + * fix proxying of LOCK and UNLOCK requests with WebDAV proxies (r36159) |
46 | + * improve performance of --ignore-ancestry merges (r36256) |
47 | + * avoid crash with when using subtree mergeinfo (r36613, -13, -31, -41) |
48 | + * improve merge correctness with non-inheritable mergeinfo (r36789) |
49 | + * fixed: repeated mergeinfo of conflicting properties fails (issue #3250) |
50 | + * fix segfault in wc->URL copy (r37646, -56) |
51 | + * make 'svn up --set-depth infinity' expand shallow subtrees (r37169) |
52 | + * make default depth of 'svn merge' infinity (r37156) |
53 | + * error if attempting to reintegrate to/from the repo root (r37385) |
54 | + * improve memory performance in 'svn merge' (issue #3393) |
55 | + * fixed: 'SVNPathAuthz short_circuit' unsolicited read access (issue #3695) |
56 | + See CVE-2010-3315, and descriptive advisory at |
57 | + http://subversion.apache.org/security/CVE-2010-3315-advisory.txt |
58 | + * prevent crash in mod_dav_svn when using SVNParentPath (r1033166) |
59 | + |
60 | + Developer-visible changes: |
61 | + * fix pointer dereference (r36783) |
62 | + * fix error leak (r36860) |
63 | + * make basic_tests 12 compatible with Windows and Python 2.5+ (r35930) |
64 | + |
65 | + |
66 | Version 1.5.7 |
67 | (06 Aug 2009, from /branches/1.5.x) |
68 | http://svn.apache.org/repos/asf/subversion/tags/1.5.7 |
69 | |
70 | === modified file 'Makefile.in' |
71 | --- Makefile.in 2011-01-05 22:59:03 +0000 |
72 | +++ Makefile.in 2011-03-22 11:15:25 +0000 |
73 | @@ -684,10 +684,16 @@ |
74 | $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL |
75 | cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL |
76 | |
77 | +# There is a "readlink -f" command on some systems for the same purpose, |
78 | +# but it's not as portable (e.g. Mac OS X doesn't have it). These should |
79 | +# only be used where Python/Perl are known to be available. |
80 | +READLINK_PY=$(PYTHON) -c 'import sys,os; print(os.path.realpath(sys.argv[1]))' |
81 | +READLINK_PL=$(PERL) -e 'use Cwd; print Cwd::realpath(shift)' |
82 | + |
83 | swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \ |
84 | $(SWIG_PL_DIR)/native/Makefile |
85 | swig-pl: $(swig-pl_DEPS) |
86 | - if test "$(SWIG_PL_DIR)" != "$(SWIG_PL_SRC_DIR)"; then \ |
87 | + if test "`$(READLINK_PL) $(SWIG_PL_DIR)`" != "`$(READLINK_PL) $(SWIG_PL_SRC_DIR)`"; then \ |
88 | ln -sf $(SWIG_PL_SRC_DIR)/native/*.c $(SWIG_PL_DIR)/native; \ |
89 | fi |
90 | cd $(SWIG_PL_DIR)/native; $(MAKE) OPTIMIZE="" OTHERLDFLAGS="$(SWIG_LDFLAGS)" |
91 | |
92 | === modified file 'README.Debian-tarball' |
93 | --- README.Debian-tarball 2011-01-05 22:59:03 +0000 |
94 | +++ README.Debian-tarball 2011-03-22 11:15:25 +0000 |
95 | @@ -1,4 +1,4 @@ |
96 | -This tarball is the same as official subversion-1.6.15.tar.gz, |
97 | +This tarball is the same as official subversion-1.6.16.tar.gz, |
98 | except that several unlicensed or unclearly-licensed files were |
99 | removed: |
100 | |
101 | @@ -12,4 +12,4 @@ |
102 | contrib/server-side/backup-recipe.sh |
103 | contrib/server-side/load_repo_with_mergesensitive_copy.sh |
104 | |
105 | -Max Bowsher, 5 Jan 2011 |
106 | +Peter Samuelson, 25 Feb 2011 |
107 | |
108 | === modified file 'configure' |
109 | --- configure 2011-01-05 22:59:03 +0000 |
110 | +++ configure 2011-03-22 11:15:25 +0000 |
111 | @@ -1,6 +1,6 @@ |
112 | #! /bin/sh |
113 | # Guess values for system-dependent variables and create Makefiles. |
114 | -# Generated by GNU Autoconf 2.64 for subversion 1.6.15. |
115 | +# Generated by GNU Autoconf 2.64 for subversion 1.6.16. |
116 | # |
117 | # Report bugs to <http://subversion.tigris.org/>. |
118 | # |
119 | @@ -703,8 +703,8 @@ |
120 | # Identity of this package. |
121 | PACKAGE_NAME='subversion' |
122 | PACKAGE_TARNAME='subversion' |
123 | -PACKAGE_VERSION='1.6.15' |
124 | -PACKAGE_STRING='subversion 1.6.15' |
125 | +PACKAGE_VERSION='1.6.16' |
126 | +PACKAGE_STRING='subversion 1.6.16' |
127 | PACKAGE_BUGREPORT='http://subversion.tigris.org/' |
128 | PACKAGE_URL='' |
129 | |
130 | @@ -1532,7 +1532,7 @@ |
131 | # Omit some internal or obsolete options to make the list less imposing. |
132 | # This message is too long to be a string in the A/UX 3.1 sh. |
133 | cat <<_ACEOF |
134 | -\`configure' configures subversion 1.6.15 to adapt to many kinds of systems. |
135 | +\`configure' configures subversion 1.6.16 to adapt to many kinds of systems. |
136 | |
137 | Usage: $0 [OPTION]... [VAR=VALUE]... |
138 | |
139 | @@ -1598,7 +1598,7 @@ |
140 | |
141 | if test -n "$ac_init_help"; then |
142 | case $ac_init_help in |
143 | - short | recursive ) echo "Configuration of subversion 1.6.15:";; |
144 | + short | recursive ) echo "Configuration of subversion 1.6.16:";; |
145 | esac |
146 | cat <<\_ACEOF |
147 | |
148 | @@ -1784,7 +1784,7 @@ |
149 | test -n "$ac_init_help" && exit $ac_status |
150 | if $ac_init_version; then |
151 | cat <<\_ACEOF |
152 | -subversion configure 1.6.15 |
153 | +subversion configure 1.6.16 |
154 | generated by GNU Autoconf 2.64 |
155 | |
156 | Copyright (C) 2009 Free Software Foundation, Inc. |
157 | @@ -2414,7 +2414,7 @@ |
158 | This file contains any messages produced by compilers while |
159 | running configure, to aid debugging if configure makes a mistake. |
160 | |
161 | -It was created by subversion $as_me 1.6.15, which was |
162 | +It was created by subversion $as_me 1.6.16, which was |
163 | generated by GNU Autoconf 2.64. Invocation command line was |
164 | |
165 | $ $0 $@ |
166 | @@ -2787,8 +2787,8 @@ |
167 | |
168 | |
169 | |
170 | -{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.6.15" >&5 |
171 | -$as_echo "$as_me: Configuring Subversion 1.6.15" >&6;} |
172 | +{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.6.16" >&5 |
173 | +$as_echo "$as_me: Configuring Subversion 1.6.16" >&6;} |
174 | |
175 | abs_srcdir="`cd $srcdir && pwd`" |
176 | |
177 | @@ -26819,7 +26819,7 @@ |
178 | # report actual input values of CONFIG_FILES etc. instead of their |
179 | # values after options handling. |
180 | ac_log=" |
181 | -This file was extended by subversion $as_me 1.6.15, which was |
182 | +This file was extended by subversion $as_me 1.6.16, which was |
183 | generated by GNU Autoconf 2.64. Invocation command line was |
184 | |
185 | CONFIG_FILES = $CONFIG_FILES |
186 | @@ -26883,7 +26883,7 @@ |
187 | _ACEOF |
188 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
189 | ac_cs_version="\\ |
190 | -subversion config.status 1.6.15 |
191 | +subversion config.status 1.6.16 |
192 | configured by $0, generated by GNU Autoconf 2.64, |
193 | with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" |
194 | |
195 | |
196 | === modified file 'debian/changelog' |
197 | --- debian/changelog 2011-01-05 23:01:25 +0000 |
198 | +++ debian/changelog 2011-03-22 11:15:25 +0000 |
199 | @@ -1,3 +1,28 @@ |
200 | +subversion (1.6.16dfsg-1svn1) natty; urgency=high |
201 | + |
202 | + * Merge with Debian unstable. Remaining changes: |
203 | + - Create pot file on build. |
204 | + - Build a python-subversion-dbg package. |
205 | + - (Build-)depend on default-jre-headless/-jdk. |
206 | + - Do not apply java-build patch. |
207 | + - debian/rules: Manually create the doxygen output directory, otherwise |
208 | + we get weird build failures when running parallel builds. |
209 | + - Disable the serf backend because serf is in universe. |
210 | + - Fix FTBFS against Python 2.7 by disabling some problematic tests. |
211 | + |
212 | + -- Michael Diers <mdiers@elego.de> Tue, 22 Mar 2011 11:57:19 +0100 |
213 | + |
214 | +subversion (1.6.16dfsg-1) unstable; urgency=high |
215 | + |
216 | + * New upstream version. |
217 | + - Fixes CVE-2011-0715: Remotely crash mod_dav_svn anonymously via a |
218 | + lock token. |
219 | + * patches/change-range: New patch to support -cA-B syntax on command line. |
220 | + * Stop using svn-make-config.c; we can do the same just by running svn |
221 | + itself in a controlled home directory. Delete debian/tools/. |
222 | + |
223 | + -- Peter Samuelson <peter@p12n.org> Thu, 03 Mar 2011 10:55:42 -0600 |
224 | + |
225 | subversion (1.6.15dfsg~ppa-0svn1) natty; urgency=low |
226 | |
227 | * Create a PPA build, merging: |
228 | @@ -8,10 +33,42 @@ |
229 | |
230 | -- Max Bowsher <maxb@f2s.com> Wed, 05 Jan 2011 23:01:20 +0000 |
231 | |
232 | +subversion (1.6.12dfsg-4ubuntu1) natty; urgency=low |
233 | + |
234 | + * Merge with Debian unstable. Remaining changes: |
235 | + - Create pot file on build. |
236 | + - Build a python-subversion-dbg package. |
237 | + - (Build-)depend on default-jre-headless/-jdk. |
238 | + - Do not apply java-build patch. |
239 | + - debian/rules: Manually create the doxygen output directory, otherwise |
240 | + we get weird build failures when running parallel builds. |
241 | + - Disable the serf backend because serf is in universe. |
242 | + - Don't override LD_LIBRARY_PATH completely but prepend to it as to not |
243 | + break fakeroot. |
244 | + - Fix FTBFS against Python 2.7 by disabling some problematic tests. |
245 | + - debian/tools/Makefile: |
246 | + + Add APR_LIBS and use it when linking svn-make-config |
247 | + + svn_config_ensure() moved from libsvn_client/libsvn_client-1.la to |
248 | + libsvn_subr/libsvn_subr-1.la. |
249 | + |
250 | + -- Michael Bienia <geser@ubuntu.com> Fri, 28 Jan 2011 14:14:19 +0100 |
251 | + |
252 | +subversion (1.6.12dfsg-4) unstable; urgency=high |
253 | + |
254 | + * patches/loosen-sqlite-version-check: New patch: Relax the SQLite |
255 | + version check, to match the Debian sqlite3 packaging. |
256 | + (Closes: #608925) |
257 | + * patches/cve-2010-4539: New patch for CVE-2010-4539, fixing a remotely |
258 | + triggered crash in mod_dav_svn involving use of the SVNParentPath |
259 | + feature. (Closes: #608989) |
260 | + |
261 | + -- Peter Samuelson <peter@p12n.org> Wed, 05 Jan 2011 10:43:01 -0600 |
262 | + |
263 | subversion (1.6.12dfsg-3) unstable; urgency=medium |
264 | |
265 | * Apply two patches from upstream 1.6.15: |
266 | - - patches/server-memleak: New patch: fix some server-side memory leaks. |
267 | + - patches/server-memleak: New patch: fix some server-side memory |
268 | + leaks, including CVE-2010-4644. |
269 | - patches/no-wc1.7-check: New patch: Stop checking for being inside a |
270 | 1.7 working copy. The value is too low and the performance penalty |
271 | too high. |
272 | @@ -567,35 +624,6 @@ |
273 | |
274 | -- Matthias Klose <doko@ubuntu.com> Wed, 30 Jan 2008 12:45:05 +0100 |
275 | |
276 | -subversion (1.4.6dfsg1-1) unstable; urgency=low |
277 | - |
278 | - * New upstream version. |
279 | - * Build with db 4.6, to match apr-util. |
280 | - * patches/svn-clean-manpage: New patch, fix a small typo. (Closes: #441827) |
281 | - * patches/neon27: New patch from upstream trunk to support neon 0.27. |
282 | - - control: build-depend on libneon27-dev. |
283 | - - rules: no longer --disable-neon-version-check. |
284 | - * patches/ruby-newswig: Support swig 1.3.33. (Closes: #453166) |
285 | - * patches/python-memleak: New patch to fix a serious memory leak in the |
286 | - Python bindings. Thanks to Jelmer Vernooij. (Closes: #428755) |
287 | - * control: Policy 3.7.3. |
288 | - * control: spell 'Source-Version' as 'binary:Version' for political |
289 | - correctness. (Or for clarity.) |
290 | - * control: add appropriate Vcs-Svn and Vcs-Browser fields. |
291 | - * control: subversion-tools Recommends: rsync. (Closes: #459023) |
292 | - * patches/svn2cl: update svn2cl to 0.9 (from upstream trunk). |
293 | - * patches/commit-email: use original 'sendmail' commit-email.pl mode, |
294 | - rather than the direct SMTP feature. (Closes: #447824) |
295 | - * rules: do not run 'dh_testroot' or 'make extraclean' in clean rule. |
296 | - * rules: rewrite DEB_BUILD_OPTIONS support; remove 'notest' synonym, as |
297 | - the world seems to be standardizing on 'nocheck'. |
298 | - * rules: remove 'DEB_BUILD_OPTIONS=-j[N]' support, add support for the |
299 | - new 'dpkg-buildpackage -j[N]' feature. |
300 | - * rules: add an option to disable ruby bindings. Though it turns out |
301 | - we don't need it ... yet. |
302 | - |
303 | - -- Peter Samuelson <peter@p12n.org> Mon, 11 Feb 2008 23:49:02 -0600 |
304 | - |
305 | subversion (1.4.4dfsg1-1ubuntu5) hardy; urgency=medium |
306 | |
307 | * Add debian/patches/python-memleak: Fix major memory leak in the |
308 | |
309 | === modified file 'debian/patches/build-fixes' |
310 | --- debian/patches/build-fixes 2010-01-27 01:57:47 +0000 |
311 | +++ debian/patches/build-fixes 2011-03-22 11:15:25 +0000 |
312 | @@ -1,6 +1,6 @@ |
313 | --- a/build/generator/swig/checkout_swig_header.py |
314 | +++ b/build/generator/swig/checkout_swig_header.py |
315 | -@@ -20,15 +20,14 @@ |
316 | +@@ -20,15 +20,14 @@ class Generator(generator.swig.Generator |
317 | |
318 | def write_makefile_rules(self, makefile): |
319 | """Write makefile rules to checkout files""" |
320 | @@ -22,7 +22,7 @@ |
321 | % " ".join(checkout_locations)) |
322 | --- a/Makefile.in |
323 | +++ b/Makefile.in |
324 | -@@ -249,14 +249,14 @@ |
325 | +@@ -249,14 +249,14 @@ INSTALL_EXTRA_SWIG_PY=\ |
326 | |
327 | # The path to generated and complementary source files for the SWIG |
328 | # bindings. |
329 | @@ -42,7 +42,7 @@ |
330 | |
331 | ### Automate JAR creation using Makefile generator's javahl-java.jar |
332 | ### property. Enhance generator to support JAR installation. |
333 | -@@ -532,6 +532,7 @@ |
334 | +@@ -537,6 +537,7 @@ doc: doc-misc-docs doc-api doc-javahl |
335 | # Generate API documentation for the C libraries. |
336 | ### This could also generate POD for swig-perl, etc. |
337 | doc-api: |
338 | @@ -50,16 +50,7 @@ |
339 | ( cd $(top_srcdir) && \ |
340 | sed "s,\(OUTPUT_DIRECTORY *= *\),\1$(abs_builddir)/," \ |
341 | doc/doxygen.conf | doxygen - ) |
342 | -@@ -682,7 +683,7 @@ |
343 | - swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \ |
344 | - $(SWIG_PL_DIR)/native/Makefile |
345 | - swig-pl: $(swig-pl_DEPS) |
346 | -- if test "$(SWIG_PL_DIR)" != "$(SWIG_PL_SRC_DIR)"; then \ |
347 | -+ if test "$$(cd $(SWIG_PL_DIR);pwd)" != "$(SWIG_PL_SRC_DIR)"; then \ |
348 | - ln -sf $(SWIG_PL_SRC_DIR)/native/*.c $(SWIG_PL_DIR)/native; \ |
349 | - fi |
350 | - cd $(SWIG_PL_DIR)/native; $(MAKE) OPTIMIZE="" OTHERLDFLAGS="$(SWIG_LDFLAGS)" |
351 | -@@ -705,8 +706,7 @@ |
352 | +@@ -716,8 +717,7 @@ clean-swig-pl: |
353 | fi |
354 | for d in $(SWIG_PL_DIR)/libsvn_swig_perl; \ |
355 | do \ |
356 | @@ -69,7 +60,7 @@ |
357 | done |
358 | if [ -f "$(SWIG_PL_DIR)/native/Makefile" ]; then \ |
359 | cd $(SWIG_PL_DIR)/native; $(MAKE) clean; \ |
360 | -@@ -739,7 +739,7 @@ |
361 | +@@ -750,7 +750,7 @@ clean-swig-py: |
362 | fi |
363 | for d in $(SWIG_PY_DIR) $(SWIG_PY_DIR)/libsvn_swig_py; \ |
364 | do \ |
365 | @@ -78,7 +69,7 @@ |
366 | done |
367 | find $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) -name "*.pyc" -exec rm {} ';' |
368 | |
369 | -@@ -763,8 +763,7 @@ |
370 | +@@ -774,8 +774,7 @@ clean-swig-rb: |
371 | fi |
372 | for d in $(SWIG_RB_DIR) $(SWIG_RB_DIR)/libsvn_swig_ruby; \ |
373 | do \ |
374 | @@ -90,7 +81,7 @@ |
375 | extraclean-swig-rb: clean-swig-rb |
376 | --- a/build/generator/gen_make.py |
377 | +++ b/build/generator/gen_make.py |
378 | -@@ -183,9 +183,9 @@ |
379 | +@@ -183,9 +183,9 @@ class Generator(gen_base.GeneratorBase): |
380 | source_dir = build_path_dirname(source) |
381 | opts = self.swig.opts[objname.lang] |
382 | if not self.release_mode: |
383 | @@ -103,7 +94,7 @@ |
384 | ) |
385 | |
386 | self.ofile.write('\n') |
387 | -@@ -456,11 +456,11 @@ |
388 | +@@ -456,11 +456,11 @@ class Generator(gen_base.GeneratorBase): |
389 | self.ofile.write('%s: %s\n' % (objname, deps)) |
390 | cmd = objname.compile_cmd |
391 | if cmd: |
392 | @@ -120,7 +111,7 @@ |
393 | |
394 | --- a/build/generator/gen_base.py |
395 | +++ b/build/generator/gen_base.py |
396 | -@@ -284,7 +284,8 @@ |
397 | +@@ -284,7 +284,8 @@ class SourceFile(DependencyNode): |
398 | |
399 | class SWIGSource(SourceFile): |
400 | def __init__(self, filename): |
401 | @@ -132,7 +123,7 @@ |
402 | lang_abbrev = { |
403 | --- a/build/generator/swig/header_wrappers.py |
404 | +++ b/build/generator/swig/header_wrappers.py |
405 | -@@ -32,7 +32,7 @@ |
406 | +@@ -32,7 +32,7 @@ class Generator(generator.swig.Generator |
407 | """Write makefile rules for generating SWIG wrappers for Subversion |
408 | header files.""" |
409 | wrapper_fnames = [] |
410 | @@ -143,7 +134,7 @@ |
411 | for fname in self.includes: |
412 | --- a/configure.ac |
413 | +++ b/configure.ac |
414 | -@@ -1010,6 +1010,11 @@ |
415 | +@@ -1010,6 +1010,11 @@ SVN_CONFIG_SCRIPT(packages/solaris/pkgin |
416 | AC_SUBST(SVN_CONFIG_SCRIPT_FILES) |
417 | |
418 | AC_OUTPUT |
419 | @@ -157,7 +148,7 @@ |
420 | |
421 | --- a/build.conf |
422 | +++ b/build.conf |
423 | -@@ -648,13 +648,14 @@ |
424 | +@@ -648,13 +648,14 @@ libs = libsvn_test libsvn_repos libsvn_f |
425 | # ---------------------------------------------------------------------------- |
426 | # Tests for libsvn_subr |
427 | |
428 | |
429 | === added file 'debian/patches/change-range' |
430 | --- debian/patches/change-range 1970-01-01 00:00:00 +0000 |
431 | +++ debian/patches/change-range 2011-03-22 11:15:25 +0000 |
432 | @@ -0,0 +1,88 @@ |
433 | +Support -cA-B syntax on command line, from upstream trunk r1004727,1004746. |
434 | +This is pure convenience. -c12,15-20,25 is equivalent to -c12 -r14:20 -c25. |
435 | + |
436 | + |
437 | +--- a/subversion/svn/main.c |
438 | ++++ b/subversion/svn/main.c |
439 | +@@ -1212,7 +1212,7 @@ |
440 | + case 'c': |
441 | + { |
442 | + char *end; |
443 | +- svn_revnum_t changeno; |
444 | ++ svn_revnum_t changeno, changeno_end; |
445 | + svn_opt_revision_range_t *range; |
446 | + apr_array_header_t *change_revs = |
447 | + svn_cstring_split(opt_arg, ", \n\r\t\v", TRUE, pool); |
448 | +@@ -1236,7 +1236,22 @@ |
449 | + ### "{DATE}" and the special words. */ |
450 | + while (*change_str == 'r') |
451 | + change_str++; |
452 | +- changeno = strtol(change_str, &end, 10); |
453 | ++ changeno = changeno_end = strtol(change_str, &end, 10); |
454 | ++ if (end != change_str && *end == '-') |
455 | ++ { |
456 | ++ if (changeno < 0) |
457 | ++ { |
458 | ++ err = svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR, NULL, |
459 | ++ _("Negative number in range (%s)" |
460 | ++ " not supported with -c"), |
461 | ++ change_str); |
462 | ++ return svn_cmdline_handle_exit_error(err, pool, "svn: "); |
463 | ++ } |
464 | ++ change_str = end+1; |
465 | ++ while (*change_str == 'r') |
466 | ++ change_str++; |
467 | ++ changeno_end = strtol(change_str, &end, 10); |
468 | ++ } |
469 | + if (end == change_str || *end != '\0') |
470 | + { |
471 | + err = svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR, NULL, |
472 | +@@ -1254,19 +1269,28 @@ |
473 | + |
474 | + /* Figure out the range: |
475 | + -c N -> -r N-1:N |
476 | +- -c -N -> -r N:N-1 */ |
477 | +- range = apr_palloc(pool, sizeof(*range)); |
478 | ++ -c -N -> -r N:N-1 |
479 | ++ -c M-N -> -r M-1:N for M < N |
480 | ++ -c M-N -> -r M:N-1 for M > N |
481 | ++ -c -M-N -> error (too confusing/no valid use case) |
482 | ++ */ |
483 | + if (changeno > 0) |
484 | + { |
485 | +- range->start.value.number = changeno - 1; |
486 | +- range->end.value.number = changeno; |
487 | ++ if (changeno <= changeno_end) |
488 | ++ changeno--; |
489 | ++ else |
490 | ++ changeno_end--; |
491 | + } |
492 | + else |
493 | + { |
494 | + changeno = -changeno; |
495 | +- range->start.value.number = changeno; |
496 | +- range->end.value.number = changeno - 1; |
497 | ++ changeno_end = changeno - 1; |
498 | + } |
499 | ++ |
500 | ++ range = apr_palloc(pool, sizeof(*range)); |
501 | ++ range->start.value.number = changeno; |
502 | ++ range->end.value.number = changeno_end; |
503 | ++ |
504 | + opt_state.used_change_arg = TRUE; |
505 | + range->start.kind = svn_opt_revision_number; |
506 | + range->end.kind = svn_opt_revision_number; |
507 | +--- a/subversion/svn/log-cmd.c |
508 | ++++ b/subversion/svn/log-cmd.c |
509 | +@@ -481,9 +481,9 @@ |
510 | + range = APR_ARRAY_IDX(opt_state->revision_ranges, i, |
511 | + svn_opt_revision_range_t *); |
512 | + if (range->start.value.number < range->end.value.number) |
513 | +- range->start = range->end; |
514 | ++ range->start.value.number++; |
515 | + else |
516 | +- range->end = range->start; |
517 | ++ range->end.value.number++; |
518 | + } |
519 | + } |
520 | + |
521 | |
522 | === added file 'debian/patches/loosen-sqlite-version-check' |
523 | --- debian/patches/loosen-sqlite-version-check 1970-01-01 00:00:00 +0000 |
524 | +++ debian/patches/loosen-sqlite-version-check 2011-03-22 11:15:25 +0000 |
525 | @@ -0,0 +1,18 @@ |
526 | +The actual ABI compatibility of sqlite3 doesn't seem to depend on the |
527 | +patchlevel (the x in 3.7.x), so omit that in our sanity check here. |
528 | + |
529 | +This matters in Debian because the sqlite3 library package exports a |
530 | +slightly more liberal shlibs file than the library version itself. |
531 | + |
532 | + |
533 | +--- a/subversion/libsvn_subr/sqlite.c |
534 | ++++ b/subversion/libsvn_subr/sqlite.c |
535 | +@@ -486,7 +486,7 @@ static volatile svn_atomic_t sqlite_init |
536 | + static svn_error_t * |
537 | + init_sqlite(void *baton, apr_pool_t *pool) |
538 | + { |
539 | +- if (sqlite3_libversion_number() < SQLITE_VERSION_NUMBER) { |
540 | ++ if (sqlite3_libversion_number()/1000 < SQLITE_VERSION_NUMBER/1000) { |
541 | + return svn_error_createf(SVN_ERR_SQLITE_ERROR, NULL, |
542 | + _("SQLite compiled for %s, but running with %s"), |
543 | + SQLITE_VERSION, sqlite3_libversion()); |
544 | |
545 | === modified file 'debian/patches/series' |
546 | --- debian/patches/series 2011-01-05 23:01:25 +0000 |
547 | +++ debian/patches/series 2011-03-22 11:15:25 +0000 |
548 | @@ -21,3 +21,5 @@ |
549 | no-dbus-spam |
550 | svn2cl-upstream |
551 | kwallet-wid |
552 | +loosen-sqlite-version-check |
553 | +change-range |
554 | |
555 | === modified file 'debian/rules' |
556 | --- debian/rules 2011-01-05 22:45:51 +0000 |
557 | +++ debian/rules 2011-03-22 11:15:25 +0000 |
558 | @@ -156,7 +156,7 @@ |
559 | dh_testdir |
560 | |
561 | test -e patches || ln -s debian/patches patches |
562 | - mkdir -p $(DEB_BUILDDIR) |
563 | + mkdir -p $(DEB_BUILDDIR) $(HOME) |
564 | cd $(DEB_BUILDDIR) && \ |
565 | PYTHON=/usr/bin/python RUBY=/usr/bin/$(RUBY) \ |
566 | $(CURDIR)/configure $(confflags) |
567 | @@ -208,6 +208,8 @@ |
568 | $(call allpydbg, $(MAKE_B) -j1 autogen-swig) |
569 | ln -sf python$(PYDEFAULT) $(PY_DIR) |
570 | +$(MAKE_B) all tools |
571 | + # Run svn once, to make sure it populates $(HOME)/.subversion/* |
572 | + $(DEB_BUILDDIR)/subversion/svn/svn --version > /dev/null |
573 | $(call allpy, \ |
574 | $(MAKE_B) swig-py PYTHON=python$$v PYVER=$$v \ |
575 | PYTHON_INCLUDES=-I/usr/include/python$$v \ |
576 | @@ -266,7 +268,6 @@ |
577 | dh_testdir |
578 | dh_clean |
579 | $(RM) patches |
580 | - $(MAKE) -C debian/tools clean |
581 | ! [ -f $(DEB_BUILDDIR)/Makefile ] || $(MAKE_B) extraclean-swig distclean |
582 | $(RM) -r $(DEB_BUILDDIR) |
583 | $(RM) build-outputs.mk gen-make.opts subversion/svn_private_config.h.in |
584 | @@ -364,12 +365,6 @@ |
585 | javahl_javahdir=/usr/include/svn-javahl |
586 | endif |
587 | |
588 | - # Create our default configuration files to be installed in |
589 | - # /etc/subversion/ |
590 | - $(MAKE) -C debian/tools \ |
591 | - LD_LIBRARY_PATH="$(CURDIR)/debian/tmp/usr/lib$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}" \ |
592 | - DEB_SRCDIR=$(CURDIR) DEB_BUILDDIR=$(CURDIR)/$(DEB_BUILDDIR) |
593 | - |
594 | $(MAKE_B) install-swig-pl-lib \ |
595 | DESTDIR=$(CURDIR)/debian/tmp |
596 | $(MAKE) -C $(PERL_DIR) install \ |
597 | |
598 | === modified file 'debian/subversion.install' |
599 | --- debian/subversion.install 2009-06-06 22:57:04 +0000 |
600 | +++ debian/subversion.install 2011-03-22 11:15:25 +0000 |
601 | @@ -4,7 +4,7 @@ |
602 | debian/tmp/usr/share/man/man5 usr/share/man |
603 | debian/tmp/usr/share/man/man8 usr/share/man |
604 | |
605 | -debian/tools/svn-defaults/config etc/subversion |
606 | -debian/tools/svn-defaults/servers etc/subversion |
607 | +BUILD/dummy_home/.subversion/config etc/subversion |
608 | +BUILD/dummy_home/.subversion/servers etc/subversion |
609 | contrib/client-side/emacs/psvn.el usr/share/emacs/site-lisp |
610 | debian/etc/50psvn.el etc/emacs/site-start.d |
611 | |
612 | === removed directory 'debian/tools' |
613 | === removed file 'debian/tools/Makefile' |
614 | --- debian/tools/Makefile 2010-11-20 11:21:18 +0000 |
615 | +++ debian/tools/Makefile 1970-01-01 00:00:00 +0000 |
616 | @@ -1,21 +0,0 @@ |
617 | -APR_CFLAGS = `apr-config --cppflags --includes --cflags` |
618 | -APR_LIBS = `apr-config --ldflags --link-ld --libs` |
619 | -SVN_INC = -I$(DEB_SRCDIR)/subversion/include |
620 | -CFLAGS += -Wall \ |
621 | - $(SVN_INC) \ |
622 | - $(APR_CFLAGS) |
623 | - |
624 | -all: default-config |
625 | - |
626 | -default-config: clean svn-make-config |
627 | - ./svn-make-config |
628 | - |
629 | -svn-make-config: svn-make-config.o |
630 | - libtool --mode=link gcc $(APR_LIBS) svn-make-config.o $(DEB_BUILDDIR)/subversion/libsvn_subr/libsvn_subr-1.la -o svn-make-config |
631 | - |
632 | -clean: |
633 | - $(RM) svn-make-config svn-make-config.o |
634 | - rm -rf svn-defaults |
635 | - rm -rf .libs |
636 | - |
637 | -.PHONY: clean |
638 | |
639 | === removed file 'debian/tools/README' |
640 | --- debian/tools/README 2005-06-29 13:09:32 +0000 |
641 | +++ debian/tools/README 1970-01-01 00:00:00 +0000 |
642 | @@ -1,5 +0,0 @@ |
643 | -The files in this directory are used to create the default |
644 | -/etc/subversion/config and /etc/subversion/servers on Debian systems. The |
645 | -default configuration files are created by the subversion libraries. This |
646 | -ensures that new configuration options and changes to existing options are |
647 | -reflected in the default /etc/subversion/ files in a timely manner. |
648 | |
649 | === removed file 'debian/tools/svn-make-config.c' |
650 | --- debian/tools/svn-make-config.c 2005-06-29 13:09:32 +0000 |
651 | +++ debian/tools/svn-make-config.c 1970-01-01 00:00:00 +0000 |
652 | @@ -1,60 +0,0 @@ |
653 | -/* |
654 | - * Subversion will populate the user's ~/.subversion/ directory with |
655 | - * default configuration files if the directory does not exist. Some |
656 | - * of these same files are useful to system administrators who want to |
657 | - * put files in /etc/subversion/ to control site-wide configuration. |
658 | - * This program creates a default set of subversion config files in |
659 | - * the current directory. |
660 | - */ |
661 | - |
662 | -#include <apr.h> |
663 | -#include <apr_general.h> |
664 | -#include <apr_pools.h> |
665 | -#include <apr_file_io.h> |
666 | -#include <apr_file_info.h> |
667 | -#include <svn_config.h> |
668 | -#include <stdio.h> |
669 | - |
670 | -#define ROOT_DIR "svn-defaults" |
671 | - |
672 | -int |
673 | -main(int argc, char *argv[]) |
674 | -{ |
675 | - char *root; |
676 | - apr_pool_t *pool; |
677 | - apr_file_t *fptr; |
678 | - apr_finfo_t finfo; |
679 | - |
680 | - apr_initialize(); |
681 | - apr_pool_create(&pool, NULL); |
682 | - |
683 | - apr_file_open_stderr(&fptr, pool); |
684 | - |
685 | - if (argc != 1) |
686 | - { |
687 | - apr_file_printf(fptr, "Usage: %s\n", argv[0]); |
688 | - apr_file_printf(fptr, "Create a set of default config files" |
689 | - "in $PWD/" ROOT_DIR "\n"); |
690 | - exit(0); |
691 | - } |
692 | - |
693 | - root = apr_psprintf(pool, "%s/%s", getenv("PWD"), ROOT_DIR); |
694 | - |
695 | - if (!root) |
696 | - { |
697 | - apr_file_printf(fptr, "apr_psprintf failed\n"); |
698 | - exit(1); |
699 | - } |
700 | - |
701 | - if (APR_SUCCESS == apr_stat(&finfo, root, 0, pool)) |
702 | - { |
703 | - apr_file_printf(fptr, "%s exists\n", root); |
704 | - exit(1); |
705 | - } |
706 | - |
707 | - svn_config_ensure(root, pool); |
708 | - |
709 | - apr_terminate(); |
710 | - |
711 | - return 0; |
712 | -} |
713 | |
714 | === modified file 'subversion/bindings/javahl/native/Outputer.cpp' |
715 | --- subversion/bindings/javahl/native/Outputer.cpp 2009-06-06 22:57:04 +0000 |
716 | +++ subversion/bindings/javahl/native/Outputer.cpp 2011-03-22 11:15:25 +0000 |
717 | @@ -101,6 +101,10 @@ |
718 | if (JNIUtil::isJavaExceptionThrown()) |
719 | return SVN_NO_ERROR; |
720 | |
721 | + env->DeleteLocalRef(data); |
722 | + if (JNIUtil::isJavaExceptionThrown()) |
723 | + return SVN_NO_ERROR; |
724 | + |
725 | // return the number of bytes written |
726 | *len = written; |
727 | |
728 | |
729 | === modified file 'subversion/bindings/swig/perl/native/Makefile.PL.in' |
730 | --- subversion/bindings/swig/perl/native/Makefile.PL.in 2009-11-17 02:16:23 +0000 |
731 | +++ subversion/bindings/swig/perl/native/Makefile.PL.in 2011-03-22 11:15:25 +0000 |
732 | @@ -92,7 +92,7 @@ |
733 | my $module_c_files = join (' ',map { "svn_$_.c"} @modules); |
734 | my $module_make_commands = join ('',map {"\t\$(MAKE) -f Makefile.$_\n"} @modules); |
735 | |
736 | - my $fullperlrun = "$apr_shlib_path_var=" . join(':',@ldpaths); |
737 | + my $fullperlrun = "$apr_shlib_path_var=\${$apr_shlib_path_var}:" . join(':',@ldpaths); |
738 | |
739 | return <<"EOPOST"; |
740 | all :: modules |
741 | |
742 | === modified file 'subversion/bindings/swig/perl/native/core.c' |
743 | --- subversion/bindings/swig/perl/native/core.c 2011-01-05 22:59:03 +0000 |
744 | +++ subversion/bindings/swig/perl/native/core.c 2011-03-22 11:15:25 +0000 |
745 | @@ -33630,12 +33630,12 @@ |
746 | } while(0) /*@SWIG@*/; |
747 | /*@SWIG:/home/hwright/dev/release/roll/prefix/share/swig/1.3.36/perl5/perltypemaps.swg,64,%set_constant@*/ do { |
748 | SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_PATCH", TRUE | 0x2 | GV_ADDMULTI); |
749 | - sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(15))); |
750 | + sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(16))); |
751 | SvREADONLY_on(sv); |
752 | } while(0) /*@SWIG@*/; |
753 | /*@SWIG:/home/hwright/dev/release/roll/prefix/share/swig/1.3.36/perl5/perltypemaps.swg,64,%set_constant@*/ do { |
754 | SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_MICRO", TRUE | 0x2 | GV_ADDMULTI); |
755 | - sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(15))); |
756 | + sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(16))); |
757 | SvREADONLY_on(sv); |
758 | } while(0) /*@SWIG@*/; |
759 | /*@SWIG:/home/hwright/dev/release/roll/prefix/share/swig/1.3.36/perl5/perltypemaps.swg,64,%set_constant@*/ do { |
760 | @@ -33645,7 +33645,7 @@ |
761 | } while(0) /*@SWIG@*/; |
762 | /*@SWIG:/home/hwright/dev/release/roll/prefix/share/swig/1.3.36/perl5/perltypemaps.swg,64,%set_constant@*/ do { |
763 | SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_TAG", TRUE | 0x2 | GV_ADDMULTI); |
764 | - sv_setsv(sv, SWIG_FromCharPtr(" (r1038135)")); |
765 | + sv_setsv(sv, SWIG_FromCharPtr(" (r1073529)")); |
766 | SvREADONLY_on(sv); |
767 | } while(0) /*@SWIG@*/; |
768 | /*@SWIG:/home/hwright/dev/release/roll/prefix/share/swig/1.3.36/perl5/perltypemaps.swg,64,%set_constant@*/ do { |
769 | @@ -33655,7 +33655,7 @@ |
770 | } while(0) /*@SWIG@*/; |
771 | /*@SWIG:/home/hwright/dev/release/roll/prefix/share/swig/1.3.36/perl5/perltypemaps.swg,64,%set_constant@*/ do { |
772 | SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_REVISION", TRUE | 0x2 | GV_ADDMULTI); |
773 | - sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(1038135))); |
774 | + sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(1073529))); |
775 | SvREADONLY_on(sv); |
776 | } while(0) /*@SWIG@*/; |
777 | /*@SWIG:/home/hwright/dev/release/roll/prefix/share/swig/1.3.36/perl5/perltypemaps.swg,64,%set_constant@*/ do { |
778 | |
779 | === modified file 'subversion/bindings/swig/python/core.c' |
780 | --- subversion/bindings/swig/python/core.c 2011-01-05 22:59:03 +0000 |
781 | +++ subversion/bindings/swig/python/core.c 2011-03-22 11:15:25 +0000 |
782 | @@ -25569,12 +25569,12 @@ |
783 | SWIG_Python_SetConstant(d, "SVN_ALLOCATOR_RECOMMENDED_MAX_FREE",SWIG_From_long((long)((4096*1024)))); |
784 | SWIG_Python_SetConstant(d, "SVN_VER_MAJOR",SWIG_From_long((long)(1))); |
785 | SWIG_Python_SetConstant(d, "SVN_VER_MINOR",SWIG_From_long((long)(6))); |
786 | - SWIG_Python_SetConstant(d, "SVN_VER_PATCH",SWIG_From_long((long)(15))); |
787 | - SWIG_Python_SetConstant(d, "SVN_VER_MICRO",SWIG_From_long((long)(15))); |
788 | + SWIG_Python_SetConstant(d, "SVN_VER_PATCH",SWIG_From_long((long)(16))); |
789 | + SWIG_Python_SetConstant(d, "SVN_VER_MICRO",SWIG_From_long((long)(16))); |
790 | SWIG_Python_SetConstant(d, "SVN_VER_LIBRARY",SWIG_From_long((long)(1))); |
791 | - SWIG_Python_SetConstant(d, "SVN_VER_TAG",SWIG_FromCharPtr(" (r1038135)")); |
792 | + SWIG_Python_SetConstant(d, "SVN_VER_TAG",SWIG_FromCharPtr(" (r1073529)")); |
793 | SWIG_Python_SetConstant(d, "SVN_VER_NUMTAG",SWIG_FromCharPtr("")); |
794 | - SWIG_Python_SetConstant(d, "SVN_VER_REVISION",SWIG_From_long((long)(1038135))); |
795 | + SWIG_Python_SetConstant(d, "SVN_VER_REVISION",SWIG_From_long((long)(1073529))); |
796 | SWIG_Python_SetConstant(d, "svn_prop_entry_kind",SWIG_From_long((long)(svn_prop_entry_kind))); |
797 | SWIG_Python_SetConstant(d, "svn_prop_wc_kind",SWIG_From_long((long)(svn_prop_wc_kind))); |
798 | SWIG_Python_SetConstant(d, "svn_prop_regular_kind",SWIG_From_long((long)(svn_prop_regular_kind))); |
799 | |
800 | === modified file 'subversion/bindings/swig/ruby/core.c' |
801 | --- subversion/bindings/swig/ruby/core.c 2011-01-05 22:59:03 +0000 |
802 | +++ subversion/bindings/swig/ruby/core.c 2011-03-22 11:15:25 +0000 |
803 | @@ -29414,12 +29414,12 @@ |
804 | rb_define_module_function(mCore, "svn_pool_create", _wrap_svn_pool_create, -1); |
805 | rb_define_const(mCore, "SVN_VER_MAJOR", SWIG_From_int((int)(1))); |
806 | rb_define_const(mCore, "SVN_VER_MINOR", SWIG_From_int((int)(6))); |
807 | - rb_define_const(mCore, "SVN_VER_PATCH", SWIG_From_int((int)(15))); |
808 | - rb_define_const(mCore, "SVN_VER_MICRO", SWIG_From_int((int)(15))); |
809 | + rb_define_const(mCore, "SVN_VER_PATCH", SWIG_From_int((int)(16))); |
810 | + rb_define_const(mCore, "SVN_VER_MICRO", SWIG_From_int((int)(16))); |
811 | rb_define_const(mCore, "SVN_VER_LIBRARY", SWIG_From_int((int)(1))); |
812 | - rb_define_const(mCore, "SVN_VER_TAG", SWIG_FromCharPtr(" (r1038135)")); |
813 | + rb_define_const(mCore, "SVN_VER_TAG", SWIG_FromCharPtr(" (r1073529)")); |
814 | rb_define_const(mCore, "SVN_VER_NUMTAG", SWIG_FromCharPtr("")); |
815 | - rb_define_const(mCore, "SVN_VER_REVISION", SWIG_From_int((int)(1038135))); |
816 | + rb_define_const(mCore, "SVN_VER_REVISION", SWIG_From_int((int)(1073529))); |
817 | |
818 | cSvn_version_t.klass = rb_define_class_under(mCore, "Svn_version_t", rb_cObject); |
819 | SWIG_TypeClientData(SWIGTYPE_p_svn_version_t, (void *) &cSvn_version_t); |
820 | |
821 | === modified file 'subversion/bindings/swig/ruby/test/util.rb' |
822 | --- subversion/bindings/swig/ruby/test/util.rb 2009-11-17 02:16:23 +0000 |
823 | +++ subversion/bindings/swig/ruby/test/util.rb 2011-03-22 11:15:25 +0000 |
824 | @@ -232,6 +232,9 @@ |
825 | @svnserve_port = port |
826 | @repos_svnserve_uri = |
827 | "svn://#{@svnserve_host}:#{@svnserve_port}#{@full_repos_path}" |
828 | + # Avoid a race by waiting a short time for svnserve to start up. |
829 | + # Without this, tests can fail with "Connection refused" errors. |
830 | + sleep 0.1 |
831 | break |
832 | end |
833 | end |
834 | |
835 | === modified file 'subversion/include/svn_version.h' |
836 | --- subversion/include/svn_version.h 2011-01-05 22:59:03 +0000 |
837 | +++ subversion/include/svn_version.h 2011-03-22 11:15:25 +0000 |
838 | @@ -66,7 +66,7 @@ |
839 | * |
840 | * @since New in 1.1. |
841 | */ |
842 | -#define SVN_VER_PATCH 15 |
843 | +#define SVN_VER_PATCH 16 |
844 | |
845 | |
846 | /** @deprecated Provided for backward compatibility with the 1.0 API. */ |
847 | @@ -89,7 +89,7 @@ |
848 | * |
849 | * Always change this at the same time as SVN_VER_NUMTAG. |
850 | */ |
851 | -#define SVN_VER_TAG " (r1038135)" |
852 | +#define SVN_VER_TAG " (r1073529)" |
853 | |
854 | |
855 | /** Number tag: a string describing the version. |
856 | @@ -115,7 +115,7 @@ |
857 | * When rolling a tarball, we automatically replace it with what we |
858 | * guess to be the correct revision number. |
859 | */ |
860 | -#define SVN_VER_REVISION 1038135 |
861 | +#define SVN_VER_REVISION 1073529 |
862 | |
863 | |
864 | |
865 | /* Version strings composed from the above definitions. */ |
866 | |
867 | === modified file 'subversion/libsvn_client/merge.c' |
868 | --- subversion/libsvn_client/merge.c 2011-01-05 22:59:03 +0000 |
869 | +++ subversion/libsvn_client/merge.c 2011-03-22 11:15:25 +0000 |
870 | @@ -502,7 +502,9 @@ |
871 | } |
872 | |
873 | /* Record a tree conflict in the WC, unless this is a dry run or a record- |
874 | - * only merge. |
875 | + * only merge, or if a tree conflict is already flagged for the VICTIM_PATH. |
876 | + * (The latter can happen if a merge-tracking-aware merge is doing multiple |
877 | + * editor drives because of a gap in the range of eligible revisions.) |
878 | * |
879 | * The tree conflict, with its victim specified by VICTIM_PATH, is |
880 | * assumed to have happened during a merge using merge baton MERGE_B. |
881 | @@ -523,16 +525,22 @@ |
882 | svn_wc_conflict_action_t action, |
883 | svn_wc_conflict_reason_t reason) |
884 | { |
885 | + svn_wc_conflict_description_t *existing_conflict; |
886 | svn_wc_conflict_description_t *conflict; |
887 | |
888 | if (merge_b->record_only || merge_b->dry_run) |
889 | return SVN_NO_ERROR; |
890 | |
891 | - /* Construct the new conflict first to get the proper conflict->path */ |
892 | - SVN_ERR(make_tree_conflict(&conflict, merge_b, adm_access, victim_path, |
893 | - node_kind, action, reason)); |
894 | + SVN_ERR(svn_wc__get_tree_conflict(&existing_conflict, victim_path, |
895 | + adm_access, merge_b->pool)); |
896 | + if (existing_conflict == NULL) |
897 | + { |
898 | + /* There is no existing tree conflict so it is safe to add one. */ |
899 | + SVN_ERR(make_tree_conflict(&conflict, merge_b, adm_access, victim_path, |
900 | + node_kind, action, reason)); |
901 | + SVN_ERR(svn_wc__add_tree_conflict(conflict, adm_access, merge_b->pool)); |
902 | + } |
903 | |
904 | - SVN_ERR(svn_wc__add_tree_conflict(conflict, adm_access, merge_b->pool)); |
905 | return SVN_NO_ERROR; |
906 | } |
907 | |
908 | |
909 | === modified file 'subversion/libsvn_fs/fs-loader.c' |
910 | --- subversion/libsvn_fs/fs-loader.c 2009-11-17 02:16:23 +0000 |
911 | +++ subversion/libsvn_fs/fs-loader.c 2011-03-22 11:15:25 +0000 |
912 | @@ -658,6 +658,7 @@ |
913 | svn_fs_t *fs; |
914 | const char *fs_path; |
915 | |
916 | + *new_rev = SVN_INVALID_REVNUM; |
917 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, pool)); |
918 | fs = svn_fs_root_fs(txn_root); |
919 | fs_path = svn_fs_path(fs, pool); |
920 | |
921 | === modified file 'subversion/libsvn_fs_fs/fs_fs.c' |
922 | --- subversion/libsvn_fs_fs/fs_fs.c 2011-01-05 22:59:03 +0000 |
923 | +++ subversion/libsvn_fs_fs/fs_fs.c 2011-03-22 11:15:25 +0000 |
924 | @@ -5903,13 +5903,19 @@ |
925 | /* Update the 'current' file. */ |
926 | SVN_ERR(write_final_current(cb->fs, cb->txn->id, new_rev, start_node_id, |
927 | start_copy_id, pool)); |
928 | + |
929 | + /* At this point the new revision is committed and globally visible |
930 | + so let the caller know it succeeded by giving it the new revision |
931 | + number, which fulfills svn_fs_commit_txn() contract. Any errors |
932 | + after this point do not change the fact that a new revision was |
933 | + created. */ |
934 | + *cb->new_rev_p = new_rev; |
935 | + |
936 | ffd->youngest_rev_cache = new_rev; |
937 | |
938 | /* Remove this transaction directory. */ |
939 | SVN_ERR(svn_fs_fs__purge_txn(cb->fs, cb->txn->id, pool)); |
940 | |
941 | - *cb->new_rev_p = new_rev; |
942 | - |
943 | return SVN_NO_ERROR; |
944 | } |
945 | |
946 | |
947 | === modified file 'subversion/libsvn_ra_neon/mergeinfo.c' |
948 | --- subversion/libsvn_ra_neon/mergeinfo.c 2009-11-17 02:16:23 +0000 |
949 | +++ subversion/libsvn_ra_neon/mergeinfo.c 2011-03-22 11:15:25 +0000 |
950 | @@ -171,6 +171,8 @@ |
951 | static const char minfo_report_tail[] = |
952 | "</S:" SVN_DAV__MERGEINFO_REPORT ">" DEBUG_CR; |
953 | |
954 | + *catalog = NULL; |
955 | + |
956 | /* Construct the request body. */ |
957 | svn_stringbuf_appendcstr(request_body, minfo_report_head); |
958 | svn_stringbuf_appendcstr(request_body, |
959 | @@ -237,7 +239,7 @@ |
960 | FALSE, |
961 | pool)); |
962 | |
963 | - if (mb.err == SVN_NO_ERROR) |
964 | + if (mb.err == SVN_NO_ERROR && apr_hash_count(mb.catalog)) |
965 | *catalog = mb.catalog; |
966 | |
967 | return mb.err; |
968 | |
969 | === modified file 'subversion/libsvn_ra_neon/options.c' |
970 | --- subversion/libsvn_ra_neon/options.c 2009-11-17 02:16:23 +0000 |
971 | +++ subversion/libsvn_ra_neon/options.c 2011-03-22 11:15:25 +0000 |
972 | @@ -110,6 +110,23 @@ |
973 | |
974 | |
975 | /** Capabilities exchange. */ |
976 | |
977 | +/* Return TRUE iff STR exactly matches any of the elements of LIST. */ |
978 | +static svn_boolean_t |
979 | +match_list(const char *str, const apr_array_header_t *list) |
980 | +{ |
981 | + int i; |
982 | + |
983 | + for (i = 0; i < list->nelts; i++) |
984 | + { |
985 | + const char *this_str = APR_ARRAY_IDX(list, i, char *); |
986 | + |
987 | + if (strcmp(this_str, str) == 0) |
988 | + return TRUE; |
989 | + } |
990 | + |
991 | + return FALSE; |
992 | +} |
993 | + |
994 | /* Both server and repository support the capability. */ |
995 | static const char *capability_yes = "yes"; |
996 | /* Either server or repository does not support the capability. */ |
997 | @@ -167,22 +184,21 @@ |
998 | slightly more efficiently, but that wouldn't be worth it |
999 | until we have many more capabilities. */ |
1000 | |
1001 | - if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_DEPTH, vals)) |
1002 | + if (match_list(SVN_DAV_NS_DAV_SVN_DEPTH, vals)) |
1003 | apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_DEPTH, |
1004 | APR_HASH_KEY_STRING, capability_yes); |
1005 | |
1006 | - if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_MERGEINFO, vals)) |
1007 | + if (match_list(SVN_DAV_NS_DAV_SVN_MERGEINFO, vals)) |
1008 | /* The server doesn't know what repository we're referring |
1009 | to, so it can't just say capability_yes. */ |
1010 | apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_MERGEINFO, |
1011 | APR_HASH_KEY_STRING, capability_server_yes); |
1012 | |
1013 | - if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_LOG_REVPROPS, vals)) |
1014 | + if (match_list(SVN_DAV_NS_DAV_SVN_LOG_REVPROPS, vals)) |
1015 | apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_LOG_REVPROPS, |
1016 | APR_HASH_KEY_STRING, capability_yes); |
1017 | |
1018 | - if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_PARTIAL_REPLAY, |
1019 | - vals)) |
1020 | + if (match_list(SVN_DAV_NS_DAV_SVN_PARTIAL_REPLAY, vals)) |
1021 | apr_hash_set(ras->capabilities, SVN_RA_CAPABILITY_PARTIAL_REPLAY, |
1022 | APR_HASH_KEY_STRING, capability_yes); |
1023 | } |
1024 | |
1025 | === modified file 'subversion/libsvn_ra_serf/mergeinfo.c' |
1026 | --- subversion/libsvn_ra_serf/mergeinfo.c 2011-01-05 22:45:51 +0000 |
1027 | +++ subversion/libsvn_ra_serf/mergeinfo.c 2011-03-22 11:15:25 +0000 |
1028 | @@ -238,6 +238,8 @@ |
1029 | const char *relative_url, *basecoll_url; |
1030 | const char *path; |
1031 | |
1032 | + *catalog = NULL; |
1033 | + |
1034 | SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session, |
1035 | NULL, NULL, revision, NULL, pool)); |
1036 | |
1037 | @@ -297,7 +299,7 @@ |
1038 | else |
1039 | SVN_ERR(err); |
1040 | |
1041 | - if (mergeinfo_ctx->done) |
1042 | + if (mergeinfo_ctx->done && apr_hash_count(mergeinfo_ctx->result_catalog)) |
1043 | *catalog = mergeinfo_ctx->result_catalog; |
1044 | |
1045 | return SVN_NO_ERROR; |
1046 | |
1047 | === modified file 'subversion/libsvn_ra_serf/serf.c' |
1048 | --- subversion/libsvn_ra_serf/serf.c 2011-01-05 22:45:51 +0000 |
1049 | +++ subversion/libsvn_ra_serf/serf.c 2011-03-22 11:15:25 +0000 |
1050 | @@ -67,6 +67,22 @@ |
1051 | apr_pool_t *pool; |
1052 | }; |
1053 | |
1054 | +/* Return TRUE iff STR exactly matches any of the elements of LIST. */ |
1055 | +static svn_boolean_t |
1056 | +match_list(const char *str, const apr_array_header_t *list) |
1057 | +{ |
1058 | + int i; |
1059 | + |
1060 | + for (i = 0; i < list->nelts; i++) |
1061 | + { |
1062 | + const char *this_str = APR_ARRAY_IDX(list, i, char *); |
1063 | + |
1064 | + if (strcmp(this_str, str) == 0) |
1065 | + return TRUE; |
1066 | + } |
1067 | + |
1068 | + return FALSE; |
1069 | +} |
1070 | |
1071 | /* This implements serf_bucket_headers_do_callback_fn_t. |
1072 | * BATON is a 'struct capabilities_response_baton *'. |
1073 | @@ -91,13 +107,13 @@ |
1074 | efficiently, but that wouldn't be worth it until we have many |
1075 | more capabilities. */ |
1076 | |
1077 | - if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_DEPTH, vals)) |
1078 | + if (match_list(SVN_DAV_NS_DAV_SVN_DEPTH, vals)) |
1079 | { |
1080 | apr_hash_set(crb->capabilities, SVN_RA_CAPABILITY_DEPTH, |
1081 | APR_HASH_KEY_STRING, capability_yes); |
1082 | } |
1083 | |
1084 | - if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_MERGEINFO, vals)) |
1085 | + if (match_list(SVN_DAV_NS_DAV_SVN_MERGEINFO, vals)) |
1086 | { |
1087 | /* The server doesn't know what repository we're referring |
1088 | to, so it can't just say capability_yes. */ |
1089 | @@ -105,13 +121,13 @@ |
1090 | APR_HASH_KEY_STRING, capability_server_yes); |
1091 | } |
1092 | |
1093 | - if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_LOG_REVPROPS, vals)) |
1094 | + if (match_list(SVN_DAV_NS_DAV_SVN_LOG_REVPROPS, vals)) |
1095 | { |
1096 | apr_hash_set(crb->capabilities, SVN_RA_CAPABILITY_LOG_REVPROPS, |
1097 | APR_HASH_KEY_STRING, capability_yes); |
1098 | } |
1099 | |
1100 | - if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_PARTIAL_REPLAY, vals)) |
1101 | + if (match_list(SVN_DAV_NS_DAV_SVN_PARTIAL_REPLAY, vals)) |
1102 | { |
1103 | apr_hash_set(crb->capabilities, SVN_RA_CAPABILITY_PARTIAL_REPLAY, |
1104 | APR_HASH_KEY_STRING, capability_yes); |
1105 | |
1106 | === modified file 'subversion/libsvn_ra_serf/update.c' |
1107 | --- subversion/libsvn_ra_serf/update.c 2011-01-05 22:59:03 +0000 |
1108 | +++ subversion/libsvn_ra_serf/update.c 2011-03-22 11:15:25 +0000 |
1109 | @@ -1633,7 +1633,8 @@ |
1110 | } |
1111 | else if (state == IGNORE_PROP_NAME) |
1112 | { |
1113 | - push_state(parser, ctx, PROP); |
1114 | + report_info_t *info = push_state(parser, ctx, PROP); |
1115 | + info->prop_encoding = svn_xml_get_attr_value("encoding", attrs); |
1116 | } |
1117 | else if (state == NEED_PROP_NAME) |
1118 | { |
1119 | @@ -1643,6 +1644,7 @@ |
1120 | |
1121 | info->prop_ns = name.namespace; |
1122 | info->prop_name = apr_pstrdup(parser->state->pool, name.name); |
1123 | + info->prop_encoding = svn_xml_get_attr_value("encoding", attrs); |
1124 | info->prop_val = NULL; |
1125 | info->prop_val_len = 0; |
1126 | } |
1127 | |
1128 | === modified file 'subversion/libsvn_repos/fs-wrap.c' |
1129 | --- subversion/libsvn_repos/fs-wrap.c 2009-11-17 02:16:23 +0000 |
1130 | +++ subversion/libsvn_repos/fs-wrap.c 2011-03-22 11:15:25 +0000 |
1131 | @@ -43,6 +43,8 @@ |
1132 | svn_error_t *err; |
1133 | const char *txn_name; |
1134 | |
1135 | + *new_rev = SVN_INVALID_REVNUM; |
1136 | + |
1137 | /* Run pre-commit hooks. */ |
1138 | SVN_ERR(svn_fs_txn_name(&txn_name, txn, pool)); |
1139 | SVN_ERR(svn_repos__hooks_pre_commit(repos, txn_name, pool)); |
1140 | |
1141 | === modified file 'subversion/libsvn_repos/log.c' |
1142 | --- subversion/libsvn_repos/log.c 2011-01-05 22:59:03 +0000 |
1143 | +++ subversion/libsvn_repos/log.c 2011-03-22 11:15:25 +0000 |
1144 | @@ -1043,6 +1043,7 @@ |
1145 | { |
1146 | svn_fs_root_t *root; |
1147 | apr_pool_t *iterpool; |
1148 | + svn_error_t *err; |
1149 | int i; |
1150 | |
1151 | /* Create a history object for each path so we can walk through |
1152 | @@ -1084,7 +1085,6 @@ |
1153 | |
1154 | if (i < MAX_OPEN_HISTORIES) |
1155 | { |
1156 | - svn_error_t *err; |
1157 | err = svn_fs_node_history(&info->hist, root, this_path, pool); |
1158 | if (err |
1159 | && ignore_missing_locations |
1160 | @@ -1106,10 +1106,20 @@ |
1161 | info->newpool = NULL; |
1162 | } |
1163 | |
1164 | - SVN_ERR(get_history(info, fs, |
1165 | - strict_node_history, |
1166 | - authz_read_func, authz_read_baton, |
1167 | - hist_start, pool)); |
1168 | + err = get_history(info, fs, |
1169 | + strict_node_history, |
1170 | + authz_read_func, authz_read_baton, |
1171 | + hist_start, pool); |
1172 | + if (err |
1173 | + && ignore_missing_locations |
1174 | + && (err->apr_err == SVN_ERR_FS_NOT_FOUND || |
1175 | + err->apr_err == SVN_ERR_FS_NOT_DIRECTORY || |
1176 | + err->apr_err == SVN_ERR_FS_NO_SUCH_REVISION)) |
1177 | + { |
1178 | + svn_error_clear(err); |
1179 | + continue; |
1180 | + } |
1181 | + SVN_ERR(err); |
1182 | APR_ARRAY_PUSH(*histories, struct path_info *) = info; |
1183 | } |
1184 | svn_pool_destroy(iterpool); |
1185 | |
1186 | === modified file 'subversion/libsvn_repos/rev_hunt.c' |
1187 | --- subversion/libsvn_repos/rev_hunt.c 2011-01-05 22:59:03 +0000 |
1188 | +++ subversion/libsvn_repos/rev_hunt.c 2011-03-22 11:15:25 +0000 |
1189 | @@ -1090,8 +1090,8 @@ |
1190 | |
1191 | /* We switch between two pools while looping, since we need information from |
1192 | the last iteration to be available. */ |
1193 | - iterpool = svn_pool_create(result_pool); |
1194 | - last_pool = svn_pool_create(result_pool); |
1195 | + iterpool = svn_pool_create(scratch_pool); |
1196 | + last_pool = svn_pool_create(scratch_pool); |
1197 | |
1198 | /* The path had better be a file in this revision. */ |
1199 | SVN_ERR(svn_fs_revision_root(&root, repos->fs, end, scratch_pool)); |
1200 | @@ -1170,6 +1170,7 @@ |
1201 | } |
1202 | |
1203 | svn_pool_destroy(iterpool); |
1204 | + svn_pool_destroy(last_pool); |
1205 | |
1206 | return SVN_NO_ERROR; |
1207 | } |
1208 | |
1209 | === modified file 'subversion/libsvn_subr/error.c' |
1210 | --- subversion/libsvn_subr/error.c 2009-11-17 02:16:23 +0000 |
1211 | +++ subversion/libsvn_subr/error.c 2011-03-22 11:15:25 +0000 |
1212 | @@ -36,7 +36,15 @@ |
1213 | #include "svn_private_config.h" |
1214 | |
1215 | |
1216 | |
1217 | -/*** Helpers for creating errors ***/ |
1218 | +/* |
1219 | + * Undefine the helpers for creating errors. |
1220 | + * |
1221 | + * *NOTE*: Any use of these functions in any other function may need |
1222 | + * to call svn_error__locate() because the macro that would otherwise |
1223 | + * do this is being undefined and the filename and line number will |
1224 | + * not be properly set in the static error_file and error_line |
1225 | + * variables. |
1226 | + */ |
1227 | #undef svn_error_create |
1228 | #undef svn_error_createf |
1229 | #undef svn_error_quick_wrap |
1230 | @@ -504,6 +512,11 @@ |
1231 | if (!can_return) |
1232 | abort(); /* Nothing else we can do as a library */ |
1233 | |
1234 | + /* The filename and line number of the error source needs to be set |
1235 | + here because svn_error_createf() is not the macro defined in |
1236 | + svn_error.h but the real function. */ |
1237 | + svn_error__locate(file, line); |
1238 | + |
1239 | if (expr) |
1240 | return svn_error_createf(SVN_ERR_ASSERTION_FAIL, NULL, |
1241 | _("In file '%s' line %d: assertion failed (%s)"), |
1242 | |
1243 | === modified file 'subversion/libsvn_wc/props.c' |
1244 | --- subversion/libsvn_wc/props.c 2011-01-05 22:59:03 +0000 |
1245 | +++ subversion/libsvn_wc/props.c 2011-03-22 11:15:25 +0000 |
1246 | @@ -1135,6 +1135,7 @@ |
1247 | const svn_string_t *working_val, |
1248 | svn_wc_conflict_resolver_func_t conflict_func, |
1249 | void *conflict_baton, |
1250 | + svn_boolean_t dry_run, |
1251 | apr_pool_t *pool) |
1252 | { |
1253 | svn_wc_conflict_result_t *result = NULL; |
1254 | @@ -1143,7 +1144,7 @@ |
1255 | svn_wc_conflict_description_t *cdesc; |
1256 | const char *dirpath = svn_path_dirname(path, filepool); |
1257 | |
1258 | - if (! conflict_func) |
1259 | + if (! conflict_func || dry_run) |
1260 | { |
1261 | /* Just postpone the conflict. */ |
1262 | *conflict_remains = TRUE; |
1263 | @@ -1364,6 +1365,7 @@ |
1264 | const svn_string_t *new_val, |
1265 | svn_wc_conflict_resolver_func_t conflict_func, |
1266 | void *conflict_baton, |
1267 | + svn_boolean_t dry_run, |
1268 | svn_wc_adm_access_t *adm_access, |
1269 | apr_pool_t *pool) |
1270 | |
1271 | @@ -1400,7 +1402,7 @@ |
1272 | NULL, new_val, |
1273 | base_val, working_val, |
1274 | conflict_func, conflict_baton, |
1275 | - pool)); |
1276 | + dry_run, pool)); |
1277 | if (got_conflict) |
1278 | *conflict = svn_string_createf |
1279 | (pool, |
1280 | @@ -1416,7 +1418,8 @@ |
1281 | is_dir, propname, |
1282 | working_props, NULL, new_val, |
1283 | base_val, NULL, |
1284 | - conflict_func, conflict_baton, pool)); |
1285 | + conflict_func, conflict_baton, |
1286 | + dry_run, pool)); |
1287 | if (got_conflict) |
1288 | *conflict = svn_string_createf |
1289 | (pool, _("Trying to create property '%s' with value '%s',\n" |
1290 | @@ -1459,6 +1462,7 @@ |
1291 | const svn_string_t *old_val, |
1292 | svn_wc_conflict_resolver_func_t conflict_func, |
1293 | void *conflict_baton, |
1294 | + svn_boolean_t dry_run, |
1295 | svn_wc_adm_access_t *adm_access, |
1296 | apr_pool_t *pool) |
1297 | { |
1298 | @@ -1489,7 +1493,7 @@ |
1299 | old_val, NULL, |
1300 | base_val, working_val, |
1301 | conflict_func, conflict_baton, |
1302 | - pool)); |
1303 | + dry_run, pool)); |
1304 | if (got_conflict) |
1305 | *conflict = svn_string_createf |
1306 | (pool, |
1307 | @@ -1510,7 +1514,8 @@ |
1308 | is_dir, propname, |
1309 | working_props, old_val, NULL, |
1310 | base_val, working_val, |
1311 | - conflict_func, conflict_baton, pool)); |
1312 | + conflict_func, conflict_baton, |
1313 | + dry_run, pool)); |
1314 | if (got_conflict) |
1315 | *conflict = svn_string_createf |
1316 | (pool, |
1317 | @@ -1542,6 +1547,7 @@ |
1318 | const svn_string_t *new_val, |
1319 | svn_wc_conflict_resolver_func_t conflict_func, |
1320 | void *conflict_baton, |
1321 | + svn_boolean_t dry_run, |
1322 | svn_wc_adm_access_t *adm_access, |
1323 | apr_pool_t *pool) |
1324 | { |
1325 | @@ -1583,7 +1589,7 @@ |
1326 | old_val, new_val, |
1327 | base_val, working_val, |
1328 | conflict_func, conflict_baton, |
1329 | - pool)); |
1330 | + dry_run, pool)); |
1331 | if (got_conflict) |
1332 | *conflict = svn_string_createf |
1333 | (pool, |
1334 | @@ -1648,6 +1654,7 @@ |
1335 | const svn_string_t *new_val, |
1336 | svn_wc_conflict_resolver_func_t conflict_func, |
1337 | void *conflict_baton, |
1338 | + svn_boolean_t dry_run, |
1339 | svn_wc_adm_access_t *adm_access, |
1340 | apr_pool_t *pool) |
1341 | { |
1342 | @@ -1671,7 +1678,7 @@ |
1343 | old_val, new_val, |
1344 | base_val, working_val, |
1345 | conflict_func, conflict_baton, |
1346 | - pool)); |
1347 | + dry_run, pool)); |
1348 | if (got_conflict) |
1349 | { |
1350 | /* Describe the conflict, referring to base_val as well as |
1351 | @@ -1746,6 +1753,7 @@ |
1352 | const svn_string_t *new_val, |
1353 | svn_wc_conflict_resolver_func_t conflict_func, |
1354 | void *conflict_baton, |
1355 | + svn_boolean_t dry_run, |
1356 | svn_wc_adm_access_t *adm_access, |
1357 | apr_pool_t *pool) |
1358 | { |
1359 | @@ -1764,8 +1772,8 @@ |
1360 | working_props, conflict, |
1361 | propname, base_val, old_val, |
1362 | new_val, conflict_func, |
1363 | - conflict_baton, adm_access, |
1364 | - pool)); |
1365 | + conflict_baton, |
1366 | + dry_run, adm_access, pool)); |
1367 | } |
1368 | else |
1369 | { |
1370 | @@ -1776,8 +1784,8 @@ |
1371 | working_props, conflict, |
1372 | propname, base_val, old_val, |
1373 | new_val, conflict_func, |
1374 | - conflict_baton, adm_access, |
1375 | - pool)); |
1376 | + conflict_baton, |
1377 | + dry_run, adm_access, pool)); |
1378 | } |
1379 | |
1380 | return SVN_NO_ERROR; |
1381 | @@ -1862,21 +1870,21 @@ |
1382 | working_props, &conflict, |
1383 | propname, base_val, to_val, |
1384 | conflict_func, conflict_baton, |
1385 | - adm_access, pool)); |
1386 | + dry_run, adm_access, pool)); |
1387 | |
1388 | else if (! to_val) /* delete an existing property */ |
1389 | SVN_ERR(apply_single_prop_delete(is_normal ? state : NULL, path, is_dir, |
1390 | working_props, &conflict, |
1391 | propname, base_val, from_val, |
1392 | conflict_func, conflict_baton, |
1393 | - adm_access, pool)); |
1394 | + dry_run, adm_access, pool)); |
1395 | |
1396 | else /* changing an existing property */ |
1397 | SVN_ERR(apply_single_prop_change(is_normal ? state : NULL, path, is_dir, |
1398 | working_props, &conflict, |
1399 | propname, base_val, from_val, to_val, |
1400 | conflict_func, conflict_baton, |
1401 | - adm_access, pool)); |
1402 | + dry_run, adm_access, pool)); |
1403 | |
1404 | |
1405 | /* merging logic complete, now we need to possibly log conflict |
1406 | |
1407 | === modified file 'subversion/mod_dav_svn/repos.c' |
1408 | --- subversion/mod_dav_svn/repos.c 2011-01-05 22:59:03 +0000 |
1409 | +++ subversion/mod_dav_svn/repos.c 2011-03-22 11:15:25 +0000 |
1410 | @@ -1607,6 +1607,23 @@ |
1411 | } |
1412 | |
1413 | |
1414 | +/* Return TRUE iff STR exactly matches any of the elements of LIST. */ |
1415 | +static svn_boolean_t |
1416 | +match_list(const char *str, const apr_array_header_t *list) |
1417 | +{ |
1418 | + int i; |
1419 | + |
1420 | + for (i = 0; i < list->nelts; i++) |
1421 | + { |
1422 | + const char *this_str = APR_ARRAY_IDX(list, i, char *); |
1423 | + |
1424 | + if (strcmp(this_str, str) == 0) |
1425 | + return TRUE; |
1426 | + } |
1427 | + |
1428 | + return FALSE; |
1429 | +} |
1430 | + |
1431 | |
1432 | static dav_error * |
1433 | get_resource(request_rec *r, |
1434 | @@ -1815,8 +1832,7 @@ |
1435 | apr_array_header_t *vals |
1436 | = svn_cstring_split(val, ",", TRUE, r->pool); |
1437 | |
1438 | - if (svn_cstring_match_glob_list(SVN_DAV_NS_DAV_SVN_MERGEINFO, |
1439 | - vals)) |
1440 | + if (match_list(SVN_DAV_NS_DAV_SVN_MERGEINFO, vals)) |
1441 | { |
1442 | apr_hash_set(repos->client_capabilities, |
1443 | SVN_RA_CAPABILITY_MERGEINFO, |
1444 | @@ -1923,8 +1939,10 @@ |
1445 | dav_locktoken_list *list = ltl; |
1446 | |
1447 | serr = svn_fs_get_access(&access_ctx, repos->fs); |
1448 | - if (serr) |
1449 | + if (serr || !access_ctx) |
1450 | { |
1451 | + if (serr == NULL) |
1452 | + serr = svn_error_create(SVN_ERR_FS_LOCK_OWNER_MISMATCH, NULL, NULL); |
1453 | return dav_svn__sanitize_error(serr, "Lock token is in request, " |
1454 | "but no user name", |
1455 | HTTP_BAD_REQUEST, r); |
1456 | |
1457 | === modified file 'subversion/mod_dav_svn/version.c' |
1458 | --- subversion/mod_dav_svn/version.c 2009-11-17 02:16:23 +0000 |
1459 | +++ subversion/mod_dav_svn/version.c 2011-03-22 11:15:25 +0000 |
1460 | @@ -1172,11 +1172,13 @@ |
1461 | svn_error_t *serr; |
1462 | |
1463 | serr = svn_fs_get_access(&fsaccess, resource->info->repos->fs); |
1464 | - if (serr) |
1465 | + if (serr || !fsaccess) |
1466 | { |
1467 | /* If an authenticated user name was attached to the request, |
1468 | then dav_svn_get_resource() should have already noticed and |
1469 | created an fs_access_t in the filesystem. */ |
1470 | + if (serr == NULL) |
1471 | + serr = svn_error_create(SVN_ERR_FS_LOCK_OWNER_MISMATCH, NULL, NULL); |
1472 | return dav_svn__sanitize_error(serr, "Lock token(s) in request, but " |
1473 | "missing an user name", HTTP_BAD_REQUEST, |
1474 | resource->info->r); |
1475 | |
1476 | === modified file 'subversion/po/zh_CN.po' |
1477 | --- subversion/po/zh_CN.po 2011-01-05 22:59:03 +0000 |
1478 | +++ subversion/po/zh_CN.po 2011-03-22 11:15:25 +0000 |
1479 | @@ -38,8 +38,8 @@ |
1480 | msgstr "" |
1481 | "Project-Id-Version: subversion 1.6\n" |
1482 | "Report-Msgid-Bugs-To: dev@subversion.apache.org\n" |
1483 | -"POT-Creation-Date: 2010-09-05 21:45+0800\n" |
1484 | -"PO-Revision-Date: 2010-09-05 21:33+0800\n" |
1485 | +"POT-Creation-Date: 2010-12-26 12:00+0800\n" |
1486 | +"PO-Revision-Date: 2010-12-26 12:00+0800\n" |
1487 | "Last-Translator: Subversion Developers <dev@subversion.apache.org>\n" |
1488 | "Language-Team: Simplified Chinese <dev@subversion.apache.org>\n" |
1489 | "Language: \n" |
1490 | @@ -3541,10 +3541,6 @@ |
1491 | msgid "Incomplete or unterminated property block" |
1492 | msgstr "不完整或未结束的属性块" |
1493 | |
1494 | -#, c-format |
1495 | -msgid " removing '\\r' from %s ..." |
1496 | -msgstr "正在从 '%s' 删除 '\\r' ..." |
1497 | - |
1498 | msgid "Unexpected EOF writing contents" |
1499 | msgstr "写内容时意外结束" |
1500 | |
1501 | @@ -3603,6 +3599,10 @@ |
1502 | msgid "Unrecognized node-action on node '%s'" |
1503 | msgstr "节点“%s”的动作不能识别" |
1504 | |
1505 | +#, c-format |
1506 | +msgid " removing '\\r' from %s ..." |
1507 | +msgstr "正在从 '%s' 删除 '\\r' ..." |
1508 | + |
1509 | msgid " done.\n" |
1510 | msgstr "完成。\n" |
1511 | |
1512 | @@ -4323,14 +4323,14 @@ |
1513 | |
1514 | msgid "" |
1515 | "Copyright (C) 2000-2009 CollabNet.\n" |
1516 | -"Subversion is open source software, see http://subversion.tigris.org/\n" |
1517 | +"Subversion is open source software, see http://subversion.apache.org/\n" |
1518 | "This product includes software developed by CollabNet (http://www.Collab." |
1519 | "Net/).\n" |
1520 | "\n" |
1521 | msgstr "" |
1522 | "版权所有 (C) 2000-2009 CollabNet。\n" |
1523 | -"Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。\n" |
1524 | -"此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。\n" |
1525 | +"Subversion 是开放源代码软件,请参阅 http://subversion.apache.org/ 站点。\n" |
1526 | +"此产品包含由 CollabNet (http://www.Collab.Net/) 开发的软件。\n" |
1527 | "\n" |
1528 | |
1529 | #, c-format |
1530 | @@ -5181,15 +5181,6 @@ |
1531 | |
1532 | #, c-format |
1533 | msgid "" |
1534 | -"The path '%s' appears to be part of a Subversion 1.7 or greater\n" |
1535 | -"working copy rooted at '%s'.\n" |
1536 | -"Please upgrade your Subversion client to use this working copy." |
1537 | -msgstr "" |
1538 | -"路径 '%s' 好像是 Subversion 1.7 或更高版本的工作副本,根路径是 '%s'。\n" |
1539 | -"请升级你的 Subversion 客户端,以使用此工作副本。" |
1540 | - |
1541 | -#, c-format |
1542 | -msgid "" |
1543 | "Working copy format of '%s' is too old (%d); please check out your working " |
1544 | "copy again" |
1545 | msgstr "“%s”的工作副本格式太旧(%d);请重新取出工作副本" |
1546 | @@ -5372,6 +5363,15 @@ |
1547 | msgid "'%s' does not appear to be a URL" |
1548 | msgstr "“%s”不像是URL" |
1549 | |
1550 | +#, c-format |
1551 | +msgid "" |
1552 | +"svn: warning: The depth of this commit is '%s', but copied directories will " |
1553 | +"regardless be committed with depth '%s'. You must remove unwanted children of " |
1554 | +"those directories in a separate commit.\n" |
1555 | +msgstr "" |
1556 | +"svn: 警告: 此提交的深度是 '%s',但是复制的目录将被提交的深度是 '%s'。你必须在" |
1557 | +"独立的提交中删除这些目录中不需要的项目。\n" |
1558 | + |
1559 | msgid "||||||| ORIGINAL" |
1560 | msgstr "||||||| 原始版本" |
1561 | |
1562 | |
1563 | === modified file 'subversion/tests/libsvn_fs/fs-test.c' |
1564 | --- subversion/tests/libsvn_fs/fs-test.c 2009-11-17 02:16:23 +0000 |
1565 | +++ subversion/tests/libsvn_fs/fs-test.c 2011-03-22 11:15:25 +0000 |
1566 | @@ -54,6 +54,7 @@ |
1567 | * EXPECTED_CONFLICT. If they don't match, return error. |
1568 | * |
1569 | * If a conflict is expected but the commit succeeds anyway, return |
1570 | + * error. If the commit fails but does not provide an error, return |
1571 | * error. |
1572 | */ |
1573 | static svn_error_t * |
1574 | @@ -94,13 +95,24 @@ |
1575 | conflict, expected_conflict); |
1576 | } |
1577 | } |
1578 | - else if (err) /* commit failed, but not due to conflict */ |
1579 | + else if (err) /* commit may have succeeded, but always report an error */ |
1580 | { |
1581 | - return svn_error_quick_wrap |
1582 | - (err, "commit failed due to something other than a conflict"); |
1583 | + if (SVN_IS_VALID_REVNUM(*new_rev)) |
1584 | + return svn_error_quick_wrap |
1585 | + (err, "commit succeeded but something else failed"); |
1586 | + else |
1587 | + return svn_error_quick_wrap |
1588 | + (err, "commit failed due to something other than a conflict"); |
1589 | } |
1590 | - else /* err == NULL, so commit succeeded */ |
1591 | + else /* err == NULL, commit should have succeeded */ |
1592 | { |
1593 | + if (! SVN_IS_VALID_REVNUM(*new_rev)) |
1594 | + { |
1595 | + return svn_error_create |
1596 | + (SVN_ERR_FS_GENERAL, NULL, |
1597 | + "commit failed but no error was returned"); |
1598 | + } |
1599 | + |
1600 | if (expected_conflict) |
1601 | { |
1602 | return svn_error_createf |
1603 | @@ -1150,6 +1162,7 @@ |
1604 | |
1605 | /* Commit it. */ |
1606 | SVN_ERR(svn_fs_commit_txn(&conflict, &after_rev, txn, pool)); |
1607 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(after_rev)); |
1608 | |
1609 | /* Make sure it's a different revision than before. */ |
1610 | if (after_rev == before_rev) |
1611 | @@ -1226,6 +1239,7 @@ |
1612 | |
1613 | /* Go ahead and commit the tree, and destroy the txn object. */ |
1614 | SVN_ERR(svn_fs_commit_txn(&conflict, &after_rev, txn, subpool)); |
1615 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(after_rev)); |
1616 | |
1617 | /* Carefully validate that tree in the new revision, now. */ |
1618 | SVN_ERR(svn_fs_revision_root(&revision_root, fs, after_rev, subpool)); |
1619 | @@ -1287,6 +1301,7 @@ |
1620 | |
1621 | /* Go ahead and commit the tree, and destroy the txn object. */ |
1622 | SVN_ERR(svn_fs_commit_txn(&conflict, &after_rev, txn, subpool)); |
1623 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(after_rev)); |
1624 | |
1625 | /* Carefully validate that tree in the new revision, now. */ |
1626 | SVN_ERR(svn_fs_revision_root(&revision_root, fs, after_rev, subpool)); |
1627 | @@ -2707,6 +2722,7 @@ |
1628 | |
1629 | /* Commit the greek tree. */ |
1630 | SVN_ERR(svn_fs_commit_txn(NULL, &new_rev, txn, pool)); |
1631 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(new_rev)); |
1632 | |
1633 | /* Create new transaction. */ |
1634 | SVN_ERR(svn_fs_begin_txn(&txn, fs, new_rev, pool)); |
1635 | @@ -2935,6 +2951,7 @@ |
1636 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, pool)); |
1637 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
1638 | SVN_ERR(svn_fs_commit_txn(NULL, &rev, txn, pool)); |
1639 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(rev)); |
1640 | |
1641 | after_commit = apr_time_now(); |
1642 | |
1643 | @@ -2989,6 +3006,7 @@ |
1644 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
1645 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
1646 | SVN_ERR(svn_fs_commit_txn(NULL, &rev, txn, subpool)); |
1647 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(rev)); |
1648 | svn_pool_clear(subpool); |
1649 | |
1650 | /* Modify and commit iota a few times, then test to see if we can |
1651 | @@ -3024,6 +3042,7 @@ |
1652 | SVN_ERR(svn_test__set_file_contents |
1653 | (txn_root, "iota", iota_contents_2, subpool)); |
1654 | SVN_ERR(svn_fs_commit_txn(NULL, &rev, txn, subpool)); |
1655 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(rev)); |
1656 | svn_pool_clear(subpool); |
1657 | |
1658 | /* Revision 3. */ |
1659 | @@ -3032,6 +3051,7 @@ |
1660 | SVN_ERR(svn_test__set_file_contents |
1661 | (txn_root, "iota", iota_contents_3, subpool)); |
1662 | SVN_ERR(svn_fs_commit_txn(NULL, &rev, txn, subpool)); |
1663 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(rev)); |
1664 | svn_pool_clear(subpool); |
1665 | |
1666 | /* Revision 4. */ |
1667 | @@ -3040,6 +3060,7 @@ |
1668 | SVN_ERR(svn_test__set_file_contents |
1669 | (txn_root, "iota", iota_contents_4, subpool)); |
1670 | SVN_ERR(svn_fs_commit_txn(NULL, &rev, txn, subpool)); |
1671 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(rev)); |
1672 | svn_pool_clear(subpool); |
1673 | |
1674 | /* Revision 5. */ |
1675 | @@ -3048,6 +3069,7 @@ |
1676 | SVN_ERR(svn_test__set_file_contents |
1677 | (txn_root, "iota", iota_contents_5, subpool)); |
1678 | SVN_ERR(svn_fs_commit_txn(NULL, &rev, txn, subpool)); |
1679 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(rev)); |
1680 | svn_pool_clear(subpool); |
1681 | |
1682 | /* Revision 6. */ |
1683 | @@ -3056,6 +3078,7 @@ |
1684 | SVN_ERR(svn_test__set_file_contents |
1685 | (txn_root, "iota", iota_contents_6, subpool)); |
1686 | SVN_ERR(svn_fs_commit_txn(NULL, &rev, txn, subpool)); |
1687 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(rev)); |
1688 | svn_pool_clear(subpool); |
1689 | |
1690 | /* Revision 7. */ |
1691 | @@ -3064,6 +3087,7 @@ |
1692 | SVN_ERR(svn_test__set_file_contents |
1693 | (txn_root, "iota", iota_contents_7, subpool)); |
1694 | SVN_ERR(svn_fs_commit_txn(NULL, &rev, txn, subpool)); |
1695 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(rev)); |
1696 | svn_pool_clear(subpool); |
1697 | |
1698 | /** Now check the full Greek Tree in all of those revisions, |
1699 | @@ -3366,6 +3390,7 @@ |
1700 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
1701 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
1702 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1703 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1704 | |
1705 | /***********************************************************************/ |
1706 | /* REVISION 1 */ |
1707 | @@ -3423,6 +3448,7 @@ |
1708 | subpool)); |
1709 | } |
1710 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1711 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1712 | |
1713 | /***********************************************************************/ |
1714 | /* REVISION 2 */ |
1715 | @@ -3474,6 +3500,7 @@ |
1716 | subpool)); |
1717 | } |
1718 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1719 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1720 | |
1721 | /***********************************************************************/ |
1722 | /* REVISION 3 */ |
1723 | @@ -3523,6 +3550,7 @@ |
1724 | SVN_ERR(svn_test__txn_script_exec(txn_root, script_entries, 2, subpool)); |
1725 | } |
1726 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1727 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1728 | |
1729 | /***********************************************************************/ |
1730 | /* REVISION 4 */ |
1731 | @@ -3699,6 +3727,7 @@ |
1732 | (&wh_func, &wh_baton, txn_root, "bigfile", NULL, NULL, subpool)); |
1733 | SVN_ERR(svn_txdelta_send_string(&contents, wh_func, wh_baton, subpool)); |
1734 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1735 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1736 | SVN_ERR(svn_fs_deltify_revision(fs, youngest_rev, subpool)); |
1737 | checksum_list[youngest_rev] = checksum; |
1738 | svn_pool_clear(subpool); |
1739 | @@ -3714,6 +3743,7 @@ |
1740 | (&wh_func, &wh_baton, txn_root, "bigfile", NULL, NULL, subpool)); |
1741 | SVN_ERR(svn_txdelta_send_string(&contents, wh_func, wh_baton, subpool)); |
1742 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1743 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1744 | SVN_ERR(svn_fs_deltify_revision(fs, youngest_rev, subpool)); |
1745 | checksum_list[youngest_rev] = checksum; |
1746 | svn_pool_clear(subpool); |
1747 | @@ -3728,6 +3758,7 @@ |
1748 | (&wh_func, &wh_baton, txn_root, "bigfile", NULL, NULL, subpool)); |
1749 | SVN_ERR(svn_txdelta_send_string(&contents, wh_func, wh_baton, subpool)); |
1750 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1751 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1752 | SVN_ERR(svn_fs_deltify_revision(fs, youngest_rev, subpool)); |
1753 | checksum_list[youngest_rev] = checksum; |
1754 | svn_pool_clear(subpool); |
1755 | @@ -3744,6 +3775,7 @@ |
1756 | (&wh_func, &wh_baton, txn_root, "bigfile", NULL, NULL, subpool)); |
1757 | SVN_ERR(svn_txdelta_send_string(&contents, wh_func, wh_baton, subpool)); |
1758 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1759 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1760 | SVN_ERR(svn_fs_deltify_revision(fs, youngest_rev, subpool)); |
1761 | checksum_list[youngest_rev] = checksum; |
1762 | svn_pool_clear(subpool); |
1763 | @@ -3763,6 +3795,7 @@ |
1764 | SVN_ERR(svn_txdelta_send_string |
1765 | (&contents, wh_func, wh_baton, subpool)); |
1766 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1767 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1768 | SVN_ERR(svn_fs_deltify_revision(fs, youngest_rev, subpool)); |
1769 | checksum_list[youngest_rev] = checksum; |
1770 | svn_pool_clear(subpool); |
1771 | @@ -3883,6 +3916,7 @@ |
1772 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
1773 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
1774 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1775 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1776 | |
1777 | /* Root node's revision should be the same as YOUNGEST_REV. */ |
1778 | SVN_ERR(svn_fs_revision_root(&rev_root, fs, youngest_rev, subpool)); |
1779 | @@ -3904,6 +3938,7 @@ |
1780 | apr_psprintf(subpool, "iota version %d", i + 2), subpool)); |
1781 | |
1782 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1783 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1784 | |
1785 | /* Root node's revision should be the same as YOUNGEST_REV. */ |
1786 | SVN_ERR(svn_fs_revision_root(&rev_root, fs, youngest_rev, subpool)); |
1787 | @@ -4018,6 +4053,7 @@ |
1788 | |
1789 | /* Now commit the transaction. */ |
1790 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1791 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1792 | |
1793 | /* Now, we have a new revision, and all paths in it should have a |
1794 | created rev of 1. Verify this. */ |
1795 | @@ -4057,6 +4093,7 @@ |
1796 | SVN_ERR(verify_path_revs(txn_root, path_revs, 20, subpool)); |
1797 | /* commit transaction */ |
1798 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1799 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1800 | /* get a revision root for the new revision */ |
1801 | SVN_ERR(svn_fs_revision_root(&rev_root, fs, youngest_rev, subpool)); |
1802 | /* verify created revs */ |
1803 | @@ -4081,6 +4118,7 @@ |
1804 | SVN_ERR(verify_path_revs(txn_root, path_revs, 20, subpool)); |
1805 | /* commit transaction */ |
1806 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1807 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1808 | /* get a revision root for the new revision */ |
1809 | SVN_ERR(svn_fs_revision_root(&rev_root, fs, youngest_rev, subpool)); |
1810 | /* verify created revs */ |
1811 | @@ -4147,18 +4185,21 @@ |
1812 | SVN_ERR(svn_fs_make_file(txn_root, "A", subpool)); |
1813 | SVN_ERR(svn_test__set_file_contents(txn_root, "A", "1", subpool)); |
1814 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1815 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1816 | svn_pool_clear(subpool); |
1817 | /* Revision 2 */ |
1818 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
1819 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
1820 | SVN_ERR(svn_test__set_file_contents(txn_root, "A", "2", subpool)); |
1821 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1822 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1823 | svn_pool_clear(subpool); |
1824 | /* Revision 3 */ |
1825 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
1826 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
1827 | SVN_ERR(svn_test__set_file_contents(txn_root, "A", "3", subpool)); |
1828 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1829 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1830 | svn_pool_clear(subpool); |
1831 | /* Revision 4 */ |
1832 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
1833 | @@ -4171,6 +4212,7 @@ |
1834 | SVN_ERR(svn_fs_copy(rev_root, "A", txn_root, "C", subpool)); |
1835 | SVN_ERR(svn_test__set_file_contents(txn_root, "C", "4", subpool)); |
1836 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1837 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1838 | svn_pool_clear(subpool); |
1839 | /* Revision 5 */ |
1840 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
1841 | @@ -4178,6 +4220,7 @@ |
1842 | SVN_ERR(svn_test__set_file_contents(txn_root, "B", "5", subpool)); |
1843 | SVN_ERR(svn_test__set_file_contents(txn_root, "C", "5", subpool)); |
1844 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1845 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1846 | svn_pool_clear(subpool); |
1847 | /* Revision 6 */ |
1848 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
1849 | @@ -4188,6 +4231,7 @@ |
1850 | SVN_ERR(svn_fs_copy(rev_root, "B", txn_root, "D", subpool)); |
1851 | SVN_ERR(svn_test__set_file_contents(txn_root, "D", "5", subpool)); |
1852 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1853 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1854 | svn_pool_clear(subpool); |
1855 | /* Revision 7 */ |
1856 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
1857 | @@ -4196,12 +4240,14 @@ |
1858 | SVN_ERR(svn_fs_make_file(txn_root, "E", subpool)); |
1859 | SVN_ERR(svn_test__set_file_contents(txn_root, "E", "7", subpool)); |
1860 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1861 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1862 | svn_pool_clear(subpool); |
1863 | /* Revision 8 */ |
1864 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
1865 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
1866 | SVN_ERR(svn_test__set_file_contents(txn_root, "E", "8", subpool)); |
1867 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1868 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1869 | svn_pool_clear(subpool); |
1870 | /* Revision 9 */ |
1871 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
1872 | @@ -4210,12 +4256,14 @@ |
1873 | SVN_ERR(svn_fs_copy(rev_root, "E", txn_root, "F", subpool)); |
1874 | SVN_ERR(svn_test__set_file_contents(txn_root, "F", "9", subpool)); |
1875 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1876 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1877 | svn_pool_clear(subpool); |
1878 | /* Revision 10 */ |
1879 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
1880 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
1881 | SVN_ERR(svn_test__set_file_contents(txn_root, "F", "10", subpool)); |
1882 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1883 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1884 | svn_pool_clear(subpool); |
1885 | |
1886 | /*** Step II: Exhaustively verify relationship between all nodes in |
1887 | @@ -4334,6 +4382,7 @@ |
1888 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, spool)); |
1889 | SVN_ERR(svn_test__create_greek_tree(txn_root, spool)); |
1890 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
1891 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1892 | svn_pool_clear(spool); |
1893 | |
1894 | /*** Revision 2: Copy A/D/G/rho to A/D/G/rho2. ***/ |
1895 | @@ -4342,6 +4391,7 @@ |
1896 | SVN_ERR(svn_fs_revision_root(&rev_root, fs, youngest_rev, spool)); |
1897 | SVN_ERR(svn_fs_copy(rev_root, "A/D/G/rho", txn_root, "A/D/G/rho2", spool)); |
1898 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
1899 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1900 | svn_pool_clear(spool); |
1901 | |
1902 | /*** Revision 3: Copy A/D/G to A/D/G2. ***/ |
1903 | @@ -4350,6 +4400,7 @@ |
1904 | SVN_ERR(svn_fs_revision_root(&rev_root, fs, youngest_rev, spool)); |
1905 | SVN_ERR(svn_fs_copy(rev_root, "A/D/G", txn_root, "A/D/G2", spool)); |
1906 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
1907 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1908 | svn_pool_clear(spool); |
1909 | |
1910 | /*** Revision 4: Copy A/D to A/D2. ***/ |
1911 | @@ -4358,6 +4409,7 @@ |
1912 | SVN_ERR(svn_fs_revision_root(&rev_root, fs, youngest_rev, spool)); |
1913 | SVN_ERR(svn_fs_copy(rev_root, "A/D", txn_root, "A/D2", spool)); |
1914 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
1915 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1916 | svn_pool_clear(spool); |
1917 | |
1918 | /*** Revision 5: Edit all the rho's! ***/ |
1919 | @@ -4381,6 +4433,7 @@ |
1920 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D2/G2/rho2", |
1921 | "Edited text.", spool)); |
1922 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
1923 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1924 | |
1925 | svn_pool_destroy(spool); |
1926 | |
1927 | @@ -4816,6 +4869,7 @@ |
1928 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
1929 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
1930 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1931 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1932 | svn_pool_clear(subpool); |
1933 | |
1934 | /* Revision 2: Modify A/D/H/chi and A/B/E/alpha. */ |
1935 | @@ -4824,6 +4878,7 @@ |
1936 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/H/chi", "2", subpool)); |
1937 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/B/E/alpha", "2", subpool)); |
1938 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1939 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1940 | svn_pool_clear(subpool); |
1941 | |
1942 | /* Revision 3: Copy A/D to A/D2, and create A/D2/floop new. */ |
1943 | @@ -4833,6 +4888,7 @@ |
1944 | SVN_ERR(svn_fs_copy(root, "A/D", txn_root, "A/D2", subpool)); |
1945 | SVN_ERR(svn_fs_make_file(txn_root, "A/D2/floop", subpool)); |
1946 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1947 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1948 | svn_pool_clear(subpool); |
1949 | |
1950 | /* Revision 4: Modify A/D/H/chi and A/D2/H/chi. */ |
1951 | @@ -4841,6 +4897,7 @@ |
1952 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/H/chi", "4", subpool)); |
1953 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D2/H/chi", "4", subpool)); |
1954 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1955 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1956 | svn_pool_clear(subpool); |
1957 | |
1958 | /* Revision 5: Delete A/D2/G, add A/B/E/alfalfa. */ |
1959 | @@ -4849,6 +4906,7 @@ |
1960 | SVN_ERR(svn_fs_delete(txn_root, "A/D2/G", subpool)); |
1961 | SVN_ERR(svn_fs_make_file(txn_root, "A/B/E/alfalfa", subpool)); |
1962 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1963 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1964 | svn_pool_clear(subpool); |
1965 | |
1966 | /* Revision 6: Restore A/D2/G (from version 4). */ |
1967 | @@ -4857,6 +4915,7 @@ |
1968 | SVN_ERR(svn_fs_revision_root(&root, fs, 4, subpool)); |
1969 | SVN_ERR(svn_fs_copy(root, "A/D2/G", txn_root, "A/D2/G", subpool)); |
1970 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1971 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1972 | svn_pool_clear(subpool); |
1973 | |
1974 | /* Revision 7: Move A/D2 to A/D (replacing it), Add a new file A/D2, |
1975 | @@ -4870,6 +4929,7 @@ |
1976 | SVN_ERR(svn_fs_make_file(txn_root, "A/D2", subpool)); |
1977 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/floop", "7", subpool)); |
1978 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
1979 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
1980 | svn_pool_clear(subpool); |
1981 | |
1982 | /* Now test some origin revisions. */ |
1983 | |
1984 | === modified file 'subversion/tests/libsvn_fs/locks-test.c' |
1985 | --- subversion/tests/libsvn_fs/locks-test.c 2009-11-17 02:16:23 +0000 |
1986 | +++ subversion/tests/libsvn_fs/locks-test.c 2011-03-22 11:15:25 +0000 |
1987 | @@ -121,6 +121,7 @@ |
1988 | /* Create the greek tree and commit it. */ |
1989 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
1990 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
1991 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
1992 | |
1993 | /* We are now 'bubba'. */ |
1994 | SVN_ERR(svn_fs_create_access(&access, "bubba", pool)); |
1995 | @@ -167,6 +168,7 @@ |
1996 | /* Create the greek tree and commit it. */ |
1997 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
1998 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
1999 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2000 | |
2001 | /* We are now 'bubba'. */ |
2002 | SVN_ERR(svn_fs_create_access(&access, "bubba", pool)); |
2003 | @@ -217,6 +219,7 @@ |
2004 | /* Create the greek tree and commit it. */ |
2005 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2006 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2007 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2008 | |
2009 | /* We are now 'bubba'. */ |
2010 | SVN_ERR(svn_fs_create_access(&access, "bubba", pool)); |
2011 | @@ -276,6 +279,7 @@ |
2012 | /* Create the greek tree and commit it. */ |
2013 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2014 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2015 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2016 | |
2017 | /* We are now 'bubba'. */ |
2018 | SVN_ERR(svn_fs_create_access(&access, "bubba", pool)); |
2019 | @@ -411,6 +415,7 @@ |
2020 | /* Create the greek tree and commit it. */ |
2021 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2022 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2023 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2024 | |
2025 | /* We are now 'bubba'. */ |
2026 | SVN_ERR(svn_fs_create_access(&access, "bubba", pool)); |
2027 | @@ -469,6 +474,7 @@ |
2028 | /* Create the greek tree and commit it. */ |
2029 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2030 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2031 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2032 | |
2033 | /* We are now 'bubba'. */ |
2034 | SVN_ERR(svn_fs_create_access(&access, "bubba", pool)); |
2035 | @@ -492,6 +498,7 @@ |
2036 | |
2037 | /* Try to commit the file change. Should fail, because we're nobody. */ |
2038 | err = svn_fs_commit_txn(&conflict, &newrev, txn, pool); |
2039 | + SVN_TEST_ASSERT(! SVN_IS_VALID_REVNUM(newrev)); |
2040 | if (! err) |
2041 | return svn_error_create |
2042 | (SVN_ERR_TEST_FAILED, NULL, |
2043 | @@ -504,6 +511,7 @@ |
2044 | |
2045 | /* Try to commit the file change. Should fail, because we're 'hortense'. */ |
2046 | err = svn_fs_commit_txn(&conflict, &newrev, txn, pool); |
2047 | + SVN_TEST_ASSERT(! SVN_IS_VALID_REVNUM(newrev)); |
2048 | if (! err) |
2049 | return svn_error_create |
2050 | (SVN_ERR_TEST_FAILED, NULL, |
2051 | @@ -516,6 +524,7 @@ |
2052 | |
2053 | /* Try to commit the file change. Should fail, because there's no token. */ |
2054 | err = svn_fs_commit_txn(&conflict, &newrev, txn, pool); |
2055 | + SVN_TEST_ASSERT(! SVN_IS_VALID_REVNUM(newrev)); |
2056 | if (! err) |
2057 | return svn_error_create |
2058 | (SVN_ERR_TEST_FAILED, NULL, |
2059 | @@ -527,6 +536,7 @@ |
2060 | |
2061 | /* Commit should now succeed. */ |
2062 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2063 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2064 | |
2065 | return SVN_NO_ERROR; |
2066 | } |
2067 | @@ -566,6 +576,7 @@ |
2068 | /* Create the greek tree and commit it. */ |
2069 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2070 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2071 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2072 | |
2073 | /* Make a new transaction and delete "/A" */ |
2074 | SVN_ERR(svn_fs_begin_txn2(&txn, fs, newrev, SVN_FS_TXN_CHECK_LOCKS, pool)); |
2075 | @@ -584,6 +595,7 @@ |
2076 | /* Try to commit the transaction. Should fail, because a child of |
2077 | the deleted directory is locked by someone else. */ |
2078 | err = svn_fs_commit_txn(&conflict, &newrev, txn, pool); |
2079 | + SVN_TEST_ASSERT(! SVN_IS_VALID_REVNUM(newrev)); |
2080 | if (! err) |
2081 | return svn_error_create |
2082 | (SVN_ERR_TEST_FAILED, NULL, |
2083 | @@ -594,6 +606,7 @@ |
2084 | SVN_ERR(svn_fs_set_access(fs, access)); |
2085 | SVN_ERR(svn_fs_access_add_lock_token(access, mylock->token)); |
2086 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2087 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2088 | |
2089 | return SVN_NO_ERROR; |
2090 | } |
2091 | @@ -630,6 +643,7 @@ |
2092 | /* Create the greek tree and commit it. */ |
2093 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2094 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2095 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2096 | |
2097 | /* Become 'bubba' and lock "/A/D/G/rho". */ |
2098 | SVN_ERR(svn_fs_create_access(&access, "bubba", pool)); |
2099 | @@ -650,6 +664,7 @@ |
2100 | /* Commit should succeed; this means we're doing a non-recursive |
2101 | lock-check on directory, rather than a recursive one. */ |
2102 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2103 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2104 | |
2105 | return SVN_NO_ERROR; |
2106 | } |
2107 | @@ -687,6 +702,7 @@ |
2108 | /* Create the greek tree and commit it. */ |
2109 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2110 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2111 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2112 | |
2113 | /* Become 'bubba' and lock imaginary path "/A/D/G2/blooga". */ |
2114 | SVN_ERR(svn_fs_create_access(&access, "bubba", pool)); |
2115 | @@ -824,6 +840,7 @@ |
2116 | /* Create the greek tree and commit it. */ |
2117 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2118 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2119 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2120 | |
2121 | /* Make a new transaction and change rho. */ |
2122 | SVN_ERR(svn_fs_begin_txn2(&txn, fs, newrev, SVN_FS_TXN_CHECK_LOCKS, pool)); |
2123 | @@ -846,6 +863,7 @@ |
2124 | /* Try to commit. Should fail because we're 'nobody', and the lock |
2125 | hasn't expired yet. */ |
2126 | err = svn_fs_commit_txn(&conflict, &newrev, txn, pool); |
2127 | + SVN_TEST_ASSERT(! SVN_IS_VALID_REVNUM(newrev)); |
2128 | if (! err) |
2129 | return svn_error_create |
2130 | (SVN_ERR_TEST_FAILED, NULL, |
2131 | @@ -882,6 +900,7 @@ |
2132 | } |
2133 | |
2134 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2135 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2136 | |
2137 | return SVN_NO_ERROR; |
2138 | } |
2139 | @@ -915,6 +934,7 @@ |
2140 | /* Create the greek tree and commit it. */ |
2141 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2142 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2143 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2144 | |
2145 | /* Become 'bubba' and lock "/A/D/G/rho". */ |
2146 | SVN_ERR(svn_fs_create_access(&access, "bubba", pool)); |
2147 | @@ -1002,6 +1022,7 @@ |
2148 | /* Create the greek tree and commit it. */ |
2149 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2150 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2151 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2152 | |
2153 | /* Commit a small change to /A/D/G/rho, creating revision 2. */ |
2154 | SVN_ERR(svn_fs_begin_txn2(&txn, fs, newrev, SVN_FS_TXN_CHECK_LOCKS, pool)); |
2155 | @@ -1009,6 +1030,7 @@ |
2156 | SVN_ERR(svn_test__set_file_contents(txn_root, "/A/D/G/rho", |
2157 | "new contents", pool)); |
2158 | SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); |
2159 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(newrev)); |
2160 | |
2161 | /* We are now 'bubba'. */ |
2162 | SVN_ERR(svn_fs_create_access(&access, "bubba", pool)); |
2163 | |
2164 | === modified file 'subversion/tests/libsvn_fs_base/changes-test.c' |
2165 | --- subversion/tests/libsvn_fs_base/changes-test.c 2011-01-05 22:45:51 +0000 |
2166 | +++ subversion/tests/libsvn_fs_base/changes-test.c 2011-03-22 11:15:25 +0000 |
2167 | @@ -595,6 +595,7 @@ |
2168 | SVN_ERR(svn_test__txn_script_exec(txn_root, script_entries, 5, subpool)); |
2169 | } |
2170 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
2171 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2172 | svn_pool_clear(subpool); |
2173 | |
2174 | /*** REVISION 2: Delete and add some stuff, non-depth-first. ***/ |
2175 | @@ -615,6 +616,7 @@ |
2176 | SVN_ERR(svn_test__txn_script_exec(txn_root, script_entries, 7, subpool)); |
2177 | } |
2178 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
2179 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2180 | svn_pool_clear(subpool); |
2181 | |
2182 | /*** TEST: We should have only three changes, the deletion of 'file1' |
2183 | @@ -663,6 +665,7 @@ |
2184 | SVN_ERR(svn_test__txn_script_exec(txn_root, script_entries, 5, subpool)); |
2185 | } |
2186 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
2187 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2188 | svn_pool_clear(subpool); |
2189 | |
2190 | /*** REVISION 4: Do the same stuff as in revision 2, but use a copy |
2191 | @@ -687,6 +690,7 @@ |
2192 | SVN_ERR(svn_fs_make_dir(txn_root, "dir4", subpool)); |
2193 | } |
2194 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
2195 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2196 | svn_pool_clear(subpool); |
2197 | |
2198 | /*** TEST: We should have only three changes, the deletion of 'file1' |
2199 | |
2200 | === modified file 'subversion/tests/libsvn_fs_base/fs-base-test.c' |
2201 | --- subversion/tests/libsvn_fs_base/fs-base-test.c 2009-11-17 02:16:23 +0000 |
2202 | +++ subversion/tests/libsvn_fs_base/fs-base-test.c 2011-03-22 11:15:25 +0000 |
2203 | @@ -476,6 +476,7 @@ |
2204 | SVN_ERR(svn_fs_begin_txn(&txn4, fs, 0, pool)); |
2205 | SVN_ERR(svn_fs_txn_name(&txn4_name, txn4, pool)); |
2206 | SVN_ERR(svn_fs_commit_txn(&conflict, &new_rev, txn4, pool)); |
2207 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(new_rev)); |
2208 | err = svn_fs_abort_txn(txn4, pool); |
2209 | if (! err) |
2210 | return svn_error_create |
2211 | @@ -874,6 +875,7 @@ |
2212 | |
2213 | /* Commit the greek tree. */ |
2214 | SVN_ERR(svn_fs_commit_txn(NULL, &new_rev, txn, pool)); |
2215 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(new_rev)); |
2216 | |
2217 | /* Create new transaction. */ |
2218 | SVN_ERR(svn_fs_begin_txn(&txn, fs, new_rev, pool)); |
2219 | @@ -1208,6 +1210,7 @@ |
2220 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, spool)); |
2221 | SVN_ERR(svn_test__create_greek_tree(txn_root, spool)); |
2222 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2223 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2224 | svn_pool_clear(spool); |
2225 | |
2226 | /*** Revision 2: Copy A/D to A/D3 ***/ |
2227 | @@ -1216,6 +1219,7 @@ |
2228 | SVN_ERR(svn_fs_revision_root(&rev_root, fs, youngest_rev, spool)); |
2229 | SVN_ERR(svn_fs_copy(rev_root, "A/D", txn_root, "A/D3", spool)); |
2230 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2231 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2232 | svn_pool_clear(spool); |
2233 | |
2234 | /*** Revision 3: Copy A/D/G to A/D/G2 ***/ |
2235 | @@ -1224,6 +1228,7 @@ |
2236 | SVN_ERR(svn_fs_revision_root(&rev_root, fs, youngest_rev, spool)); |
2237 | SVN_ERR(svn_fs_copy(rev_root, "A/D/G", txn_root, "A/D/G2", spool)); |
2238 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2239 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2240 | svn_pool_clear(spool); |
2241 | |
2242 | /*** Revision 4: Copy A/D to A/D2 and create up and I in the existing |
2243 | @@ -1239,6 +1244,7 @@ |
2244 | SVN_ERR(svn_fs_make_dir(txn_root, "A/D2/G2/I", spool)); |
2245 | SVN_ERR(svn_fs_make_file(txn_root, "A/D2/G2/up", spool)); |
2246 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2247 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2248 | svn_pool_clear(spool); |
2249 | |
2250 | /*** Revision 5: Create A/D3/down and A/D3/J ***/ |
2251 | @@ -1247,6 +1253,7 @@ |
2252 | SVN_ERR(svn_fs_make_file(txn_root, "A/D3/down", spool)); |
2253 | SVN_ERR(svn_fs_make_dir(txn_root, "A/D3/J", spool)); |
2254 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2255 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2256 | svn_pool_clear(spool); |
2257 | |
2258 | { |
2259 | @@ -1338,6 +1345,7 @@ |
2260 | SVN_ERR(svn_fs_make_file(txn_root, "f", subpool)); |
2261 | SVN_ERR(svn_test__set_file_contents(txn_root, "f", f->data, subpool)); |
2262 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
2263 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2264 | SVN_ERR(svn_fs_deltify_revision(fs, youngest_rev, subpool)); |
2265 | svn_pool_clear(subpool); |
2266 | |
2267 | @@ -1352,6 +1360,7 @@ |
2268 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2269 | SVN_ERR(svn_test__set_file_contents(txn_root, "f", f->data, subpool)); |
2270 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
2271 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2272 | SVN_ERR(svn_fs_deltify_revision(fs, youngest_rev, subpool)); |
2273 | svn_pool_clear(subpool); |
2274 | } |
2275 | @@ -1416,6 +1425,7 @@ |
2276 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, pool)); |
2277 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2278 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, pool)); |
2279 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2280 | |
2281 | /* In a transaction, copy A to Z. */ |
2282 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, pool)); |
2283 | @@ -1491,6 +1501,7 @@ |
2284 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2285 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
2286 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
2287 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2288 | svn_pool_clear(subpool); |
2289 | |
2290 | /* Revision 2: Start to change "iota", but don't complete the work. */ |
2291 | @@ -1507,6 +1518,7 @@ |
2292 | testing that misbehaving callers don't introduce more damage to |
2293 | the repository than they have to. */ |
2294 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, subpool)); |
2295 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2296 | svn_pool_clear(subpool); |
2297 | |
2298 | /* Fetch changed paths for the youngest revision. We should find none. */ |
2299 | |
2300 | === modified file 'subversion/tests/libsvn_fs_fs/fs-pack-test.c' |
2301 | --- subversion/tests/libsvn_fs_fs/fs-pack-test.c 2010-06-21 11:53:14 +0000 |
2302 | +++ subversion/tests/libsvn_fs_fs/fs-pack-test.c 2011-03-22 11:15:25 +0000 |
2303 | @@ -132,6 +132,7 @@ |
2304 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2305 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
2306 | SVN_ERR(svn_fs_commit_txn(&conflict, &after_rev, txn, subpool)); |
2307 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(after_rev)); |
2308 | |
2309 | /* Revisions 2-11: A bunch of random changes. */ |
2310 | iterpool = svn_pool_create(subpool); |
2311 | @@ -145,6 +146,7 @@ |
2312 | iterpool), |
2313 | iterpool)); |
2314 | SVN_ERR(svn_fs_commit_txn(&conflict, &after_rev, txn, iterpool)); |
2315 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(after_rev)); |
2316 | } |
2317 | svn_pool_destroy(iterpool); |
2318 | svn_pool_destroy(subpool); |
2319 | @@ -363,6 +365,7 @@ |
2320 | "How much better is it to get wisdom than gold! and to get " |
2321 | "understanding rather to be chosen than silver!", pool)); |
2322 | SVN_ERR(svn_fs_commit_txn(&conflict, &after_rev, txn, pool)); |
2323 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(after_rev)); |
2324 | |
2325 | return SVN_NO_ERROR; |
2326 | } |
2327 | |
2328 | === modified file 'subversion/tests/libsvn_repos/repos-test.c' |
2329 | --- subversion/tests/libsvn_repos/repos-test.c 2009-11-17 02:16:23 +0000 |
2330 | +++ subversion/tests/libsvn_repos/repos-test.c 2011-03-22 11:15:25 +0000 |
2331 | @@ -91,6 +91,7 @@ |
2332 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2333 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
2334 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2335 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2336 | |
2337 | /***********************************************************************/ |
2338 | /* REVISION 1 */ |
2339 | @@ -152,6 +153,7 @@ |
2340 | subpool)); |
2341 | } |
2342 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2343 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2344 | |
2345 | /***********************************************************************/ |
2346 | /* REVISION 2 */ |
2347 | @@ -206,6 +208,7 @@ |
2348 | SVN_ERR(svn_test__txn_script_exec(txn_root, script_entries, 4, subpool)); |
2349 | } |
2350 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2351 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2352 | |
2353 | /***********************************************************************/ |
2354 | /* REVISION 3 */ |
2355 | @@ -259,6 +262,7 @@ |
2356 | txn_root, "A/B/epsilon", |
2357 | subpool)); |
2358 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2359 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2360 | |
2361 | /***********************************************************************/ |
2362 | /* REVISION 4 */ |
2363 | @@ -398,6 +402,7 @@ |
2364 | /* Create and commit the greek tree. */ |
2365 | SVN_ERR(svn_test__create_greek_tree(txn_root, pool)); |
2366 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, pool)); |
2367 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2368 | |
2369 | /* Now, commit again, this time after copying a directory, and then |
2370 | deleting some paths under that directory. */ |
2371 | @@ -408,6 +413,7 @@ |
2372 | SVN_ERR(svn_fs_delete(txn_root, "Z/D/G/rho", pool)); |
2373 | SVN_ERR(svn_fs_delete(txn_root, "Z/D/H", pool)); |
2374 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, pool)); |
2375 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2376 | |
2377 | /* Now, we run the node_tree editor code, and see that a) it doesn't |
2378 | bomb out, and b) that our nodes are all good. */ |
2379 | @@ -545,6 +551,7 @@ |
2380 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, spool)); |
2381 | SVN_ERR(svn_test__create_greek_tree(txn_root, spool)); |
2382 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2383 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2384 | svn_pool_clear(spool); |
2385 | |
2386 | /* Revision 2 - mu, alpha, omega */ |
2387 | @@ -554,6 +561,7 @@ |
2388 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/B/E/alpha", "2", spool)); |
2389 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/H/omega", "2", spool)); |
2390 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2391 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2392 | svn_pool_clear(spool); |
2393 | |
2394 | /* Revision 3 - iota, lambda, psi, omega */ |
2395 | @@ -564,6 +572,7 @@ |
2396 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/H/psi", "3", spool)); |
2397 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/H/omega", "3", spool)); |
2398 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2399 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2400 | svn_pool_clear(spool); |
2401 | |
2402 | /* Revision 4 - iota, beta, gamma, pi, rho */ |
2403 | @@ -575,6 +584,7 @@ |
2404 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/G/pi", "4", spool)); |
2405 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/G/rho", "4", spool)); |
2406 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2407 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2408 | svn_pool_clear(spool); |
2409 | |
2410 | /* Revision 5 - mu, alpha, tau, chi */ |
2411 | @@ -585,6 +595,7 @@ |
2412 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/G/tau", "5", spool)); |
2413 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/H/chi", "5", spool)); |
2414 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2415 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2416 | svn_pool_clear(spool); |
2417 | |
2418 | /* Revision 6 - move A/D to A/Z */ |
2419 | @@ -594,6 +605,7 @@ |
2420 | SVN_ERR(svn_fs_copy(rev_root, "A/D", txn_root, "A/Z", spool)); |
2421 | SVN_ERR(svn_fs_delete(txn_root, "A/D", spool)); |
2422 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2423 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2424 | svn_pool_clear(spool); |
2425 | |
2426 | /* Revision 7 - edit A/Z/G/pi */ |
2427 | @@ -601,6 +613,7 @@ |
2428 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, spool)); |
2429 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/Z/G/pi", "7", spool)); |
2430 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2431 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2432 | svn_pool_clear(spool); |
2433 | |
2434 | /* Revision 8 - move A/Z back to A/D, edit iota */ |
2435 | @@ -611,6 +624,7 @@ |
2436 | SVN_ERR(svn_fs_delete(txn_root, "A/Z", spool)); |
2437 | SVN_ERR(svn_test__set_file_contents(txn_root, "iota", "8", spool)); |
2438 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2439 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2440 | svn_pool_clear(spool); |
2441 | |
2442 | /* Revision 9 - copy A/D/G to A/D/Q */ |
2443 | @@ -619,6 +633,7 @@ |
2444 | SVN_ERR(svn_fs_revision_root(&rev_root, fs, youngest_rev, spool)); |
2445 | SVN_ERR(svn_fs_copy(rev_root, "A/D/G", txn_root, "A/D/Q", spool)); |
2446 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2447 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2448 | svn_pool_clear(spool); |
2449 | |
2450 | /* Revision 10 - edit A/D/Q/pi and A/D/Q/rho */ |
2451 | @@ -627,6 +642,7 @@ |
2452 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/Q/pi", "10", spool)); |
2453 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/Q/rho", "10", spool)); |
2454 | SVN_ERR(svn_fs_commit_txn(NULL, &youngest_rev, txn, spool)); |
2455 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2456 | svn_pool_clear(spool); |
2457 | |
2458 | /* Now, it's time to verify our results. */ |
2459 | @@ -793,6 +809,7 @@ |
2460 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2461 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
2462 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2463 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2464 | svn_pool_clear(subpool); |
2465 | |
2466 | /* Move a file. Rev 2. */ |
2467 | @@ -801,6 +818,7 @@ |
2468 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2469 | SVN_ERR(svn_fs_copy(root, "/A/mu", txn_root, "/mu.new", subpool)); |
2470 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2471 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2472 | { |
2473 | struct locations_info info[] = |
2474 | { |
2475 | @@ -848,6 +866,7 @@ |
2476 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2477 | SVN_ERR(svn_fs_make_dir(txn_root, "/foo", subpool)); |
2478 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2479 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2480 | svn_pool_clear(subpool); |
2481 | |
2482 | /* Revision 2: Copy /foo to /bar, and add /bar/baz */ |
2483 | @@ -857,6 +876,7 @@ |
2484 | SVN_ERR(svn_fs_copy(root, "/foo", txn_root, "/bar", subpool)); |
2485 | SVN_ERR(svn_fs_make_file(txn_root, "/bar/baz", subpool)); |
2486 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2487 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2488 | svn_pool_clear(subpool); |
2489 | |
2490 | /* Revision 3: Modify /bar/baz */ |
2491 | @@ -864,6 +884,7 @@ |
2492 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2493 | SVN_ERR(svn_test__set_file_contents(txn_root, "/bar/baz", "brrt", subpool)); |
2494 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2495 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2496 | svn_pool_clear(subpool); |
2497 | |
2498 | /* Revision 4: Modify /bar/baz again */ |
2499 | @@ -871,6 +892,7 @@ |
2500 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2501 | SVN_ERR(svn_test__set_file_contents(txn_root, "/bar/baz", "bzzz", subpool)); |
2502 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2503 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2504 | svn_pool_clear(subpool); |
2505 | |
2506 | /* Now, check locations. */ |
2507 | @@ -1061,6 +1083,7 @@ |
2508 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2509 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
2510 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2511 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2512 | svn_pool_clear(subpool); |
2513 | |
2514 | SVN_ERR(svn_fs_create_access(&fs_access, "user1", pool)); |
2515 | @@ -1413,6 +1436,7 @@ |
2516 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2517 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
2518 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2519 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2520 | |
2521 | /* Load the authz rules for the greek tree. */ |
2522 | authz_contents = |
2523 | @@ -1631,6 +1655,7 @@ |
2524 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2525 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
2526 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2527 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2528 | |
2529 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
2530 | SVN_ERR(svn_fs_txn_name(&txn_name, txn, subpool)); |
2531 | @@ -1817,6 +1842,7 @@ |
2532 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2533 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
2534 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2535 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2536 | svn_pool_clear(subpool); |
2537 | |
2538 | /* Revision 2: Modify A/D/H/chi and A/B/E/alpha. */ |
2539 | @@ -1825,6 +1851,7 @@ |
2540 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/H/chi", "2", subpool)); |
2541 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/B/E/alpha", "2", subpool)); |
2542 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2543 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2544 | svn_pool_clear(subpool); |
2545 | |
2546 | /* Revision 3: Copy A/D to A/D2. */ |
2547 | @@ -1833,6 +1860,7 @@ |
2548 | SVN_ERR(svn_fs_revision_root(&root, fs, youngest_rev, subpool)); |
2549 | SVN_ERR(svn_fs_copy(root, "A/D", txn_root, "A/D2", subpool)); |
2550 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2551 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2552 | svn_pool_clear(subpool); |
2553 | |
2554 | /* Revision 4: Modify A/D/H/chi and A/D2/H/chi. */ |
2555 | @@ -1841,6 +1869,7 @@ |
2556 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D/H/chi", "4", subpool)); |
2557 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/D2/H/chi", "4", subpool)); |
2558 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2559 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2560 | svn_pool_clear(subpool); |
2561 | |
2562 | /* Revision 5: Delete A/D2/G. */ |
2563 | @@ -1848,6 +1877,7 @@ |
2564 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2565 | SVN_ERR(svn_fs_delete(txn_root, "A/D2/G", subpool)); |
2566 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2567 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2568 | svn_pool_clear(subpool); |
2569 | |
2570 | /* Revision 6: Restore A/D2/G (from version 4). */ |
2571 | @@ -1856,6 +1886,7 @@ |
2572 | SVN_ERR(svn_fs_revision_root(&root, fs, 4, subpool)); |
2573 | SVN_ERR(svn_fs_copy(root, "A/D2/G", txn_root, "A/D2/G", subpool)); |
2574 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2575 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2576 | svn_pool_clear(subpool); |
2577 | |
2578 | /* Revision 7: Move A/D2 to A/D (replacing it). */ |
2579 | @@ -1866,6 +1897,7 @@ |
2580 | SVN_ERR(svn_fs_copy(root, "A/D2", txn_root, "A/D", subpool)); |
2581 | SVN_ERR(svn_fs_delete(txn_root, "A/D2", subpool)); |
2582 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2583 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2584 | svn_pool_clear(subpool); |
2585 | |
2586 | /* Check locations for /@HEAD. */ |
2587 | @@ -2010,6 +2042,7 @@ |
2588 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2589 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
2590 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2591 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2592 | svn_pool_clear(subpool); |
2593 | |
2594 | /* Revision 2: make a bunch of changes */ |
2595 | @@ -2032,6 +2065,7 @@ |
2596 | subpool)); |
2597 | } |
2598 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2599 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2600 | svn_pool_clear(subpool); |
2601 | |
2602 | /* Confirm the contents of r2. */ |
2603 | @@ -2369,6 +2403,7 @@ |
2604 | SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool)); |
2605 | SVN_ERR(svn_test__create_greek_tree(txn_root, subpool)); |
2606 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2607 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2608 | |
2609 | /* Revision 2: Tweak A/mu and A/B/E/alpha. */ |
2610 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
2611 | @@ -2378,6 +2413,7 @@ |
2612 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/B/E/alpha", |
2613 | "Revision 2", subpool)); |
2614 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2615 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2616 | |
2617 | /* Revision 3: Tweak A/B/E/alpha and A/B/E/beta. */ |
2618 | SVN_ERR(svn_fs_begin_txn(&txn, fs, youngest_rev, subpool)); |
2619 | @@ -2387,6 +2423,7 @@ |
2620 | SVN_ERR(svn_test__set_file_contents(txn_root, "A/B/E/beta", |
2621 | "Revision 3", subpool)); |
2622 | SVN_ERR(svn_repos_fs_commit_txn(NULL, repos, &youngest_rev, txn, subpool)); |
2623 | + SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(youngest_rev)); |
2624 | |
2625 | |
2626 | for (start = 0; start <= youngest_rev; start++) |
2627 | |
2628 | === modified file 'subversion/tests/svn_test.h' |
2629 | --- subversion/tests/svn_test.h 2009-11-17 02:16:23 +0000 |
2630 | +++ subversion/tests/svn_test.h 2011-03-22 11:15:25 +0000 |
2631 | @@ -35,6 +35,17 @@ |
2632 | #endif /* __cplusplus */ |
2633 | |
2634 | |
2635 | |
2636 | +/** Handy macro to test a condition, returning SVN_ERR_TEST_FAILED if FALSE |
2637 | + * |
2638 | + * This macro should be used in place of SVN_ERR_ASSERT() since we don't |
2639 | + * want to core-dump the test. |
2640 | + */ |
2641 | +#define SVN_TEST_ASSERT(expr) \ |
2642 | + do { \ |
2643 | + if (!(expr)) \ |
2644 | + return svn_error_create(SVN_ERR_TEST_FAILED, NULL, #expr); \ |
2645 | + } while (0) |
2646 | + |
2647 | /* Baton for any arguments that need to be passed from main() to svn |
2648 | * test functions. |
2649 | */ |
Looks good to me.