You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/08/11 18:43:31 UTC
svn commit: r984468 [23/25] - in /subversion/branches/ignore-mergeinfo: ./
build/ build/generator/ build/generator/templates/ notes/
notes/tree-conflicts/ notes/wc-ng/ subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apache/subvers...
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/dir_prop_change.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/dir_prop_change.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/dir_prop_change.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/dir_prop_change.dump Wed Aug 11 16:43:22 2010
@@ -16,11 +16,6 @@ Revision-number: 1
Prop-content-length: 105
Content-length: 105
-K 7
-svn:log
-V 5
-blah
-
K 10
svn:author
V 6
@@ -29,6 +24,11 @@ K 8
svn:date
V 27
2005-12-21T23:12:58.931794Z
+K 7
+svn:log
+V 5
+blah
+
PROPS-END
Node-path:
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/file-dir-file.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/file-dir-file.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/file-dir-file.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/file-dir-file.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 105
Content-length: 105
-K 7
-svn:log
-V 5
-stuff
K 10
svn:author
V 6
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2006-04-14T22:50:10.459753Z
+K 7
+svn:log
+V 5
+stuff
PROPS-END
Node-path: a.txt
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/modified-in-place.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/modified-in-place.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/modified-in-place.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/modified-in-place.dump Wed Aug 11 16:43:22 2010
@@ -16,11 +16,6 @@ Revision-number: 1
Prop-content-length: 114
Content-length: 114
-K 7
-svn:log
-V 13
-Added a file
-
K 10
svn:author
V 6
@@ -29,6 +24,11 @@ K 8
svn:date
V 27
2005-11-09T19:58:23.561942Z
+K 7
+svn:log
+V 13
+Added a file
+
PROPS-END
Node-path: foo.txt
@@ -48,10 +48,6 @@ Revision-number: 2
Prop-content-length: 112
Content-length: 112
-K 7
-svn:log
-V 11
-modified it
K 10
svn:author
V 6
@@ -60,6 +56,10 @@ K 8
svn:date
V 27
2005-11-09T19:58:38.412025Z
+K 7
+svn:log
+V 11
+modified it
PROPS-END
Node-path: foo.txt
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/no-author.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/no-author.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/no-author.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/no-author.dump Wed Aug 11 16:43:22 2010
@@ -16,15 +16,15 @@ Revision-number: 1
Prop-content-length: 77
Content-length: 77
+K 8
+svn:date
+V 27
+2006-10-27T18:55:49.840787Z
K 7
svn:log
V 4
foo
-K 8
-svn:date
-V 27
-2006-10-27T18:55:49.840787Z
PROPS-END
Node-path: trunk
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/repo_with_copy_of_root_dir.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/repo_with_copy_of_root_dir.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/repo_with_copy_of_root_dir.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/repo_with_copy_of_root_dir.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 104
Content-length: 104
-K 7
-svn:log
-V 4
-wwww
K 10
svn:author
V 6
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2009-06-29T12:23:55.134926Z
+K 7
+svn:log
+V 4
+wwww
PROPS-END
Node-path: full
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/revprops.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/revprops.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/revprops.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/revprops.dump Wed Aug 11 16:43:22 2010
@@ -20,22 +20,22 @@ Revision-number: 1
Prop-content-length: 132
Content-length: 132
-K 7
-svn:log
-V 0
-
K 10
svn:author
V 3
lgo
-K 13
-svn:mergeinfo
-V 10
-/trunk:1:2
K 8
svn:date
V 27
2007-12-07T20:53:40.322712Z
+K 7
+svn:log
+V 0
+
+K 13
+svn:mergeinfo
+V 10
+/trunk:1:2
PROPS-END
Node-path: test.txt
@@ -64,10 +64,6 @@ Revision-number: 2
Prop-content-length: 124
Content-length: 124
-K 7
-svn:log
-V 26
-Import greek tree on trunk
K 10
svn:author
V 3
@@ -76,6 +72,10 @@ K 8
svn:date
V 27
2007-12-07T20:56:45.939703Z
+K 7
+svn:log
+V 26
+Import greek tree on trunk
PROPS-END
Node-path: trunk/A
@@ -310,10 +310,6 @@ Revision-number: 3
Prop-content-length: 127
Content-length: 127
-K 7
-svn:log
-V 29
-* trunk/A/D/H/psi: extra line
K 10
svn:author
V 3
@@ -322,6 +318,10 @@ K 8
svn:date
V 27
2007-12-07T21:12:26.232653Z
+K 7
+svn:log
+V 29
+* trunk/A/D/H/psi: extra line
PROPS-END
Node-path: trunk/A/D/H/psi
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-move-and-modify.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-move-and-modify.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-move-and-modify.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-move-and-modify.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 115
Content-length: 115
-K 7
-svn:log
-V 17
-Add base folders.
K 10
svn:author
V 3
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2008-01-02T20:33:05.279494Z
+K 7
+svn:log
+V 17
+Add base folders.
PROPS-END
Node-path: project1
@@ -70,10 +70,6 @@ Revision-number: 2
Prop-content-length: 110
Content-length: 110
-K 7
-svn:log
-V 12
-Add folders.
K 10
svn:author
V 3
@@ -82,6 +78,10 @@ K 8
svn:date
V 27
2008-01-02T20:33:06.265712Z
+K 7
+svn:log
+V 12
+Add folders.
PROPS-END
Node-path: project1/trunk/A
@@ -115,10 +115,6 @@ Revision-number: 3
Prop-content-length: 106
Content-length: 106
-K 7
-svn:log
-V 9
-Add file.
K 10
svn:author
V 3
@@ -127,6 +123,10 @@ K 8
svn:date
V 27
2008-01-02T20:33:07.283685Z
+K 7
+svn:log
+V 9
+Add file.
PROPS-END
Node-path: project1/trunk/A/B/C/file.txt
@@ -147,10 +147,6 @@ Revision-number: 4
Prop-content-length: 117
Content-length: 117
-K 7
-svn:log
-V 19
-Add file file2.txt.
K 10
svn:author
V 3
@@ -159,6 +155,10 @@ K 8
svn:date
V 27
2008-01-02T20:33:08.278330Z
+K 7
+svn:log
+V 19
+Add file file2.txt.
PROPS-END
Node-path: project1/trunk/A/B/C/file2.txt
@@ -179,10 +179,6 @@ Revision-number: 5
Prop-content-length: 127
Content-length: 127
-K 7
-svn:log
-V 29
-move project and modify file.
K 10
svn:author
V 3
@@ -191,6 +187,10 @@ K 8
svn:date
V 27
2008-01-02T20:33:12.238116Z
+K 7
+svn:log
+V 29
+move project and modify file.
PROPS-END
Node-path: branches
@@ -268,10 +268,6 @@ Revision-number: 6
Prop-content-length: 115
Content-length: 115
-K 7
-svn:log
-V 17
-removed project1.
K 10
svn:author
V 3
@@ -280,6 +276,10 @@ K 8
svn:date
V 27
2008-01-02T20:33:14.261412Z
+K 7
+svn:log
+V 17
+removed project1.
PROPS-END
Node-path: project1
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 97
Content-length: 97
-K 7
-svn:log
-V 0
-
K 10
svn:author
V 3
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2007-12-07T20:53:40.322712Z
+K 7
+svn:log
+V 0
+
PROPS-END
Node-path: test.txt
@@ -55,10 +55,6 @@ Revision-number: 2
Prop-content-length: 124
Content-length: 124
-K 7
-svn:log
-V 26
-Import greek tree on trunk
K 10
svn:author
V 3
@@ -67,6 +63,10 @@ K 8
svn:date
V 27
2007-12-07T20:56:45.939703Z
+K 7
+svn:log
+V 26
+Import greek tree on trunk
PROPS-END
Node-path: trunk/A
@@ -289,10 +289,6 @@ Revision-number: 3
Prop-content-length: 127
Content-length: 127
-K 7
-svn:log
-V 29
-* trunk/A/D/H/psi: extra line
K 10
svn:author
V 3
@@ -301,6 +297,10 @@ K 8
svn:date
V 27
2007-12-07T21:12:26.232653Z
+K 7
+svn:log
+V 29
+* trunk/A/D/H/psi: extra line
PROPS-END
Node-path: trunk/A/D/H/psi
@@ -318,10 +318,6 @@ Revision-number: 4
Prop-content-length: 128
Content-length: 128
-K 7
-svn:log
-V 26
-make changes on A and iota
K 10
svn:author
V 7
@@ -330,6 +326,10 @@ K 8
svn:date
V 27
2007-12-09T21:25:05.711998Z
+K 7
+svn:log
+V 26
+make changes on A and iota
PROPS-END
Node-path: trunk/A
@@ -362,10 +362,6 @@ Revision-number: 5
Prop-content-length: 116
Content-length: 116
-K 7
-svn:log
-V 14
-Renamed A to B
K 10
svn:author
V 7
@@ -374,6 +370,10 @@ K 8
svn:date
V 27
2007-12-09T21:26:14.639561Z
+K 7
+svn:log
+V 14
+Renamed A to B
PROPS-END
Node-path: trunk/B
@@ -391,10 +391,6 @@ Revision-number: 6
Prop-content-length: 116
Content-length: 116
-K 7
-svn:log
-V 14
-Moved B/D to A
K 10
svn:author
V 7
@@ -403,6 +399,10 @@ K 8
svn:date
V 27
2007-12-09T21:27:02.055549Z
+K 7
+svn:log
+V 14
+Moved B/D to A
PROPS-END
Node-path: trunk/A
@@ -420,10 +420,6 @@ Revision-number: 7
Prop-content-length: 125
Content-length: 125
-K 7
-svn:log
-V 23
-Added property to trunk
K 10
svn:author
V 7
@@ -432,6 +428,10 @@ K 8
svn:date
V 27
2007-12-09T21:28:07.300170Z
+K 7
+svn:log
+V 23
+Added property to trunk
PROPS-END
Node-path: trunk
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.expected.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.expected.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.expected.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.expected.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 97
Content-length: 97
-K 7
-svn:log
-V 0
-
K 10
svn:author
V 3
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2007-12-07T20:53:40.322712Z
+K 7
+svn:log
+V 0
+
PROPS-END
Node-path: trunk
@@ -43,10 +43,6 @@ Revision-number: 2
Prop-content-length: 124
Content-length: 124
-K 7
-svn:log
-V 26
-Import greek tree on trunk
K 10
svn:author
V 3
@@ -55,6 +51,10 @@ K 8
svn:date
V 27
2007-12-07T20:56:45.939703Z
+K 7
+svn:log
+V 26
+Import greek tree on trunk
PROPS-END
Node-path: trunk/A
@@ -276,10 +276,6 @@ Revision-number: 3
Prop-content-length: 127
Content-length: 127
-K 7
-svn:log
-V 29
-* trunk/A/D/H/psi: extra line
K 10
svn:author
V 3
@@ -288,6 +284,10 @@ K 8
svn:date
V 27
2007-12-07T21:12:26.232653Z
+K 7
+svn:log
+V 29
+* trunk/A/D/H/psi: extra line
PROPS-END
Node-path: trunk/A/D/H/psi
@@ -306,10 +306,6 @@ Revision-number: 4
Prop-content-length: 128
Content-length: 128
-K 7
-svn:log
-V 26
-make changes on A and iota
K 10
svn:author
V 7
@@ -318,6 +314,10 @@ K 8
svn:date
V 27
2007-12-09T21:25:05.711998Z
+K 7
+svn:log
+V 26
+make changes on A and iota
PROPS-END
Node-path: trunk/A
@@ -337,10 +337,6 @@ Revision-number: 5
Prop-content-length: 116
Content-length: 116
-K 7
-svn:log
-V 14
-Renamed A to B
K 10
svn:author
V 7
@@ -349,6 +345,10 @@ K 8
svn:date
V 27
2007-12-09T21:26:14.639561Z
+K 7
+svn:log
+V 14
+Renamed A to B
PROPS-END
Node-path: trunk/A
@@ -359,10 +359,6 @@ Revision-number: 6
Prop-content-length: 116
Content-length: 116
-K 7
-svn:log
-V 14
-Moved B/D to A
K 10
svn:author
V 7
@@ -371,6 +367,10 @@ K 8
svn:date
V 27
2007-12-09T21:27:02.055549Z
+K 7
+svn:log
+V 14
+Moved B/D to A
PROPS-END
Node-path: trunk/A
@@ -496,10 +496,6 @@ Revision-number: 7
Prop-content-length: 125
Content-length: 125
-K 7
-svn:log
-V 23
-Added property to trunk
K 10
svn:author
V 7
@@ -508,6 +504,10 @@ K 8
svn:date
V 27
2007-12-09T21:28:07.300170Z
+K 7
+svn:log
+V 23
+Added property to trunk
PROPS-END
Node-path: trunk
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 97
Content-length: 97
-K 7
-svn:log
-V 0
-
K 10
svn:author
V 3
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2007-12-07T20:53:40.322712Z
+K 7
+svn:log
+V 0
+
PROPS-END
Node-path: test.txt
@@ -55,10 +55,6 @@ Revision-number: 2
Prop-content-length: 124
Content-length: 124
-K 7
-svn:log
-V 26
-Import greek tree on trunk
K 10
svn:author
V 3
@@ -67,6 +63,10 @@ K 8
svn:date
V 27
2007-12-07T20:56:45.939703Z
+K 7
+svn:log
+V 26
+Import greek tree on trunk
PROPS-END
Node-path: trunk/A
@@ -289,10 +289,6 @@ Revision-number: 3
Prop-content-length: 127
Content-length: 127
-K 7
-svn:log
-V 29
-* trunk/A/D/H/psi: extra line
K 10
svn:author
V 3
@@ -301,6 +297,10 @@ K 8
svn:date
V 27
2007-12-07T21:12:26.232653Z
+K 7
+svn:log
+V 29
+* trunk/A/D/H/psi: extra line
PROPS-END
Node-path: trunk/A/D/H/psi
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.expected.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.expected.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.expected.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.expected.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 97
Content-length: 97
-K 7
-svn:log
-V 0
-
K 10
svn:author
V 3
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2007-12-07T20:53:40.322712Z
+K 7
+svn:log
+V 0
+
PROPS-END
Node-path: trunk
@@ -43,10 +43,6 @@ Revision-number: 2
Prop-content-length: 124
Content-length: 124
-K 7
-svn:log
-V 26
-Import greek tree on trunk
K 10
svn:author
V 3
@@ -55,6 +51,10 @@ K 8
svn:date
V 27
2007-12-07T20:56:45.939703Z
+K 7
+svn:log
+V 26
+Import greek tree on trunk
PROPS-END
Node-path: trunk/A
@@ -289,10 +289,6 @@ Revision-number: 3
Prop-content-length: 127
Content-length: 127
-K 7
-svn:log
-V 29
-* trunk/A/D/H/psi: extra line
K 10
svn:author
V 3
@@ -301,6 +297,10 @@ K 8
svn:date
V 27
2007-12-07T21:12:26.232653Z
+K 7
+svn:log
+V 29
+* trunk/A/D/H/psi: extra line
PROPS-END
Node-path: trunk/A/D/H/psi
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-empty-trunk.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-empty-trunk.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-empty-trunk.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-empty-trunk.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 105
Content-length: 105
-K 7
-svn:log
-V 5
-setup
K 10
svn:author
V 6
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2005-11-04T23:04:15.060966Z
+K 7
+svn:log
+V 5
+setup
PROPS-END
Node-path: tags
@@ -52,10 +52,6 @@ Revision-number: 2
Prop-content-length: 106
Content-length: 106
-K 7
-svn:log
-V 6
-tag it
K 10
svn:author
V 6
@@ -64,6 +60,10 @@ K 8
svn:date
V 27
2005-11-04T23:04:32.222710Z
+K 7
+svn:log
+V 6
+tag it
PROPS-END
Node-path: tags/an-empty-tag
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-dir.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-dir.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-dir.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-dir.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 105
Content-length: 105
-K 7
-svn:log
-V 5
-stuff
K 10
svn:author
V 6
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2005-11-05T00:11:07.194039Z
+K 7
+svn:log
+V 5
+stuff
PROPS-END
Node-path: tags
@@ -61,10 +61,6 @@ Revision-number: 2
Prop-content-length: 111
Content-length: 111
-K 7
-svn:log
-V 10
-more stuff
K 10
svn:author
V 6
@@ -73,6 +69,10 @@ K 8
svn:date
V 27
2005-11-05T00:11:18.910470Z
+K 7
+svn:log
+V 10
+more stuff
PROPS-END
Node-path: tags/a-tag
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 115
Content-length: 115
-K 7
-svn:log
-V 14
-initial layout
K 10
svn:author
V 6
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2005-11-07T20:22:08.601650Z
+K 7
+svn:log
+V 14
+initial layout
PROPS-END
Node-path: branches
@@ -61,10 +61,6 @@ Revision-number: 2
Prop-content-length: 111
Content-length: 111
-K 7
-svn:log
-V 10
-add a file
K 10
svn:author
V 6
@@ -73,6 +69,10 @@ K 8
svn:date
V 27
2005-11-07T20:22:25.607033Z
+K 7
+svn:log
+V 10
+add a file
PROPS-END
Node-path: trunk/foo.txt
@@ -92,11 +92,6 @@ Revision-number: 3
Prop-content-length: 113
Content-length: 113
-K 7
-svn:log
-V 12
-make a tag.
-
K 10
svn:author
V 6
@@ -105,6 +100,11 @@ K 8
svn:date
V 27
2005-11-07T20:22:46.490796Z
+K 7
+svn:log
+V 12
+make a tag.
+
PROPS-END
Node-path: tags/a-tag-with-file-contents
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file2.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file2.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file2.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file2.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 115
Content-length: 115
-K 7
-svn:log
-V 14
-initial layout
K 10
svn:author
V 6
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2005-11-07T22:09:30.282710Z
+K 7
+svn:log
+V 14
+initial layout
PROPS-END
Node-path: branches
@@ -58,13 +58,9 @@ PROPS-END
Revision-number: 2
-Prop-content-length: 106
-Content-length: 106
+Prop-content-length: 111
+Content-length: 111
-K 7
-svn:log
-V 6
-a file
K 10
svn:author
V 6
@@ -73,6 +69,10 @@ K 8
svn:date
V 27
2005-11-07T22:09:44.146564Z
+K 7
+svn:log
+V 10
+add a file
PROPS-END
Node-path: trunk/foo.txt
@@ -92,11 +92,6 @@ Revision-number: 3
Prop-content-length: 113
Content-length: 113
-K 7
-svn:log
-V 12
-Make a tag.
-
K 10
svn:author
V 6
@@ -105,6 +100,11 @@ K 8
svn:date
V 27
2005-11-07T22:10:03.753668Z
+K 7
+svn:log
+V 12
+make a tag.
+
PROPS-END
Node-path: tags/a-tag
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-with-modified-file.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-with-modified-file.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-with-modified-file.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/tag-with-modified-file.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 115
Content-length: 115
-K 7
-svn:log
-V 14
-initial layout
K 10
svn:author
V 6
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2005-11-07T22:20:16.583093Z
+K 7
+svn:log
+V 14
+initial layout
PROPS-END
Node-path: branches
@@ -61,11 +61,6 @@ Revision-number: 2
Prop-content-length: 112
Content-length: 112
-K 7
-svn:log
-V 11
-add a file
-
K 10
svn:author
V 6
@@ -74,6 +69,11 @@ K 8
svn:date
V 27
2005-11-07T22:20:39.840815Z
+K 7
+svn:log
+V 11
+add a file
+
PROPS-END
Node-path: trunk/foo.txt
@@ -93,11 +93,6 @@ Revision-number: 3
Prop-content-length: 126
Content-length: 126
-K 7
-svn:log
-V 25
-tag with a modified file
-
K 10
svn:author
V 6
@@ -106,6 +101,11 @@ K 8
svn:date
V 27
2005-11-07T22:21:15.332479Z
+K 7
+svn:log
+V 25
+tag with a modified file
+
PROPS-END
Node-path: tags/a-tag-with-mods
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/url-encoding-bug.dump
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/url-encoding-bug.dump?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/url-encoding-bug.dump (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svnsync_tests_data/url-encoding-bug.dump Wed Aug 11 16:43:22 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 101
Content-length: 101
-K 7
-svn:log
-V 1
-,
K 10
svn:author
V 6
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2006-10-23T20:26:00.932678Z
+K 7
+svn:log
+V 1
+,
PROPS-END
Node-path: foo%20bar.txt
@@ -47,10 +47,6 @@ Revision-number: 2
Prop-content-length: 101
Content-length: 101
-K 7
-svn:log
-V 1
-,
K 10
svn:author
V 6
@@ -59,6 +55,10 @@ K 8
svn:date
V 27
2006-10-23T20:26:12.565554Z
+K 7
+svn:log
+V 1
+,
PROPS-END
Node-path: foo bar.txt
@@ -78,10 +78,6 @@ Revision-number: 3
Prop-content-length: 102
Content-length: 102
-K 7
-svn:log
-V 1
-,
K 10
svn:author
V 7
@@ -90,6 +86,10 @@ K 8
svn:date
V 27
2006-10-23T20:52:11.378819Z
+K 7
+svn:log
+V 1
+,
PROPS-END
Node-path: foo%20bar.txt
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/actions.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/actions.py?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/actions.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/actions.py Wed Aug 11 16:43:22 2010
@@ -38,7 +38,13 @@ def no_sleep_for_timestamps():
def do_sleep_for_timestamps():
os.environ['SVN_I_LOVE_CORRUPTED_WORKING_COPIES_SO_DISABLE_SLEEP_FOR_TIMESTAMPS'] = 'no'
-def setup_pristine_repository():
+def no_relocate_validation():
+ os.environ['SVN_I_LOVE_CORRUPTED_WORKING_COPIES_SO_DISABLE_RELOCATE_VALIDATION'] = 'yes'
+
+def do_relocate_validation():
+ os.environ['SVN_I_LOVE_CORRUPTED_WORKING_COPIES_SO_DISABLE_RELOCATE_VALIDATION'] = 'no'
+
+def setup_pristine_greek_repository():
"""Create the pristine repository and 'svn import' the greek tree"""
# these directories don't exist out of the box, so we may have to create them
@@ -49,8 +55,8 @@ def setup_pristine_repository():
os.makedirs(main.general_repo_dir) # this also creates all the intermediate dirs
# If there's no pristine repos, create one.
- if not os.path.exists(main.pristine_dir):
- main.create_repos(main.pristine_dir)
+ if not os.path.exists(main.pristine_greek_repos_dir):
+ main.create_repos(main.pristine_greek_repos_dir)
# if this is dav, gives us access rights to import the greek tree.
if main.is_ra_type_dav():
@@ -66,7 +72,7 @@ def setup_pristine_repository():
exit_code, output, errput = main.run_svn(None, 'import', '-m',
'Log message for revision 1.',
main.greek_dump_dir,
- main.pristine_url)
+ main.pristine_greek_repos_url)
# check for any errors from the import
if len(errput):
@@ -99,9 +105,9 @@ def setup_pristine_repository():
# Finally, disallow any changes to the "pristine" repos.
error_msg = "Don't modify the pristine repository"
- create_failing_hook(main.pristine_dir, 'start-commit', error_msg)
- create_failing_hook(main.pristine_dir, 'pre-lock', error_msg)
- create_failing_hook(main.pristine_dir, 'pre-revprop-change', error_msg)
+ create_failing_hook(main.pristine_greek_repos_dir, 'start-commit', error_msg)
+ create_failing_hook(main.pristine_greek_repos_dir, 'pre-lock', error_msg)
+ create_failing_hook(main.pristine_greek_repos_dir, 'pre-revprop-change', error_msg)
######################################################################
@@ -110,7 +116,7 @@ def guarantee_empty_repository(path):
"""Guarantee that a local svn repository exists at PATH, containing
nothing."""
- if path == main.pristine_dir:
+ if path == main.pristine_greek_repos_dir:
print("ERROR: attempt to overwrite the pristine repos! Aborting.")
sys.exit(1)
@@ -121,19 +127,19 @@ def guarantee_empty_repository(path):
# Used by every test, so that they can run independently of one
# another. Every time this routine is called, it recursively copies
# the `pristine repos' to a new location.
-# Note: make sure setup_pristine_repository was called once before
+# Note: make sure setup_pristine_greek_repository was called once before
# using this function.
def guarantee_greek_repository(path):
"""Guarantee that a local svn repository exists at PATH, containing
nothing but the greek-tree at revision 1."""
- if path == main.pristine_dir:
+ if path == main.pristine_greek_repos_dir:
print("ERROR: attempt to overwrite the pristine repos! Aborting.")
sys.exit(1)
# copy the pristine repository to PATH.
main.safe_rmtree(path)
- if main.copy_repos(main.pristine_dir, path, 1):
+ if main.copy_repos(main.pristine_greek_repos_dir, path, 1):
print("ERROR: copying repository failed.")
sys.exit(1)
@@ -276,14 +282,29 @@ def run_and_verify_load(repo_dir, dump_f
None, expected_stderr)
-def run_and_verify_dump(repo_dir):
+def run_and_verify_dump(repo_dir, deltas=False):
"Runs 'svnadmin dump' and reports any errors, returning the dump content."
- exit_code, output, errput = main.run_svnadmin('dump', repo_dir)
+ if deltas:
+ exit_code, output, errput = main.run_svnadmin('dump', '--deltas',
+ repo_dir)
+ else:
+ exit_code, output, errput = main.run_svnadmin('dump', repo_dir)
verify.verify_outputs("Missing expected output(s)", output, errput,
verify.AnyOutput, verify.AnyOutput)
return output
+def run_and_verify_svnrdump(dumpfile_content, expected_stdout,
+ expected_stderr, expected_exit, *varargs):
+ """Runs 'svnrdump dump|load' depending on dumpfile_content and
+ reports any errors."""
+ exit_code, output, err = main.run_svnrdump(dumpfile_content, *varargs)
+
+ verify.verify_outputs("Unexpected output", output, err,
+ expected_stdout, expected_stderr)
+ verify.verify_exit_code("Unexpected return code", exit_code, expected_exit)
+ return output
+
def load_repo(sbox, dumpfile_path = None, dump_str = None):
"Loads the dumpfile into sbox"
if not dump_str:
@@ -310,12 +331,13 @@ def load_repo(sbox, dumpfile_path = None
#
-def run_and_verify_checkout(URL, wc_dir_name, output_tree, disk_tree,
- singleton_handler_a = None,
- a_baton = None,
- singleton_handler_b = None,
- b_baton = None,
- *args):
+def run_and_verify_checkout2(do_remove,
+ URL, wc_dir_name, output_tree, disk_tree,
+ singleton_handler_a = None,
+ a_baton = None,
+ singleton_handler_b = None,
+ b_baton = None,
+ *args):
"""Checkout the URL into a new directory WC_DIR_NAME. *ARGS are any
extra optional args to the checkout subcommand.
@@ -326,8 +348,8 @@ def run_and_verify_checkout(URL, wc_dir_
function's doc string for more details. Return if successful, raise
on failure.
- WC_DIR_NAME is deleted if present unless the '--force' option is passed
- in *ARGS."""
+ WC_DIR_NAME is deleted if DO_REMOVE is True.
+ """
if isinstance(output_tree, wc.State):
output_tree = output_tree.old_tree()
@@ -337,7 +359,7 @@ def run_and_verify_checkout(URL, wc_dir_
# Remove dir if it's already there, unless this is a forced checkout.
# In that case assume we want to test a forced checkout's toleration
# of obstructing paths.
- if '--force' not in args:
+ if do_remove:
main.safe_rmtree(wc_dir_name)
# Checkout and make a tree of the output, using l:foo/p:bar
@@ -368,6 +390,28 @@ def run_and_verify_checkout(URL, wc_dir_
tree.dump_tree_script(actual, wc_dir_name + os.sep)
raise
+def run_and_verify_checkout(URL, wc_dir_name, output_tree, disk_tree,
+ singleton_handler_a = None,
+ a_baton = None,
+ singleton_handler_b = None,
+ b_baton = None,
+ *args):
+ """Same as run_and_verify_checkout2(), but without the DO_REMOVE arg.
+ WC_DIR_NAME is deleted if present unless the '--force' option is passed
+ in *ARGS."""
+
+
+ # Remove dir if it's already there, unless this is a forced checkout.
+ # In that case assume we want to test a forced checkout's toleration
+ # of obstructing paths.
+ return run_and_verify_checkout2(('--force' not in args),
+ URL, wc_dir_name, output_tree, disk_tree,
+ singleton_handler_a,
+ a_baton,
+ singleton_handler_b,
+ b_baton,
+ *args)
+
def run_and_verify_export(URL, export_dir_name, output_tree, disk_tree,
*args):
@@ -1515,16 +1559,15 @@ def run_and_verify_resolved(expected_pat
def make_repo_and_wc(sbox, create_wc = True, read_only = False):
"""Create a fresh 'Greek Tree' repository and check out a WC from it.
- If read_only is False, a dedicated repository will be created, named
- TEST_NAME. The repository will live in the global dir 'general_repo_dir'.
- If read_only is True the pristine repository will be used.
+ If READ_ONLY is False, a dedicated repository will be created, at the path
+ SBOX.repo_dir. If READ_ONLY is True, the pristine repository will be used.
+ In either case, SBOX.repo_url is assumed to point to the repository that
+ will be used.
If create_wc is True, a dedicated working copy will be checked out from
- the repository, named TEST_NAME. The wc directory will live in the global
- dir 'general_wc_dir'.
+ the repository, at the path SBOX.wc_dir.
- Both variables 'general_repo_dir' and 'general_wc_dir' are defined at the
- top of this test suite.) Returns on success, raises on failure."""
+ Returns on success, raises on failure."""
# Create (or copy afresh) a new repos with a greek tree in it.
if not read_only:
@@ -1576,25 +1619,28 @@ def get_virginal_state(wc_dir, rev):
return state
-def remove_admin_tmp_dir(wc_dir):
- "Remove the tmp directory within the administrative directory."
-
- tmp_path = os.path.join(wc_dir, main.get_admin_name(), 'tmp')
- ### Any reason not to use main.safe_rmtree()?
- os.rmdir(os.path.join(tmp_path, 'prop-base'))
- os.rmdir(os.path.join(tmp_path, 'props'))
- os.rmdir(os.path.join(tmp_path, 'text-base'))
- os.rmdir(tmp_path)
-
# Cheap administrative directory locking
def lock_admin_dir(wc_dir):
"Lock a SVN administrative directory"
+ dot_svn = svntest.main.get_admin_name()
+ root_path = wc_dir
+ relpath = ''
+
+ while True:
+ db_path = os.path.join(root_path, dot_svn, 'wc.db')
+ try:
+ db = svntest.sqlite3.connect(db_path)
+ break
+ except: pass
+ head, tail = os.path.split(root_path)
+ if head == root_path:
+ raise svntest.Failure("No DB for " + wc_dir)
+ root_path = head
+ relpath = os.path.join(tail, relpath).replace(os.path.sep, '/').rstrip('/')
- db = svntest.sqlite3.connect(os.path.join(wc_dir, main.get_admin_name(),
- 'wc.db'))
db.execute('insert into wc_lock (wc_id, local_dir_relpath, locked_levels) '
+ 'values (?, ?, ?)',
- (1, '', 0))
+ (1, relpath, 0))
db.commit()
db.close()
@@ -2265,7 +2311,8 @@ def deep_trees_run_tests_scheme_for_upda
j = os.path.join
- sbox.build()
+ if not sbox.is_built():
+ sbox.build()
wc_dir = sbox.wc_dir
@@ -2506,7 +2553,8 @@ def deep_trees_run_tests_scheme_for_swit
j = os.path.join
- sbox.build()
+ if not sbox.is_built():
+ sbox.build()
wc_dir = sbox.wc_dir
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/factory.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/factory.py?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/factory.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/factory.py Wed Aug 11 16:43:22 2010
@@ -660,6 +660,8 @@ class TestFactory:
del runargs[url_arg.argnr]
wc = wc_arg.wc
+ if not wc:
+ raise Failure("Unexpected argument ordering to factory's 'svn switch'?")
pychdir = self.chdir(do_chdir, wc)
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/main.py?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/main.py Wed Aug 11 16:43:22 2010
@@ -152,6 +152,7 @@ def url2pathname(path):
svn_binary = os.path.abspath('../../svn/svn' + _exe)
svnadmin_binary = os.path.abspath('../../svnadmin/svnadmin' + _exe)
svnlook_binary = os.path.abspath('../../svnlook/svnlook' + _exe)
+svnrdump_binary = os.path.abspath('../../svnrdump/svnrdump' + _exe)
svnsync_binary = os.path.abspath('../../svnsync/svnsync' + _exe)
svnversion_binary = os.path.abspath('../../svnversion/svnversion' + _exe)
svndumpfilter_binary = os.path.abspath('../../svndumpfilter/svndumpfilter' + \
@@ -160,7 +161,7 @@ entriesdump_binary = os.path.abspath('en
# Location to the pristine repository, will be calculated from test_area_url
# when we know what the user specified for --url.
-pristine_url = None
+pristine_greek_repos_url = None
# Global variable to track all of our options
options = None
@@ -186,7 +187,7 @@ general_wc_dir = os.path.join(work_dir,
temp_dir = os.path.join(work_dir, 'local_tmp')
# (derivatives of the tmp dir.)
-pristine_dir = os.path.join(temp_dir, "repos")
+pristine_greek_repos_dir = os.path.join(temp_dir, "repos")
greek_dump_dir = os.path.join(temp_dir, "greekfiles")
default_config_dir = os.path.abspath(os.path.join(temp_dir, "config"))
@@ -268,6 +269,24 @@ def get_admin_name():
else:
return '.svn'
+def wc_is_singledb(wcpath):
+ """Temporary function that checks whether a working copy directory looks
+ like it is part of a single-db working copy."""
+
+ pristine = os.path.join(wcpath, get_admin_name(), 'pristine')
+ if not os.path.exists(pristine):
+ return True
+
+ # Now we must be looking at a multi-db WC dir or the root dir of a
+ # single-DB WC. Sharded 'pristine' dir => single-db, else => multi-db.
+ for name in os.listdir(pristine):
+ if len(name) == 2:
+ return True
+ elif len(name) == 40:
+ return False
+
+ return False
+
def get_start_commit_hook_path(repo_dir):
"Return the path of the start-commit-hook conf file in REPO_DIR."
@@ -576,6 +595,16 @@ def run_svnlook(*varargs):
list of lines (including line terminators)."""
return run_command(svnlook_binary, 1, 0, *varargs)
+def run_svnrdump(stdin_input, *varargs):
+ """Run svnrdump with VARARGS, returns exit code as int; stdout, stderr as
+ list of lines (including line terminators)."""
+ if stdin_input:
+ return run_command_stdin(svnrdump_binary, 0, 1, 0, stdin_input,
+ *(_with_auth(_with_config_dir(varargs))))
+ else:
+ return run_command(svnrdump_binary, 1, 0,
+ *(_with_auth(_with_config_dir(varargs))))
+
def run_svnsync(*varargs):
"""Run svnsync with VARARGS, returns exit code as int; stdout, stderr as
list of lines (including line terminators)."""
@@ -592,9 +621,6 @@ def run_entriesdump(path):
# to stdout in verbose mode.
exit_code, stdout_lines, stderr_lines = spawn_process(entriesdump_binary,
0, 0, None, path)
- if options.verbose:
- ### finish the CMD output
- print
if exit_code or stderr_lines:
### report on this? or continue to just skip it?
return None
@@ -605,6 +631,13 @@ def run_entriesdump(path):
exec(''.join([line for line in stdout_lines if not line.startswith("DBG:")]))
return entries
+def run_entriesdump_subdirs(path):
+ """Run the entries-dump helper, returning a list of directory names."""
+ # use spawn_process rather than run_command to avoid copying all the data
+ # to stdout in verbose mode.
+ exit_code, stdout_lines, stderr_lines = spawn_process(entriesdump_binary,
+ 0, 0, None, '--subdirs', path)
+ return [line.strip() for line in stdout_lines if not line.startswith("DBG:")]
# Chmod recursively on a whole subtree
def chmod_tree(path, mode, mask):
@@ -1009,6 +1042,9 @@ def is_fs_type_fsfs():
def is_os_windows():
return os.name == 'nt'
+def is_windows_type_dav():
+ return is_os_windows() and is_ra_type_dav()
+
def is_posix_os():
return os.name == 'posix'
@@ -1156,6 +1192,7 @@ class TestRunner:
str(self.index)
svntest.actions.no_sleep_for_timestamps()
+ svntest.actions.do_relocate_validation()
saved_dir = os.getcwd()
try:
@@ -1291,7 +1328,7 @@ def _create_parser():
parser = optparse.OptionParser(usage=usage)
parser.add_option('-l', '--list', action='store_true', dest='list_tests',
help='Print test doc strings instead of running them')
- parser.add_option('-v', '--verbose', action='store_true',
+ parser.add_option('-v', '--verbose', action='store_true', dest='verbose',
help='Print binary command-lines (not with --quiet)')
parser.add_option('-q', '--quiet', action='store_true',
help='Print only unexpected results (not with --verbose)')
@@ -1382,7 +1419,7 @@ def run_tests(test_list, serial_only = F
appropriate exit code.
"""
- global pristine_url
+ global pristine_greek_repos_url
global svn_binary
global svnadmin_binary
global svnlook_binary
@@ -1446,8 +1483,8 @@ def run_tests(test_list, serial_only = F
parser.error("invalid test number, range of numbers, " +
"or function '%s'\n" % arg)
- # Calculate pristine_url from test_area_url.
- pristine_url = options.test_area_url + '/' + pathname2url(pristine_dir)
+ # Calculate pristine_greek_repos_url from test_area_url.
+ pristine_greek_repos_url = options.test_area_url + '/' + pathname2url(pristine_greek_repos_dir)
if options.use_jsvn:
if options.svn_bin is None:
@@ -1500,7 +1537,7 @@ def run_tests(test_list, serial_only = F
create_config_dir(default_config_dir)
# Setup the pristine repository
- svntest.actions.setup_pristine_repository()
+ svntest.actions.setup_pristine_greek_repository()
# Run the tests.
exit_code = _internal_run_tests(test_list, testnums, options.parallel)
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/sandbox.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/sandbox.py?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/sandbox.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/sandbox.py Wed Aug 11 16:43:22 2010
@@ -51,8 +51,8 @@ class Sandbox:
self.repo_url = (svntest.main.options.test_area_url + '/'
+ svntest.main.pathname2url(self.repo_dir))
else:
- self.repo_dir = svntest.main.pristine_dir
- self.repo_url = svntest.main.pristine_url
+ self.repo_dir = svntest.main.pristine_greek_repos_dir
+ self.repo_url = svntest.main.pristine_greek_repos_url
### TODO: Move this into to the build() method
# For dav tests we need a single authz file which must be present,
@@ -96,11 +96,8 @@ class Sandbox:
and check out a WC from it (unless CREATE_WC is false). Change the
sandbox's name to NAME. See actions.make_repo_and_wc() for details."""
self._set_name(name, read_only)
- if svntest.actions.make_repo_and_wc(self, create_wc, read_only):
- raise svntest.Failure("Could not build repository and sandbox '%s'"
- % self.name)
- else:
- self._is_built = True
+ svntest.actions.make_repo_and_wc(self, create_wc, read_only)
+ self._is_built = True
def add_test_path(self, path, remove=True):
self.test_paths.append(path)
@@ -133,6 +130,20 @@ class Sandbox:
self.add_test_path(path, remove)
return path
+ tempname_offs = 0 # Counter for get_tempname
+
+ def get_tempname(self, prefix='tmp'):
+ """Get a stable name for a temporary file that will be removed after
+ running the test"""
+
+ dir = self.add_wc_path('tmp')
+ if not os.path.exists(dir):
+ os.mkdir(dir)
+
+ self.tempname_offs = self.tempname_offs + 1
+
+ return os.path.join(dir, '%s-%s' % (prefix, self.tempname_offs))
+
def cleanup_test_paths(self):
"Clean up detritus from this sandbox, and any dependents."
if self.dependents:
@@ -141,7 +152,7 @@ class Sandbox:
sbox.cleanup_test_paths()
# cleanup all test specific working copies and repositories
for path in self.test_paths:
- if not path is svntest.main.pristine_dir:
+ if not path is svntest.main.pristine_greek_repos_dir:
_cleanup_test_path(path)
def is_built(self):
@@ -153,6 +164,19 @@ class Sandbox:
wc_dir = self.wc_dir
return os.path.join(wc_dir, svntest.wc.to_ospath(relpath))
+ def redirected_root_url(self, temporary=False):
+ """If TEMPORARY is set, return the URL which should be configured
+ to temporarily redirect to the root of this repository;
+ otherwise, return the URL which should be configured to
+ permanent redirect there. (Assumes that the sandbox is not
+ read-only.)"""
+ assert not self.read_only
+ assert self.repo_url.startswith("http")
+ parts = self.repo_url.rsplit('/', 1)
+ return '%s/REDIRECT-%s-%s' % (parts[0],
+ temporary and 'TEMP' or 'PERM',
+ parts[1])
+
def simple_commit(self, target=None):
assert not self.read_only
if target is None:
@@ -220,6 +244,6 @@ def _cleanup_test_path(path, retrying=Fa
try:
svntest.main.safe_rmtree(path)
except:
- if svntest.main.verbose_mode:
+ if svntest.main.options.verbose:
print("WARNING: cleanup failed, will try again later")
_deferred_test_paths.append(path)
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/tree.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/tree.py?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/tree.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/tree.py Wed Aug 11 16:43:22 2010
@@ -257,7 +257,7 @@ class SVNTreeNode:
path = path[1:]
line = prepend
- line += "%-20s: Item(" % ("'%s'" % path)
+ line += "%-20s: Item(" % ("'%s'" % path.replace(os.sep, '/'))
comma = False
mime_type = self.props.get("svn:mime-type")
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/verify.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/verify.py?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/verify.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/verify.py Wed Aug 11 16:43:22 2010
@@ -25,6 +25,7 @@
######################################################################
import re, sys
+from difflib import unified_diff
import svntest
@@ -279,19 +280,33 @@ def display_lines(message, label, expect
output = 'EXPECTED %s' % label
if expected_is_regexp:
output += ' (regexp)'
+ expected = [expected + '\n']
if expected_is_unordered:
output += ' (unordered)'
output += ':'
print(output)
for x in expected:
sys.stdout.write(x)
- if expected_is_regexp:
- sys.stdout.write('\n')
if actual is not None:
print('ACTUAL %s:' % label)
for x in actual:
sys.stdout.write(x)
+ # Additionally print unified diff
+ if not expected_is_regexp:
+ print('DIFF ' + ' '.join(output.split(' ')[1:]))
+
+ if type(expected) is str:
+ expected = [expected]
+
+ if type(actual) is str:
+ actual = [actual]
+
+ for x in unified_diff(expected, actual,
+ fromfile="EXPECTED %s" % label,
+ tofile="ACTUAL %s" % label):
+ sys.stdout.write(x)
+
def compare_and_display_lines(message, label, expected, actual,
raisable=None):
"""Compare two sets of output lines, and print them if they differ,
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/wc.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/wc.py?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/wc.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/svntest/wc.py Wed Aug 11 16:43:22 2010
@@ -323,6 +323,10 @@ class State:
if item.entry_rev is not None:
item.wc_rev = item.entry_rev
item.entry_rev = None
+ # status might vary as well, e.g. when a directory is missing
+ if item.entry_status is not None:
+ item.status = item.entry_status
+ item.entry_status = None
if item.writelocked:
# we don't contact the repository, so our only information is what
# is in the working copy. 'K' means we have one and it matches the
@@ -551,17 +555,14 @@ class State:
desc = { }
dot_svn = svntest.main.get_admin_name()
- for dirpath, dirs, files in os.walk(base):
- if dot_svn in dirs:
- # don't visit the .svn subdir
- dirs.remove(dot_svn)
- else:
- # this is not a versioned directory. remove all subdirectories since
- # we don't want to visit them. then skip this directory.
- dirs[:] = []
- continue
+ for dirpath in svntest.main.run_entriesdump_subdirs(base):
+
+ if base == '.' and dirpath != '.':
+ dirpath = '.' + os.path.sep + dirpath
entries = svntest.main.run_entriesdump(dirpath)
+ if entries is None:
+ continue
if dirpath == '.':
parent = ''
@@ -603,12 +604,6 @@ class State:
if implied_url and implied_url != entry.url:
item.switched = 'S'
- # only recurse into directories found in this entries. remove any
- # which are not mentioned.
- unmentioned = set(dirs) - set(entries.keys())
- for subdir in unmentioned:
- dirs.remove(subdir)
-
return cls('', desc)
@@ -621,7 +616,8 @@ class StateItem:
"""
def __init__(self, contents=None, props=None,
- status=None, verb=None, wc_rev=None, entry_rev=None,
+ status=None, verb=None, wc_rev=None,
+ entry_rev=None, entry_status=None,
locked=None, copied=None, switched=None, writelocked=None,
treeconflict=None):
# provide an empty prop dict if it wasn't provided
@@ -644,9 +640,10 @@ class StateItem:
self.verb = verb
# The base revision number of the node in the WC, as a string.
self.wc_rev = wc_rev
- # This one will be set when we expect the wc_rev to differ from the one
- # found ni the entries code.
+ # These will be set when we expect the wc_rev/status to differ from those
+ # found in the entries code.
self.entry_rev = entry_rev
+ self.entry_status = entry_status
# For the following attributes, the value is the status character of that
# field from 'svn status', except using value None instead of status ' '.
self.locked = locked
@@ -820,31 +817,41 @@ def text_base_path(file_path):
"""Return the path to the text-base file for the versioned file
FILE_PATH."""
dot_svn = svntest.main.get_admin_name()
- parent_path, file_name = os.path.split(file_path)
+ root_path, relpath = os.path.split(file_path)
- ### Temporary until the wc format changes.
- text_base_path = os.path.join(parent_path, dot_svn, 'text-base')
- if os.path.exists(text_base_path):
- return os.path.join(text_base_path, file_name + '.svn-base')
+ while True:
+ db_path = os.path.join(root_path, dot_svn, 'wc.db')
+ try:
+ db = svntest.sqlite3.connect(db_path)
+ break
+ except: pass
+ head, tail = os.path.split(root_path)
+ if head == root_path:
+ raise svntest.Failure("No DB for " + file_path)
+ root_path = head
+ relpath = os.path.join(tail, relpath).replace(os.sep, '/')
- db_path = os.path.join(parent_path, dot_svn, 'wc.db')
- db = svntest.sqlite3.connect(db_path)
c = db.cursor()
c.execute("""select checksum from working_node
- where local_relpath = '""" + file_name + """'""")
+ where local_relpath = '""" + relpath + """'""")
checksum = c.fetchone()
if checksum is None:
c.execute("""select checksum from base_node
- where local_relpath = '""" + file_name + """'""")
- checksum = c.fetchone()[0]
- if checksum is not None and checksum[0:6] == "$md5 $":
- c.execute("""select checksum from pristine
- where md5_checksum = '""" + checksum + """'""")
+ where local_relpath = '""" + relpath + """'""")
checksum = c.fetchone()[0]
- if checksum is None:
- raise svntest.Failure("No SHA1 checksum for " + file_path)
+ if checksum is None or checksum[0:6] != "$sha1$":
+ raise svntest.Failure("No SHA1 checksum for " + relpath)
db.close()
- return os.path.join(parent_path, dot_svn, 'pristine', checksum[6:])
+
+ checksum = checksum[6:]
+ # Calculate single DB location
+ fn = os.path.join(root_path, dot_svn, 'pristine', checksum[0:2], checksum)
+
+ if os.path.isfile(fn):
+ return fn
+
+ # Calculate per dir location
+ return os.path.join(root_path, dot_svn, 'pristine', checksum)
# ------------
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/switch_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/switch_tests.py?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/switch_tests.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/switch_tests.py Wed Aug 11 16:43:22 2010
@@ -38,6 +38,7 @@ XFail = svntest.testcase.XFail
Item = svntest.wc.StateItem
from svntest.main import SVN_PROP_MERGEINFO, server_has_mergeinfo
+from externals_tests import change_external
### Bummer. It would be really nice to have easy access to the URL
@@ -566,7 +567,10 @@ def relocate_deleted_missing_copied(sbox
'A/D2/H/omega' : Item(status=' ', wc_rev='-', copied='+'),
'A/D2/H/psi' : Item(status=' ', wc_rev='-', copied='+'),
})
- expected_status.tweak('A/B/F', status='! ', wc_rev='?')
+ if svntest.main.wc_is_singledb(wc_dir):
+ expected_status.tweak('A/B/F', status='! ', wc_rev='1')
+ else:
+ expected_status.tweak('A/B/F', status='! ', wc_rev='?')
svntest.actions.run_and_verify_status(wc_dir, expected_status)
# Relocate
@@ -580,20 +584,28 @@ def relocate_deleted_missing_copied(sbox
# Deleted and missing entries should be preserved, so update should
# show only A/B/F being reinstated
- expected_output = svntest.wc.State(wc_dir, {
- 'A/B/F' : Item(status='A '),
- })
+ if svntest.main.wc_is_singledb(wc_dir):
+ expected_output = svntest.wc.State(wc_dir, {
+ 'A/B/F' : Item(verb='Restored'),
+ })
+ else:
+ expected_output = svntest.wc.State(wc_dir, {
+ 'A/B/F' : Item(status='A '),
+ })
expected_disk = svntest.main.greek_state.copy()
expected_disk.remove('A/mu')
expected_disk.add({
'A/D2' : Item(),
'A/D2/gamma' : Item("This is the file 'gamma'.\n"),
- 'A/D2/G' : Item(),
'A/D2/H' : Item(),
'A/D2/H/chi' : Item("This is the file 'chi'.\n"),
'A/D2/H/omega' : Item("This is the file 'omega'.\n"),
'A/D2/H/psi' : Item("This is the file 'psi'.\n"),
})
+ if not svntest.main.wc_is_singledb(wc_dir):
+ expected_disk.add({
+ 'A/D2/G' : Item(),
+ })
expected_status.add({
'A/B/F' : Item(status=' ', wc_rev='2'),
})
@@ -804,35 +816,92 @@ def bad_intermediate_urls(sbox):
"bad intermediate urls in use"
sbox.build()
wc_dir = sbox.wc_dir
+ url = sbox.repo_url
+
+ A = os.path.join(wc_dir, 'A')
+ A_Z = os.path.join(wc_dir, 'A', 'Z')
+ url_A_C = url + '/A/C'
+ url_A_C_A = url + '/A/C/A'
+ url_A_C_A_Z = url + '/A/C/A/Z'
# We'll be switching our working copy to (a modified) A/C in the Greek tree.
# First, make an extra subdirectory in C to match one in the root, plus
# another one inside of that.
- C_url = sbox.repo_url + '/A/C'
- C_A_url = sbox.repo_url + '/A/C/A'
- C_A_Z_url = sbox.repo_url + '/A/C/A/Z'
svntest.actions.run_and_verify_svn(None,
['\n', 'Committed revision 2.\n'], [],
'mkdir', '-m', 'log msg',
- C_A_url, C_A_Z_url)
+ url_A_C_A, url_A_C_A_Z)
# Now, we'll drop a conflicting path under the root.
- A_path = os.path.join(wc_dir, 'A')
- A_Z_path = os.path.join(A_path, 'Z')
- svntest.main.file_append(A_Z_path, 'Look, Mom, no ... switch success.')
+ svntest.main.file_append(A_Z, 'Look, Mom, a ... tree conflict.')
- # This switch should fail for reasons of obstruction.
- exit_code, out, err = svntest.main.run_svn(1, 'switch',
- C_url, wc_dir)
- if not err:
- raise svntest.Failure
+ #svntest.factory.make(sbox, """
+ # svn switch url/A/C wc_dir
+ # # svn info A
+ # # check that we can recover from the tree conflict
+ # rm A/Z
+ # svn up
+ # """)
+ #exit(0)
+
+ # svn switch url/A/C wc_dir
+ expected_output = svntest.wc.State(wc_dir, {
+ 'A/mu' : Item(status='D '),
+ 'A/Z' : Item(status=' ', treeconflict='C'),
+ 'A/C' : Item(status='D '),
+ 'A/B' : Item(status='D '),
+ 'A/D' : Item(status='D '),
+ 'iota' : Item(status='D '),
+ })
- # However, the URL for A should now reflect A/C/A, not something else.
+ expected_disk = svntest.main.greek_state.copy()
+ expected_disk.remove('iota', 'A/B', 'A/B/E', 'A/B/E/beta', 'A/B/E/alpha',
+ 'A/B/F', 'A/B/lambda', 'A/D', 'A/D/G', 'A/D/G/rho', 'A/D/G/pi',
+ 'A/D/G/tau', 'A/D/H', 'A/D/H/psi', 'A/D/H/omega', 'A/D/H/chi',
+ 'A/D/gamma', 'A/mu', 'A/C')
+ expected_disk.add({
+ 'A/Z' : Item(contents="Look, Mom, a ... tree conflict."),
+ })
+
+ expected_status = actions.get_virginal_state(wc_dir, 2)
+ expected_status.remove('iota', 'A/B', 'A/B/E', 'A/B/E/beta', 'A/B/E/alpha',
+ 'A/B/F', 'A/B/lambda', 'A/D', 'A/D/G', 'A/D/G/rho', 'A/D/G/pi',
+ 'A/D/G/tau', 'A/D/H', 'A/D/H/psi', 'A/D/H/omega', 'A/D/H/chi',
+ 'A/D/gamma', 'A/mu', 'A/C')
+ expected_status.add({
+ 'A/Z' : Item(status='? ', treeconflict='C'),
+ })
+
+ actions.run_and_verify_switch(wc_dir, wc_dir, url_A_C, expected_output,
+ expected_disk, expected_status, None, None, None, None, None, False)
+
+
+ # However, the URL for wc/A should now reflect ^/A/C/A, not something else.
expected_infos = [
{ 'URL' : '.*/A/C/A$' },
]
- svntest.actions.run_and_verify_info(expected_infos, A_path)
+ svntest.actions.run_and_verify_info(expected_infos, A)
+
+
+ # check that we can recover from the tree conflict
+ # rm A/Z
+ os.remove(A_Z)
+
+ # svn up
+ expected_output = svntest.wc.State(wc_dir, {
+ 'A/Z' : Item(status='A '),
+ })
+
+ expected_disk.tweak('A/Z', contents=None)
+
+ expected_status.tweak(status=' ', wc_rev='2')
+ expected_status.tweak('A/Z', treeconflict=None)
+
+ actions.run_and_verify_update(wc_dir, expected_output, expected_disk,
+ expected_status, None, None, None, None, None, False, wc_dir)
+
+
#----------------------------------------------------------------------
@@ -1274,47 +1343,48 @@ def forced_switch(sbox):
'--force')
#----------------------------------------------------------------------
-
+# This test currently XFails for serf as the different order of
+# operations is not handled here.
def forced_switch_failures(sbox):
"forced switch detects tree conflicts"
# svntest.factory.make(sbox,
# """
# # Add a directory to obstruct a file.
# mkdir A/B/F/pi
- #
+ #
# # Add a file to obstruct a directory.
# echo "The file 'H'" > A/C/H
- #
+ #
# # Test three cases where forced switch should cause a tree conflict
- #
+ #
# # 1) A forced switch that tries to add a file when an unversioned
# # directory of the same name already exists. (Currently fails)
# svn switch --force url/A/D A/C
- #
+ #
# # 2) A forced switch that tries to add a dir when a file of the same
# # name already exists. (Tree conflict)
# svn switch --force url/A/D/G A/B/F
# svn info A/B/F/pi
- #
+ #
# # 3) A forced update that tries to add a directory when a versioned
# # directory of the same name already exists.
- #
+ #
# # Make dir A/D/H/I in repos.
# svn mkdir -m "Log message" url/A/D/H/I
- #
+ #
# # Make A/D/G/I and co A/D/H/I into it.
# mkdir A/D/G/I
# svn co url/A/D/H/I A/D/G/I
- #
+ #
# # Try the forced switch. A/D/G/I obstructs the dir A/D/G/I coming
# # from the repos, causing an error.
# svn switch --force url/A/D/H A/D/G
- #
+ #
# # Delete all three obstructions and finish the update.
# rm -rf A/D/G/I
# rm A/B/F/pi
# rm A/C/H
- #
+ #
# # A/B/F is switched to A/D/G
# # A/C is switched to A/D
# # A/D/G is switched to A/D/H
@@ -1348,19 +1418,13 @@ def forced_switch_failures(sbox):
# 1) A forced switch that tries to add a file when an unversioned
# directory of the same name already exists. (Currently fails)
# svn switch --force url/A/D A/C
- expected_error = ('Failed to add directory.*' + re.escape(A_C_H) +
- '.*a non-directory object.*already exists')
-
- actions.run_and_verify_switch(wc_dir, A_C, url_A_D, None, None, None,
- expected_error, None, None, None, None, False, '--force')
-
- # 2) A forced switch that tries to add a dir when a file of the same
- # name already exists.
- # svn switch --force url/A/D/G A/B/F
expected_output = svntest.wc.State(wc_dir, {
- 'A/B/F/rho' : Item(status='A '),
- 'A/B/F/pi' : Item(status=' ', treeconflict='C'),
- 'A/B/F/tau' : Item(status='A '),
+ 'A/C/G' : Item(status='A '),
+ 'A/C/G/pi' : Item(status='A '),
+ 'A/C/G/rho' : Item(status='A '),
+ 'A/C/G/tau' : Item(status='A '),
+ 'A/C/gamma' : Item(status='A '),
+ 'A/C/H' : Item(status=' ', treeconflict='C'),
})
expected_disk = svntest.main.greek_state.copy()
@@ -1372,23 +1436,44 @@ def forced_switch_failures(sbox):
'A/C/G/tau' : Item(contents="This is the file 'tau'.\n"),
'A/C/H' : Item(contents="The file 'H'\n"),
'A/B/F/pi' : Item(),
- 'A/B/F/rho' : Item(contents="This is the file 'rho'.\n"),
- 'A/B/F/tau' : Item(contents="This is the file 'tau'.\n"),
})
expected_status = actions.get_virginal_state(wc_dir, 1)
expected_status.add({
- 'A/B/F/tau' : Item(status=' ', wc_rev='1'),
- 'A/B/F/pi' : Item(status='? ', treeconflict='C'),
- 'A/B/F/rho' : Item(status=' ', wc_rev='1'),
'A/C/G' : Item(status=' ', wc_rev='1'),
'A/C/G/rho' : Item(status=' ', wc_rev='1'),
- 'A/C/G/pi' : Item(status=' ', wc_rev='1'),
'A/C/G/tau' : Item(status=' ', wc_rev='1'),
+ 'A/C/G/pi' : Item(status=' ', wc_rev='1'),
+ 'A/C/H' : Item(status='? ', treeconflict='C'),
'A/C/gamma' : Item(status=' ', wc_rev='1'),
})
+ expected_status.tweak('A/C', switched='S')
+
+ actions.run_and_verify_switch(wc_dir, A_C, url_A_D, expected_output,
+ expected_disk, expected_status, None, None, None, None, None, False,
+ '--force')
+
+
+ # 2) A forced switch that tries to add a dir when a file of the same
+ # name already exists. (Tree conflict)
+ # svn switch --force url/A/D/G A/B/F
+ expected_output = svntest.wc.State(wc_dir, {
+ 'A/B/F/rho' : Item(status='A '),
+ 'A/B/F/pi' : Item(status=' ', treeconflict='C'),
+ 'A/B/F/tau' : Item(status='A '),
+ })
+
+ expected_disk.add({
+ 'A/B/F/rho' : Item(contents="This is the file 'rho'.\n"),
+ 'A/B/F/tau' : Item(contents="This is the file 'tau'.\n"),
+ })
+
+ expected_status.add({
+ 'A/B/F/tau' : Item(status=' ', wc_rev='1'),
+ 'A/B/F/pi' : Item(status='? ', treeconflict='C'),
+ 'A/B/F/rho' : Item(status=' ', wc_rev='1'),
+ })
expected_status.tweak('A/B/F', switched='S')
- expected_status.tweak('A/C', status='! ', switched='S')
actions.run_and_verify_switch(wc_dir, A_B_F, url_A_D_G, expected_output,
expected_disk, expected_status, None, None, None, None, None, False,
@@ -1488,14 +1573,13 @@ def forced_switch_failures(sbox):
'A/D/G/psi' : Item(status=' ', wc_rev='2'),
'A/D/G/chi' : Item(status=' ', wc_rev='2'),
'A/D/H/I' : Item(status=' ', wc_rev='2'),
- 'A/C/H' : Item(status=' ', wc_rev='2'),
'A/C/H/psi' : Item(status=' ', wc_rev='2'),
'A/C/H/omega' : Item(status=' ', wc_rev='2'),
'A/C/H/chi' : Item(status=' ', wc_rev='2'),
'A/C/H/I' : Item(status=' ', wc_rev='2'),
})
expected_status.tweak(wc_rev='2', status=' ')
- expected_status.tweak('A/B/F/pi', treeconflict=None)
+ expected_status.tweak('A/B/F/pi', 'A/C/H', treeconflict=None)
expected_status.tweak('A/D/G', switched='S')
actions.run_and_verify_update(wc_dir, expected_output, expected_disk,
@@ -1539,10 +1623,7 @@ def switch_with_obstructing_local_adds(s
# Setup expected results of switch.
expected_output = svntest.wc.State(sbox.wc_dir, {
"A/B/F/gamma" : Item(status=' ', treeconflict='C'),
- "A/B/F/G" : Item(status='E '),
- "A/B/F/G/pi" : Item(status=' ', treeconflict='C'),
- "A/B/F/G/rho" : Item(status='A '),
- "A/B/F/G/tau" : Item(status=' ', treeconflict='C'),
+ "A/B/F/G" : Item(status=' ', treeconflict='C'),
"A/B/F/H" : Item(status='A '),
"A/B/F/H/chi" : Item(status='A '),
"A/B/F/H/omega" : Item(status='A '),
@@ -1554,7 +1635,6 @@ def switch_with_obstructing_local_adds(s
"A/B/F/gamma" : Item("This is the file 'gamma'.\n"),
"A/B/F/G" : Item(),
"A/B/F/G/pi" : Item("This is the OBSTRUCTING file 'pi'.\n"),
- "A/B/F/G/rho" : Item("This is the file 'rho'.\n"),
"A/B/F/G/tau" : Item("This is the file 'tau'.\n"),
"A/B/F/G/upsilon" : Item("This is the unversioned file 'upsilon'.\n"),
"A/B/F/H" : Item(),
@@ -1566,19 +1646,17 @@ def switch_with_obstructing_local_adds(s
expected_status = svntest.actions.get_virginal_state(sbox.wc_dir, 1)
expected_status.tweak('A/B/F', switched='S')
expected_status.add({
- "A/B/F/gamma" : Item(status='R ', treeconflict='C', wc_rev='1'),
-
- "A/B/F/G" : Item(status=' ', wc_rev=1),
- "A/B/F/G/pi" : Item(status='R ', treeconflict='C', wc_rev='1'),
- "A/B/F/G/rho" : Item(status=' ', wc_rev=1),
- "A/B/F/G/tau" : Item(status='R ', treeconflict='C', wc_rev='1'),
- "A/B/F/G/upsilon" : Item(status='A ', wc_rev=0),
- "A/B/F/H" : Item(status=' ', wc_rev=1),
- "A/B/F/H/chi" : Item(status=' ', wc_rev=1),
- "A/B/F/H/omega" : Item(status=' ', wc_rev=1),
- "A/B/F/H/psi" : Item(status=' ', wc_rev=1),
- "A/B/F/I" : Item(status='A ', wc_rev=0),
- })
+ 'A/B/F/gamma' : Item(status='R ', treeconflict='C', wc_rev='1'),
+ 'A/B/F/G' : Item(status='A ', treeconflict='C', wc_rev='0'),
+ 'A/B/F/G/pi' : Item(status='A ', wc_rev='0'),
+ 'A/B/F/G/tau' : Item(status='A ', wc_rev='0'),
+ 'A/B/F/G/upsilon' : Item(status='A ', wc_rev='0'),
+ 'A/B/F/H' : Item(status=' ', wc_rev='1'),
+ 'A/B/F/H/chi' : Item(status=' ', wc_rev='1'),
+ 'A/B/F/H/omega' : Item(status=' ', wc_rev='1'),
+ 'A/B/F/H/psi' : Item(status=' ', wc_rev='1'),
+ 'A/B/F/I' : Item(status='A ', wc_rev='0'),
+ })
# "Extra" files that we expect to result from the conflicts.
extra_files = ['pi\.r0', 'pi\.r1', 'pi\.mine']
@@ -2398,6 +2476,8 @@ j = os.path.join
def tree_conflicts_on_switch_1_1(sbox):
"tree conflicts 1.1: tree del, leaf edit on switch"
+ sbox.build()
+
# use case 1, as in notes/tree-conflicts/use-cases.txt
# 1.1) local tree delete, incoming leaf edit
@@ -2415,6 +2495,10 @@ def tree_conflicts_on_switch_1_1(sbox):
})
expected_disk = disk_empty_dirs.copy()
+ if svntest.main.wc_is_singledb(sbox.wc_dir):
+ expected_disk.remove('D/D1', 'DF/D1', 'DD/D1', 'DD/D1/D2',
+ 'DDF/D1', 'DDF/D1/D2',
+ 'DDD/D1', 'DDD/D1/D2', 'DDD/D1/D2/D3')
# The files delta, epsilon, and zeta are incoming additions, but since
# they are all within locally deleted trees they should also be schedule
@@ -2482,6 +2566,8 @@ def tree_conflicts_on_switch_1_1(sbox):
def tree_conflicts_on_switch_1_2(sbox):
"tree conflicts 1.2: tree del, leaf del on switch"
+ sbox.build()
+
# 1.2) local tree delete, incoming leaf delete
expected_output = deep_trees_conflict_output.copy()
@@ -2521,6 +2607,10 @@ def tree_conflicts_on_switch_1_2(sbox):
expected_disk.remove('D/D1',
'DD/D1/D2',
'DDD/D1/D2/D3')
+ if svntest.main.wc_is_singledb(sbox.wc_dir):
+ expected_disk.remove('DF/D1', 'DD/D1',
+ 'DDF/D1', 'DDF/D1/D2',
+ 'DDD/D1', 'DDD/D1/D2')
expected_info = {
'F/alpha' : {
@@ -3004,6 +3094,33 @@ def copy_with_switched_subdir(sbox):
# should either be the tree of E, or nothing at all.
svntest.actions.run_and_verify_status(wc_dir, state)
+### regression test for issue #3597
+def relocate_with_relative_externals(sbox):
+ "relocate a directory containing relative externals"
+
+ sbox.build()
+ wc_dir = sbox.wc_dir
+
+ # Add a relative external.
+ change_external(os.path.join(wc_dir, 'A', 'B'), "^/A/D/G G-ext", commit=True)
+ svntest.actions.run_and_verify_svn(None, None, [], 'update', wc_dir)
+
+ # Move our repository to another location.
+ repo_dir = sbox.repo_dir
+ repo_url = sbox.repo_url
+ other_repo_dir, other_repo_url = sbox.add_repo_path('other')
+ svntest.main.copy_repos(repo_dir, other_repo_dir, 2, 0)
+ svntest.main.safe_rmtree(repo_dir, 1)
+
+ # Now relocate our working copy.
+ svntest.actions.run_and_verify_svn(None, None, [], 'switch', '--relocate',
+ repo_url, other_repo_url, wc_dir)
+
+ # Check the URL of the external -- was it updated to point to the
+ # .other repository URL?
+ svntest.actions.run_and_verify_info([{ 'URL' : '.*.other/A/D/G$' }],
+ os.path.join(wc_dir, 'A', 'B', 'G-ext'))
+
########################################################################
# Run the tests
@@ -3030,7 +3147,8 @@ test_list = [ None,
switch_change_repos_root,
relocate_and_propset,
forced_switch,
- forced_switch_failures,
+ XFail(forced_switch_failures,
+ svntest.main.is_ra_type_dav_serf),
switch_scheduled_add,
SkipUnless(mergeinfo_switch_elision, server_has_mergeinfo),
switch_with_obstructing_local_adds,
@@ -3048,7 +3166,8 @@ test_list = [ None,
single_file_relocate,
relocate_with_switched_children,
XFail(copy_with_switched_subdir),
- ]
+ XFail(relocate_with_relative_externals),
+ ]
if __name__ == '__main__':
svntest.main.run_tests(test_list)
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/trans_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/trans_tests.py?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/trans_tests.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/trans_tests.py Wed Aug 11 16:43:22 2010
@@ -868,9 +868,10 @@ def props_only_file_update(sbox):
# We used to leave some temporary files around. Make sure that we don't.
temps = os.listdir(os.path.join(wc_dir, svntest.main.get_admin_name(), 'tmp'))
- temps.remove('prop-base')
- temps.remove('props')
- temps.remove('text-base')
+ if os.path.exists(os.path.join(wc_dir, svntest.main.get_admin_name(),
+ 'tmp', 'props')):
+ temps.remove('prop-base')
+ temps.remove('props')
if temps:
print('Temporary files leftover: %s' % (', '.join(temps),))
raise svntest.Failure
Modified: subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/tree_conflict_tests.py?rev=984468&r1=984467&r2=984468&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/tree_conflict_tests.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/tests/cmdline/tree_conflict_tests.py Wed Aug 11 16:43:22 2010
@@ -51,7 +51,7 @@ def verbose_print(line):
# If verbose mode is enabled, print the (assumed newline-terminated) LINES.
def verbose_printlines(lines):
- if main.verbose_mode:
+ if main.options.verbose:
for line in lines:
sys.stdout.write(line)