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/09/15 21:32:38 UTC
svn commit: r997472 [38/41] - in /subversion/branches/py-tests-as-modules:
./ build/ build/ac-macros/ build/generator/ build/generator/templates/
contrib/server-side/ notes/ notes/tree-conflicts/ notes/wc-ng/
subversion/bindings/javahl/native/ subversi...
Modified: subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/copy-from-previous-version.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/copy-from-previous-version.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/copy-from-previous-version.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/copy-from-previous-version.dump Wed Sep 15 19:32:26 2010
@@ -16,11 +16,6 @@ Revision-number: 1
Prop-content-length: 104
Content-length: 104
-K 7
-svn:log
-V 4
-ttb
-
K 10
svn:author
V 6
@@ -29,6 +24,11 @@ K 8
svn:date
V 27
2005-11-15T20:53:08.484681Z
+K 7
+svn:log
+V 4
+ttb
+
PROPS-END
Node-path: branches
@@ -62,11 +62,6 @@ Revision-number: 2
Prop-content-length: 119
Content-length: 119
-K 7
-svn:log
-V 18
-Add first version
-
K 10
svn:author
V 6
@@ -75,6 +70,11 @@ K 8
svn:date
V 27
2005-11-15T20:53:34.716301Z
+K 7
+svn:log
+V 18
+Add first version
+
PROPS-END
Node-path: trunk/file.txt
@@ -94,11 +94,6 @@ Revision-number: 3
Prop-content-length: 120
Content-length: 120
-K 7
-svn:log
-V 19
-Add second version
-
K 10
svn:author
V 6
@@ -107,6 +102,11 @@ K 8
svn:date
V 27
2005-11-15T20:53:48.805239Z
+K 7
+svn:log
+V 19
+Add second version
+
PROPS-END
Node-path: trunk/file.txt
@@ -124,11 +124,6 @@ Revision-number: 4
Prop-content-length: 149
Content-length: 149
-K 7
-svn:log
-V 48
-Add a new file to create an uninvolved revision
-
K 10
svn:author
V 6
@@ -137,6 +132,11 @@ K 8
svn:date
V 27
2005-11-15T20:56:25.247172Z
+K 7
+svn:log
+V 48
+Add a new file to create an uninvolved revision
+
PROPS-END
Node-path: trunk/foo.txt
@@ -155,11 +155,6 @@ Revision-number: 5
Prop-content-length: 131
Content-length: 131
-K 7
-svn:log
-V 30
-copy from a previous revision
-
K 10
svn:author
V 6
@@ -168,6 +163,11 @@ K 8
svn:date
V 27
2005-11-15T20:56:46.198327Z
+K 7
+svn:log
+V 30
+copy from a previous revision
+
PROPS-END
Node-path: trunk/copy-of-file.txt
Modified: subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/copy-parent-modify-prop.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/copy-parent-modify-prop.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/copy-parent-modify-prop.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/copy-parent-modify-prop.dump Wed Sep 15 19:32:26 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 113
Content-length: 113
-K 7
-svn:log
-V 16
-add dir and file
K 10
svn:author
V 2
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2006-04-19T12:50:29.623828Z
+K 7
+svn:log
+V 16
+add dir and file
PROPS-END
Node-path: dir
@@ -55,10 +55,6 @@ Revision-number: 2
Prop-content-length: 126
Content-length: 126
-K 7
-svn:log
-V 29
-copy dir and modify prop of f
K 10
svn:author
V 2
@@ -67,6 +63,10 @@ K 8
svn:date
V 27
2006-04-19T12:51:15.837786Z
+K 7
+svn:log
+V 29
+copy dir and modify prop of f
PROPS-END
Node-path: dir2
Modified: subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/delete-svn-props.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/delete-svn-props.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/delete-svn-props.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/delete-svn-props.dump Wed Sep 15 19:32:26 2010
@@ -16,10 +16,6 @@ Revision-number: 1
Prop-content-length: 137
Content-length: 137
-K 7
-svn:log
-V 37
-adding file with prop 'svn:eol-style'
K 10
svn:author
V 5
@@ -28,6 +24,10 @@ K 8
svn:date
V 27
2009-06-05T14:23:41.185914Z
+K 7
+svn:log
+V 37
+adding file with prop 'svn:eol-style'
PROPS-END
Node-path: file
@@ -51,10 +51,6 @@ Revision-number: 2
Prop-content-length: 139
Content-length: 139
-K 7
-svn:log
-V 39
-removing prop 'svn:eol-style' from file
K 10
svn:author
V 5
@@ -63,6 +59,10 @@ K 8
svn:date
V 27
2009-06-05T14:23:42.140849Z
+K 7
+svn:log
+V 39
+removing prop 'svn:eol-style' from file
PROPS-END
Node-path: file
Modified: subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/dir_prop_change.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/dir_prop_change.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/dir_prop_change.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/dir_prop_change.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/file-dir-file.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/file-dir-file.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/file-dir-file.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/file-dir-file.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/modified-in-place.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/modified-in-place.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/modified-in-place.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/modified-in-place.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/no-author.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/no-author.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/no-author.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/no-author.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/repo_with_copy_of_root_dir.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/repo_with_copy_of_root_dir.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/repo_with_copy_of_root_dir.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/repo_with_copy_of_root_dir.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/revprops.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/revprops.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/revprops.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/revprops.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-move-and-modify.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-move-and-modify.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-move-and-modify.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-move-and-modify.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.expected.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.expected.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.expected.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.expected.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.expected.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.expected.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.expected.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.expected.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-empty-trunk.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-empty-trunk.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-empty-trunk.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-empty-trunk.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-dir.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-dir.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-dir.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-dir.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file2.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file2.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file2.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file2.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-with-modified-file.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-with-modified-file.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-with-modified-file.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/tag-with-modified-file.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/url-encoding-bug.dump
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/url-encoding-bug.dump?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/url-encoding-bug.dump (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svnsync_tests_data/url-encoding-bug.dump Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svntest/actions.py
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/actions.py?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/actions.py (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/actions.py Wed Sep 15 19:32:26 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):
@@ -867,7 +911,12 @@ def run_and_verify_merge(dir, rev1, rev2
If DRY_RUN is set then a --dry-run merge will be carried out first and
the output compared with that of the full merge.
- Return if successful, raise on failure."""
+ Return if successful, raise on failure.
+
+ *ARGS are any extra optional args to the merge subcommand.
+ NOTE: If *ARGS is specified at all, an explicit target path must be passed
+ in *ARGS as well. This allows the caller to merge into single items inside
+ the working copy, but still verify the entire working copy dir. """
merge_command = [ "merge" ]
if url2:
@@ -876,7 +925,8 @@ def run_and_verify_merge(dir, rev1, rev2
if not (rev1 is None and rev2 is None):
merge_command.append("-r" + str(rev1) + ":" + str(rev2))
merge_command.append(url1)
- merge_command.append(dir)
+ if len(args) == 0:
+ merge_command.append(dir)
merge_command = tuple(merge_command)
if dry_run:
@@ -1515,16 +1565,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 +1625,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()
@@ -2022,6 +2074,13 @@ deep_trees_after_leaf_del = wc.State('',
'DDD/D1/D2' : Item(),
})
+# deep trees state after a call to deep_trees_leaf_del with no commit
+def deep_trees_after_leaf_del_no_ci(wc_dir):
+ if svntest.main.wc_is_singledb(wc_dir):
+ return deep_trees_after_leaf_del
+ else:
+ return deep_trees_empty_dirs
+
def deep_trees_tree_del(base):
"""Helper function for deep trees test cases. Delete top-level dirs."""
@@ -2080,6 +2139,13 @@ deep_trees_empty_dirs = wc.State('', {
'DDD/D1/D2/D3' : Item(),
})
+# deep trees state after a call to deep_trees_tree_del with no commit
+def deep_trees_after_tree_del_no_ci(wc_dir):
+ if svntest.main.wc_is_singledb(wc_dir):
+ return deep_trees_after_tree_del
+ else:
+ return deep_trees_empty_dirs
+
def deep_trees_tree_del_repos(base):
"""Helper function for deep trees test cases. Delete top-level dirs,
directly in the repository."""
@@ -2265,7 +2331,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 +2573,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
@@ -2612,7 +2680,9 @@ def deep_trees_run_tests_scheme_for_swit
def deep_trees_run_tests_scheme_for_merge(sbox, greater_scheme,
- do_commit_local_changes):
+ do_commit_local_changes,
+ do_commit_conflicts=True,
+ ignore_ancestry=False):
"""
Runs a given list of tests for conflicts occuring at a merge operation.
@@ -2646,12 +2716,14 @@ def deep_trees_run_tests_scheme_for_merg
Then, in effect, the local changes are committed as well.
8) In each test case subdir, the "incoming" subdir is merged into the
- "local" subdir.
- This causes conflicts between the "local" state in the working
- copy and the "incoming" state from the incoming subdir.
-
- 9) A commit is performed in each separate container, to verify
- that each tree-conflict indeed blocks a commit.
+ "local" subdir. If ignore_ancestry is True, then the merge is done
+ with the --ignore-ancestry option, so mergeinfo is neither considered
+ nor recorded. This causes conflicts between the "local" state in the
+ working copy and the "incoming" state from the incoming subdir.
+
+ 9) If do_commit_conflicts is True, then a commit is performed in each
+ separate container, to verify that each tree-conflict indeed blocks
+ a commit.
The sbox parameter is just the sbox passed to a test function. No need
to call sbox.build(), since it is called (once) within this function.
@@ -2665,7 +2737,8 @@ def deep_trees_run_tests_scheme_for_merg
j = os.path.join
- sbox.build()
+ if not sbox.is_built():
+ sbox.build()
wc_dir = sbox.wc_dir
# 1) Create directories.
@@ -2782,10 +2855,15 @@ def deep_trees_run_tests_scheme_for_merg
x_skip.copy()
x_skip.wc_dir = local
+ varargs = (local,)
+ if ignore_ancestry:
+ varargs = varargs + ('--ignore-ancestry',)
+
run_and_verify_merge(local, None, None, incoming, None,
x_out, None, None, x_disk, None, x_skip,
- error_re_string = test_case.error_re_string,
- dry_run = False)
+ test_case.error_re_string,
+ None, None, None, None,
+ False, False, *varargs)
run_and_verify_unquiet_status(local, x_status)
except:
print("ERROR IN: Tests scheme for merge: "
@@ -2795,21 +2873,22 @@ def deep_trees_run_tests_scheme_for_merg
# 9) Verify that commit fails.
- for test_case in greater_scheme:
- try:
- local = j(wc_dir, test_case.name, 'local')
-
- x_status = test_case.expected_status
- if x_status != None:
- x_status.copy()
- x_status.wc_dir = local
+ if do_commit_conflicts:
+ for test_case in greater_scheme:
+ try:
+ local = j(wc_dir, test_case.name, 'local')
- run_and_verify_commit(local, None, x_status,
- test_case.commit_block_string,
- local)
- except:
- print("ERROR IN: Tests scheme for merge: "
- + "while checking commit-blocking in '%s'" % test_case.name)
- raise
+ x_status = test_case.expected_status
+ if x_status != None:
+ x_status.copy()
+ x_status.wc_dir = local
+
+ run_and_verify_commit(local, None, x_status,
+ test_case.commit_block_string,
+ local)
+ except:
+ print("ERROR IN: Tests scheme for merge: "
+ + "while checking commit-blocking in '%s'" % test_case.name)
+ raise
Modified: subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/factory.py
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/factory.py?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/factory.py (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/factory.py Wed Sep 15 19:32:26 2010
@@ -434,6 +434,9 @@ class TestFactory:
if second in ['update','up']:
return self.cmd_svn_update(args[2:])
+ if second in ['switch','sw']:
+ return self.cmd_svn_switch(args[2:])
+
if second in ['copy', 'cp',
'move', 'mv', 'rename', 'ren']:
return self.cmd_svn_copy_move(args[1:])
@@ -596,7 +599,7 @@ class TestFactory:
def cmd_svn_update(self, update_args):
- "Runs svnn update, looks what happened and writes the script for it."
+ "Runs svn update, looks what happened and writes the script for it."
pyargs, runargs, do_chdir, targets = self.args2svntest(
update_args, True, self.keep_args_of, 0)
@@ -637,6 +640,74 @@ class TestFactory:
return py
+ def cmd_svn_switch(self, switch_args):
+ "Runs svn switch, looks what happened and writes the script for it."
+
+ pyargs, runargs, do_chdir, targets = self.args2svntest(
+ switch_args, True, self.keep_args_of, 0)
+
+ # Sort out the targets. We need one URL and one wc node, in that order.
+ if len(targets) < 2:
+ raise Failure("Sorry, I'm currently enforcing two targets for svn " +
+ "switch. If you want to supply less, remove this " +
+ "check and implement whatever seems appropriate.")
+
+ wc_arg = targets[1]
+ del pyargs[wc_arg.argnr]
+ del runargs[wc_arg.argnr]
+ url_arg = targets[0]
+ del pyargs[url_arg.argnr]
+ 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)
+
+ #if '--force' in runargs:
+ # self.really_safe_rmtree(wc_arg.runarg)
+
+ code, output, err = main.run_svn('Maybe', 'sw',
+ url_arg.runarg, wc_arg.runarg,
+ *runargs)
+
+ py = ""
+
+ if code == 0 and len(err) < 1:
+ # write a test that expects success
+
+ actual_out = tree.build_tree_from_checkout(output)
+ py = ("expected_output = " +
+ self.tree2py(actual_out, wc) + "\n\n")
+
+ pydisk = self.get_current_disk(wc)
+ py += pydisk
+
+ pystatus = self.get_current_status(wc)
+ py += pystatus
+
+ py += pychdir
+ py += ("actions.run_and_verify_switch(" + wc.py + ", " +
+ wc_arg.pyarg + ", " + url_arg.pyarg + ", " +
+ "expected_output, expected_disk, expected_status, " +
+ "None, None, None, None, None, False")
+ else:
+ # write a test that expects error
+ py = "expected_error = " + self.strlist2py(err) + "\n\n"
+ py += pychdir
+ py += ("actions.run_and_verify_switch(" + wc.py + ", " +
+ wc_arg.pyarg + ", " + url_arg.pyarg + ", " +
+ "None, None, None, expected_error, None, None, None, None, False")
+
+ if len(pyargs) > 0:
+ py += ', ' + ', '.join(pyargs)
+ py += ")"
+ py += self.chdir_back(do_chdir)
+
+ return py
+
+
def cmd_svn_checkout(self, checkout_args):
"Runs svn checkout, looks what happened and writes the script for it."
@@ -661,8 +732,8 @@ class TestFactory:
pychdir = self.chdir(do_chdir, wc)
- if '--force' in runargs:
- self.really_safe_rmtree(wc_arg.runarg)
+ #if '--force' in runargs:
+ # self.really_safe_rmtree(wc_arg.runarg)
code, output, err = main.run_svn('Maybe', 'co',
url_arg.runarg, wc_arg.runarg,
@@ -761,7 +832,7 @@ class TestFactory:
if i != len(echo_args)-1:
raise Failure("don't understand: echo " + " ".join(echo_args))
- contents = " ".join(echo_args[:i])
+ contents = " ".join(echo_args[:i]) + '\n'
if target_arg is None:
raise Failure("echo needs a '>' pipe to a file name: echo " +
@@ -801,8 +872,12 @@ class TestFactory:
for arg in rm_args:
if not arg.startswith('-'):
target = self.path2svntest(arg)
- self.really_safe_rmtree(target.runarg)
- out += "main.safe_rmtree(" + target.pyarg + ")\n"
+ if os.path.isfile(target.runarg):
+ os.remove(target.runarg)
+ out += "os.remove(" + target.pyarg + ")\n"
+ else:
+ self.really_safe_rmtree(target.runarg)
+ out += "main.safe_rmtree(" + target.pyarg + ")\n"
return out
@@ -1030,16 +1105,18 @@ class TestFactory:
def get_sorted_vars_by_pathlen(self):
"""Compose a listing of variable names to be expanded in script output.
This is intended to be stored in self.sorted_vars_by_pathlen."""
- list = []
+ lst = []
for dict in [self.vars, self.other_wc_dirs]:
for name in dict:
runpath = dict[name][1]
+ if not runpath:
+ continue
strlen = len(runpath)
item = [strlen, name, runpath]
- bisect.insort(list, item)
+ bisect.insort(lst, item)
- return list
+ return lst
def get_sorted_var_names(self):
@@ -1275,6 +1352,10 @@ class TestFactory:
# Check if the actual tree had this anyway all the way through.
name = mod[0]
val = mod[1]
+
+ if name == 'contents' and val is None:
+ continue;
+
def check_node(node):
if (
(name == 'contents' and node.contents == val)
@@ -1397,7 +1478,7 @@ class TestFactory:
return py
- def path2svntest(self, path, argnr=None):
+ def path2svntest(self, path, argnr=None, do_remove_on_new_wc_path=True):
"""Given an input argument, do one hell of a path expansion on it.
ARGNR is simply inserted into the resulting Target.
Returns a self.Target instance.
@@ -1494,12 +1575,18 @@ class TestFactory:
if varname in self.other_wc_dirs:
return self.other_wc_dirs[varname][1]
- # else, we must still create one.
- path = self.sbox.add_wc_path(suffix, do_remove)
- py = "sbox.add_wc_path(" + str2py(suffix)
- if not do_remove:
- py += ", remove=False"
- py += ')'
+ # see if there is a wc already in the sbox
+ path = self.sbox.wc_dir + '.' + suffix
+ if path in self.sbox.test_paths:
+ py = "sbox.wc_dir + '." + suffix + "'"
+ else:
+ # else, we must still create one.
+ path = self.sbox.add_wc_path(suffix, do_remove)
+ py = "sbox.add_wc_path(" + str2py(suffix)
+ if not do_remove:
+ py += ", remove=False"
+ py += ')'
+
value = [py, path]
self.other_wc_dirs[varname] = [py, path]
self.sorted_vars_by_pathlen = self.get_sorted_vars_by_pathlen()
Modified: subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/main.py?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/main.py Wed Sep 15 19:32:26 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."
@@ -577,6 +596,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)."""
@@ -593,9 +622,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
@@ -606,6 +632,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):
@@ -1010,6 +1043,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'
@@ -1157,6 +1193,7 @@ class TestRunner:
str(self.index)
svntest.actions.no_sleep_for_timestamps()
+ svntest.actions.do_relocate_validation()
saved_dir = os.getcwd()
try:
@@ -1299,7 +1336,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)')
@@ -1400,6 +1437,7 @@ def execute_tests(test_list, serial_only
want the process to die."""
global pristine_url
+ global pristine_greek_repos_url
global svn_binary
global svnadmin_binary
global svnlook_binary
@@ -1466,8 +1504,8 @@ def execute_tests(test_list, serial_only
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:
@@ -1520,7 +1558,7 @@ def execute_tests(test_list, serial_only
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/py-tests-as-modules/subversion/tests/cmdline/svntest/sandbox.py
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/sandbox.py?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/sandbox.py (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/sandbox.py Wed Sep 15 19:32:26 2010
@@ -51,19 +51,21 @@ 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,
# so we recreate it each time a sandbox is created with some default
- # contents.
+ # contents, making sure that an empty file is never present
if self.repo_url.startswith("http"):
# this dir doesn't exist out of the box, so we may have to make it
if not os.path.exists(svntest.main.work_dir):
os.makedirs(svntest.main.work_dir)
self.authz_file = os.path.join(svntest.main.work_dir, "authz")
- open(self.authz_file, 'w').write("[/]\n* = rw\n")
+ tmp_authz_file = os.path.join(svntest.main.work_dir, "authz-" + self.name)
+ open(tmp_authz_file, 'w').write("[/]\n* = rw\n")
+ shutil.move(tmp_authz_file, self.authz_file)
# For svnserve tests we have a per-repository authz file, and it
# doesn't need to be there in order for things to work, so we don't
@@ -96,11 +98,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 +132,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 +154,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 +166,25 @@ 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_update(self, target=None):
+ assert not self.read_only
+ if target is None:
+ target = self.wc_dir
+ svntest.main.run_svn(False, 'update', target)
+
def simple_commit(self, target=None):
assert not self.read_only
if target is None:
@@ -220,6 +252,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/py-tests-as-modules/subversion/tests/cmdline/svntest/tree.py
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/tree.py?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/tree.py (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/tree.py Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svntest/verify.py
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/verify.py?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/verify.py (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/verify.py Wed Sep 15 19:32:26 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/py-tests-as-modules/subversion/tests/cmdline/svntest/wc.py
URL: http://svn.apache.org/viewvc/subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/wc.py?rev=997472&r1=997471&r2=997472&view=diff
==============================================================================
--- subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/wc.py (original)
+++ subversion/branches/py-tests-as-modules/subversion/tests/cmdline/svntest/wc.py Wed Sep 15 19:32:26 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 = ''
@@ -578,6 +579,9 @@ class State:
# DELETED node lives.
if entry.deleted and entry.schedule != 1:
continue
+ # entries that are ABSENT don't show up in status
+ if entry.absent:
+ continue
if name and entry.kind == 2:
# stub subdirectory. leave a "missing" StateItem in here. note
# that we can't put the status as "! " because that gets tweaked
@@ -603,12 +607,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 +619,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 +643,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,8 +820,46 @@ 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()
- return os.path.join(os.path.dirname(file_path), dot_svn, 'text-base',
- os.path.basename(file_path) + '.svn-base')
+ root_path, relpath = os.path.split(file_path)
+
+ while True:
+ db_path = os.path.join(root_path, dot_svn, 'wc.db')
+ try:
+ if os.path.exists(db_path):
+ 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, '/')
+
+ c = db.cursor()
+ c.execute("""select checksum from working_node
+ where local_relpath = '""" + relpath + """'""")
+ checksum = c.fetchone()
+ if checksum is None:
+ c.execute("""select checksum from base_node
+ where local_relpath = '""" + relpath + """'""")
+ checksum = c.fetchone()[0]
+ if checksum is not None and checksum[0:6] == "$md5 $":
+ c.execute("""select checksum from pristine
+ where md5_checksum = '""" + checksum + """'""")
+ checksum = c.fetchone()[0]
+ if checksum is None:
+ raise svntest.Failure("No SHA1 checksum for " + relpath)
+ db.close()
+
+ 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)
# ------------