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 2011/02/07 20:18:33 UTC

svn commit: r1068059 [7/7] - in /subversion/branches/ignore-mergeinfo-log: ./ build/ notes/ notes/commit-access-templates/ subversion/include/ subversion/include/private/ subversion/libsvn_client/ subversion/libsvn_delta/ subversion/libsvn_diff/ subver...

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/special_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/special_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/special_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/special_tests.py Mon Feb  7 19:18:29 2011
@@ -33,9 +33,12 @@ import svntest
 from svntest.main import server_has_mergeinfo
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 
 
@@ -46,7 +49,7 @@ Item = svntest.wc.StateItem
 
 
 #----------------------------------------------------------------------
-
+@SkipUnless(svntest.main.is_posix_os)
 def general_symlink(sbox):
   "general symlink handling"
 
@@ -130,6 +133,7 @@ def general_symlink(sbox):
                                         expected_status, None, wc_dir)
 
 
+@SkipUnless(svntest.main.is_posix_os)
 def replace_file_with_symlink(sbox):
   "replace a normal file with a special file"
 
@@ -161,6 +165,7 @@ def replace_file_with_symlink(sbox):
     raise svntest.Failure
 
 
+@SkipUnless(svntest.main.is_posix_os)
 def import_export_symlink(sbox):
   "import and export a symlink"
 
@@ -217,7 +222,8 @@ def import_export_symlink(sbox):
 
 #----------------------------------------------------------------------
 # Regression test for issue 1986
-
+@Issue(1986)
+@SkipUnless(svntest.main.is_posix_os)
 def copy_tree_with_symlink(sbox):
   "'svn cp dir1 dir2' which contains a symlink"
 
@@ -261,6 +267,7 @@ def copy_tree_with_symlink(sbox):
   svntest.actions.run_and_verify_status(wc_dir, expected_status)
 
 
+@SkipUnless(svntest.main.is_posix_os)
 def replace_symlink_with_file(sbox):
   "replace a special file with a non-special file"
 
@@ -313,6 +320,7 @@ def replace_symlink_with_file(sbox):
     raise svntest.Failure
 
 
+@SkipUnless(svntest.main.is_posix_os)
 def remove_symlink(sbox):
   "remove a symlink"
 
@@ -356,6 +364,8 @@ def remove_symlink(sbox):
   svntest.actions.run_and_verify_commit(wc_dir, expected_output,
                                         expected_status, None, wc_dir)
 
+@SkipUnless(svntest.main.is_posix_os)
+@SkipUnless(server_has_mergeinfo)
 def merge_symlink_into_file(sbox):
   "merge symlink into file"
 
@@ -421,6 +431,7 @@ def merge_symlink_into_file(sbox):
 
 
 
+@SkipUnless(svntest.main.is_posix_os)
 def merge_file_into_symlink(sbox):
   "merge file into symlink"
 
@@ -478,6 +489,7 @@ def merge_file_into_symlink(sbox):
 
 # Issue 2701: Tests to see repository with symlinks can be checked out on all
 # platforms.
+@Issue(2701)
 def checkout_repo_with_symlinks(sbox):
   "checkout a repository containing symlinks"
 
@@ -505,6 +517,8 @@ def checkout_repo_with_symlinks(sbox):
                                           expected_wc)
 
 # Issue 2716: 'svn diff' against a symlink to a directory within the wc
+@Issue(2716)
+@SkipUnless(svntest.main.is_posix_os)
 def diff_symlink_to_dir(sbox):
   "diff a symlink to a directory"
 
@@ -542,6 +556,7 @@ def diff_symlink_to_dir(sbox):
 
 # Issue 2692 (part of): Check that the client can check out a repository
 # that contains an unknown special file type.
+@Issue(2692)
 def checkout_repo_with_unknown_special_type(sbox):
   "checkout repository with unknown special file type"
 
@@ -592,6 +607,8 @@ def replace_symlink_with_dir(sbox):
 
 # test for issue #1808: svn up deletes local symlink that obstructs
 # versioned file
+@Issue(1808)
+@SkipUnless(svntest.main.is_posix_os)
 def update_obstructing_symlink(sbox):
   "symlink obstructs incoming delete"
 
@@ -628,6 +645,7 @@ def warn_on_reserved_name(sbox):
     'lock', reserved_path)
 
 
+@Skip(svntest.main.is_posix_os)
 def propvalue_normalized(sbox):
   "'ps svn:special' should normalize to '*'"
 
@@ -665,6 +683,7 @@ def propvalue_normalized(sbox):
 
 
 # on users@: http://mid.gmane.org/1292856447.8650.24.camel@nimble.325Bayport
+@SkipUnless(svntest.main.is_posix_os)
 def unrelated_changed_special_status(sbox):
   "commit foo while bar changed special status"
 
@@ -688,25 +707,22 @@ def unrelated_changed_special_status(sbo
 
 # list all tests here, starting with None:
 test_list = [ None,
-              SkipUnless(general_symlink, svntest.main.is_posix_os),
-              SkipUnless(replace_file_with_symlink, svntest.main.is_posix_os),
-              SkipUnless(import_export_symlink, svntest.main.is_posix_os),
-              SkipUnless(copy_tree_with_symlink, svntest.main.is_posix_os),
-              SkipUnless(replace_symlink_with_file, svntest.main.is_posix_os),
-              SkipUnless(remove_symlink, svntest.main.is_posix_os),
-              SkipUnless(SkipUnless(merge_symlink_into_file,
-                                    svntest.main.is_posix_os),
-                         server_has_mergeinfo),
-              SkipUnless(merge_file_into_symlink, svntest.main.is_posix_os),
+              general_symlink,
+              replace_file_with_symlink,
+              import_export_symlink,
+              copy_tree_with_symlink,
+              replace_symlink_with_file,
+              remove_symlink,
+              merge_symlink_into_file,
+              merge_file_into_symlink,
               checkout_repo_with_symlinks,
-              SkipUnless(diff_symlink_to_dir, svntest.main.is_posix_os),
+              diff_symlink_to_dir,
               checkout_repo_with_unknown_special_type,
               replace_symlink_with_dir,
-              SkipUnless(update_obstructing_symlink, svntest.main.is_posix_os),
+              update_obstructing_symlink,
               warn_on_reserved_name,
-              Skip(propvalue_normalized, svntest.main.is_posix_os),
-              SkipUnless(unrelated_changed_special_status,
-                         svntest.main.is_posix_os),
+              propvalue_normalized,
+              unrelated_changed_special_status,
              ]
 
 if __name__ == '__main__':

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/stat_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/stat_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/stat_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/stat_tests.py Mon Feb  7 19:18:29 2011
@@ -35,9 +35,12 @@ import svntest
 from svntest import wc
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 UnorderedOutput = svntest.verify.UnorderedOutput
 
@@ -65,7 +68,7 @@ def status_unversioned_file_in_current_d
 
 #----------------------------------------------------------------------
 # Regression for issue #590
-
+@Issue(590)
 def status_update_with_nested_adds(sbox):
   "run 'status -u' when nested additions are pending"
 
@@ -132,7 +135,7 @@ def status_shows_all_in_current_dir(sbox
 
 
 #----------------------------------------------------------------------
-
+@Issue(2127)
 def status_missing_file(sbox):
   "status with a versioned file missing"
 
@@ -269,7 +272,7 @@ def status_type_change(sbox):
                                      [], 'status')
 
 #----------------------------------------------------------------------
-
+@SkipUnless(svntest.main.is_posix_os)
 def status_type_change_to_symlink(sbox):
   "status on versioned items replaced by symlinks"
 
@@ -583,6 +586,7 @@ def status_uninvited_parent_directory(sb
     if re.match("\\s+\\*.*\.other/?$", line):
       raise svntest.Failure
 
+@Issue(1289)
 def status_on_forward_deletion(sbox):
   "status -u on working copy deleted in HEAD"
   # See issue #1289.
@@ -776,6 +780,7 @@ use-commit-times = yes
 
 #----------------------------------------------------------------------
 
+@Issues([1617,2030])
 def status_on_unversioned_dotdot(sbox):
   "status on '..' where '..' is not versioned"
   # See issue #1617 (and #2030).
@@ -798,6 +803,7 @@ def status_on_unversioned_dotdot(sbox):
 
 #----------------------------------------------------------------------
 
+@Issue(2122)
 def status_on_partially_nonrecursive_wc(sbox):
   "status -u in partially non-recursive wc"
   # Based on issue #2122.
@@ -960,8 +966,9 @@ def status_ignored_dir(sbox):
 
 #----------------------------------------------------------------------
 
+@Issue(2030)
 def status_unversioned_dir(sbox):
-  "status on unversioned dir (issue 2030)"
+  "status on unversioned dir"
   sbox.build(read_only = True)
   dir = sbox.repo_dir
   expected_err = "svn: warning: W155007: '.*(/|\\\\)" + os.path.basename(dir) + \
@@ -1128,6 +1135,7 @@ def inconsistent_eol(sbox):
 
 #----------------------------------------------------------------------
 # Test for issue #2533
+@Issue(2533)
 def status_update_with_incoming_props(sbox):
   "run 'status -u' variations w/ incoming propchanges"
 
@@ -1341,6 +1349,7 @@ def status_update_verbose_with_incoming_
 
 #----------------------------------------------------------------------
 # Test for issue #2468
+@Issue(2468)
 def status_nonrecursive_update(sbox):
   "run 'status -uN' with incoming changes"
 
@@ -1559,6 +1568,7 @@ def status_depth_update(sbox):
 
 #----------------------------------------------------------------------
 # Test for issue #2420
+@Issue(2420)
 def status_dash_u_deleted_directories(sbox):
   "run 'status -u' with locally deleted directories"
 
@@ -1626,6 +1636,7 @@ def status_dash_u_deleted_directories(sb
 
 # Test for issue #2737: show obstructed status for versioned directories
 # replaced by local directories.
+@Issue(2737)
 def status_dash_u_type_change(sbox):
   "status -u on versioned items whose type changed"
 
@@ -1782,6 +1793,8 @@ def status_with_tree_conflicts(sbox):
 
 #----------------------------------------------------------------------
 # Regression for issue #3742
+@XFail()
+@Issue(3742)
 def status_nested_wc_old_format(sbox):
   "status on wc with nested old-format wc"
 
@@ -1805,8 +1818,7 @@ test_list = [ None,
               status_shows_all_in_current_dir,
               status_missing_file,
               status_type_change,
-              SkipUnless(status_type_change_to_symlink,
-                         svntest.main.is_posix_os),
+              status_type_change_to_symlink,
               status_with_new_files_pending,
               status_for_unignored_file,
               status_for_nonexistent_file,
@@ -1832,7 +1844,7 @@ test_list = [ None,
               status_depth_update,
               status_dash_u_type_change,
               status_with_tree_conflicts,
-              XFail(status_nested_wc_old_format),
+              status_nested_wc_old_format,
              ]
 
 if __name__ == '__main__':

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnadmin_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnadmin_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnadmin_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnadmin_tests.py Mon Feb  7 19:18:29 2011
@@ -36,9 +36,12 @@ from svntest.verify import SVNUnexpected
 from svntest.main import SVN_PROP_MERGEINFO
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 
 
@@ -248,8 +251,9 @@ def inconsistent_headers(sbox):
 #----------------------------------------------------------------------
 # Test for issue #2729: Datestamp-less revisions in dump streams do
 # not remain so after load
+@Issue(2729)
 def empty_date(sbox):
-  "preserve date-less revisions in load (issue #2729)"
+  "preserve date-less revisions in load"
 
   test_create(sbox)
 
@@ -477,6 +481,7 @@ def fsfs_file(repo_dir, kind, rev):
     return os.path.join(repo_dir, 'db', kind, rev)
 
 
+@SkipUnless(svntest.main.is_fs_type_fsfs)
 def verify_incremental_fsfs(sbox):
   """svnadmin verify detects corruption dump can't"""
 
@@ -612,6 +617,7 @@ _0.0.t1-1 add false false /A/B/E/bravo
 
 #----------------------------------------------------------------------
 
+@SkipUnless(svntest.main.is_fs_type_fsfs)
 def recover_fsfs(sbox):
   "recover a repository (FSFS only)"
   sbox.build()
@@ -690,7 +696,7 @@ def recover_fsfs(sbox):
     'db/current', expected_current_contents, actual_current_contents)
 
 #----------------------------------------------------------------------
-
+@Issue(2983)
 def load_with_parent_dir(sbox):
   "'svnadmin load --parent-dir' reparents mergeinfo"
 
@@ -787,7 +793,7 @@ def set_uuid(sbox):
     raise svntest.Failure
 
 #----------------------------------------------------------------------
-
+@Issue(3020)
 def reflect_dropped_renumbered_revs(sbox):
   "reflect dropped renumbered revs in svn:mergeinfo"
 
@@ -824,6 +830,8 @@ def reflect_dropped_renumbered_revs(sbox
 
 #----------------------------------------------------------------------
 
+@SkipUnless(svntest.main.is_fs_type_fsfs)
+@Issue(2992)
 def fsfs_recover_handle_missing_revs_or_revprops_file(sbox):
   """fsfs recovery checks missing revs / revprops files"""
   # Set up a repository containing the greek tree.
@@ -916,6 +924,7 @@ def create_in_repo_subdir(sbox):
   # No SVNRepositoryCreateFailure raised?
   raise svntest.Failure
 
+@SkipUnless(svntest.main.is_fs_type_fsfs)
 def verify_with_invalid_revprops(sbox):
   "svnadmin verify detects invalid revprops file"
 
@@ -968,6 +977,7 @@ def verify_with_invalid_revprops(sbox):
 #      each of them to 'TARGET-REPOS'.
 #
 # See http://subversion.tigris.org/issues/show_bug.cgi?id=3020#desc13
+@Issue(3020)
 def dont_drop_valid_mergeinfo_during_incremental_loads(sbox):
   "don't filter mergeinfo revs from incremental dump"
 
@@ -1168,6 +1178,8 @@ def dont_drop_valid_mergeinfo_during_inc
                                      sbox.repo_url)
 
 
+@SkipUnless(svntest.main.is_posix_os)
+@Issue(2591)
 def hotcopy_symlink(sbox):
   "'svnadmin hotcopy' replicates symlink"
 
@@ -1306,18 +1318,16 @@ test_list = [ None,
               hotcopy_format,
               setrevprop,
               verify_windows_paths_in_repos,
-              SkipUnless(verify_incremental_fsfs, svntest.main.is_fs_type_fsfs),
-              SkipUnless(recover_fsfs, svntest.main.is_fs_type_fsfs),
+              verify_incremental_fsfs,
+              recover_fsfs,
               load_with_parent_dir,
               set_uuid,
               reflect_dropped_renumbered_revs,
-              SkipUnless(fsfs_recover_handle_missing_revs_or_revprops_file,
-                         svntest.main.is_fs_type_fsfs),
+              fsfs_recover_handle_missing_revs_or_revprops_file,
               create_in_repo_subdir,
-              SkipUnless(verify_with_invalid_revprops,
-                         svntest.main.is_fs_type_fsfs),
+              verify_with_invalid_revprops,
               dont_drop_valid_mergeinfo_during_incremental_loads,
-              SkipUnless(hotcopy_symlink, svntest.main.is_posix_os),
+              hotcopy_symlink,
               load_bad_props,
              ]
 

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svndumpfilter_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svndumpfilter_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svndumpfilter_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svndumpfilter_tests.py Mon Feb  7 19:18:29 2011
@@ -37,9 +37,12 @@ from svntest.verify import SVNExpectedSt
 from svnadmin_tests import load_and_verify_dumpstream, test_create
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 
 
@@ -80,7 +83,7 @@ def filter_and_return_output(dump, bufsi
 ######################################################################
 # Tests
 
-
+@Issue(2982)
 def reflect_dropped_renumbered_revs(sbox):
   "reflect dropped renumbered revs in svn:mergeinfo"
 
@@ -132,6 +135,7 @@ def reflect_dropped_renumbered_revs(sbox
                                      'propget', 'svn:mergeinfo', '-R',
                                      sbox.repo_url)
 
+@Issue(3181)
 def svndumpfilter_loses_mergeinfo(sbox):
   "svndumpfilter loses mergeinfo"
   #svndumpfilter loses mergeinfo if invoked without --renumber-revs
@@ -214,6 +218,7 @@ def _simple_dumpfilter_test(sbox, dumpfi
                                         expected_status)
 
 
+@Issue(2697)
 def dumpfilter_with_targets(sbox):
   "svndumpfilter --targets blah"
   ## See http://subversion.tigris.org/issues/show_bug.cgi?id=2697. ##
@@ -257,6 +262,7 @@ def dumpfilter_with_patterns(sbox):
 # Specifically, test that svndumpfilter, when used with the
 # --skip-missing-merge-sources option, removes mergeinfo that refers to
 # revisions that are older than the oldest revision in the dump stream.
+@Issue(3020)
 def filter_mergeinfo_revs_outside_of_dump_stream(sbox):
   "filter mergeinfo revs outside of dump stream"
 
@@ -491,6 +497,7 @@ def filter_mergeinfo_revs_outside_of_dum
 # --renumber-revs option, can create a dump with non-contiguous revisions.
 # Such dumps should not interfere with the correct remapping of mergeinfo
 # source revisions.
+@Issue(3020)
 def dropped_but_not_renumbered_empty_revs(sbox):
   "mergeinfo maps correctly when dropping revs"
 

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnlook_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnlook_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnlook_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnlook_tests.py Mon Feb  7 19:18:29 2011
@@ -32,8 +32,12 @@ import svntest
 
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 
 
@@ -185,6 +189,7 @@ def test_misc(sbox):
 
 #----------------------------------------------------------------------
 # Issue 1089
+@Issue(1089)
 def delete_file_in_moved_dir(sbox):
   "delete file in moved dir"
 
@@ -239,6 +244,7 @@ def delete_file_in_moved_dir(sbox):
 
 #----------------------------------------------------------------------
 # Issue 1241
+@Issue(1241)
 def test_print_property_diffs(sbox):
   "test the printing of property diffs"
 
@@ -390,6 +396,7 @@ def changed_copy_info(sbox):
 
 #----------------------------------------------------------------------
 # Issue 2663
+@Issue(2663)
 def tree_non_recursive(sbox):
   "test 'svnlook tree --non-recursive'"
 

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnrdump_tests.py Mon Feb  7 19:18:29 2011
@@ -36,11 +36,13 @@ from svntest.main import write_restricti
 from svntest.main import server_has_partial_replay
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
-Wimp = svntest.testcase.Wimp
 
 ## Mismatched headers during dumping operation
 # Text-copy-source-* and *-sha1 headers are not provided by the RA

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnsync_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnsync_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnsync_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnsync_tests.py Mon Feb  7 19:18:29 2011
@@ -35,11 +35,13 @@ from svntest.main import write_restricti
 from svntest.main import server_has_partial_replay
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
-Wimp = svntest.testcase.Wimp
 
 ######################################################################
 # Helper routines
@@ -338,7 +340,7 @@ def detect_meddling(sbox):
            ".*Destination HEAD \\(2\\) is not the last merged revision \\(1\\).*")
 
 #----------------------------------------------------------------------
-
+@Skip(svntest.main.is_ra_type_file)
 def basic_authz(sbox):
   "verify that unreadable content is not synced"
 
@@ -374,7 +376,7 @@ def basic_authz(sbox):
                                      lambda_url)
 
 #----------------------------------------------------------------------
-
+@Skip(svntest.main.is_ra_type_file)
 def copy_from_unreadable_dir(sbox):
   "verify that copies from unreadable dirs work"
 
@@ -493,6 +495,8 @@ def copy_from_unreadable_dir(sbox):
                                      dest_sbox.repo_url + '/A/P')
 
 # Issue 2705.
+@Issue(2705)
+@Skip(svntest.main.is_ra_type_file)
 def copy_with_mod_from_unreadable_dir(sbox):
   "verify copies with mods from unreadable dirs"
 
@@ -611,6 +615,8 @@ def copy_with_mod_from_unreadable_dir(sb
                                      dest_sbox.repo_url + '/A/P/lambda')
 
 # Issue 2705.
+@Issue(2705)
+@Skip(svntest.main.is_ra_type_file)
 def copy_with_mod_from_unreadable_dir_and_copy(sbox):
   "verify copies with mods from unreadable dirs +copy"
 
@@ -721,17 +727,20 @@ def copy_revprops(sbox):
   "test copying revprops other than svn:*"
   run_test(sbox, "revprops.dump")
 
+@SkipUnless(server_has_partial_replay)
 def only_trunk(sbox):
   "test syncing subdirectories"
   run_test(sbox, "svnsync-trunk-only.dump", "/trunk",
            "svnsync-trunk-only.expected.dump")
 
+@SkipUnless(server_has_partial_replay)
 def only_trunk_A_with_changes(sbox):
   "test syncing subdirectories with changes on root"
   run_test(sbox, "svnsync-trunk-A-changes.dump", "/trunk/A",
            "svnsync-trunk-A-changes.expected.dump")
 
 # test for issue #2904
+@Issue(2904)
 def move_and_modify_in_the_same_revision(sbox):
   "test move parent and modify child file in same rev"
   run_test(sbox, "svnsync-move-and-modify.dump")
@@ -791,6 +800,7 @@ def delete_svn_props(sbox):
   "copy with svn:prop deletions"
   run_test(sbox, "delete-svn-props.dump")
 
+@Issue(3438)
 def commit_a_copy_of_root(sbox):
   "commit a copy of root causes sync to fail"
   #Testcase for issue 3438.
@@ -832,12 +842,14 @@ def commit_a_copy_of_root(sbox):
 # svnmucc.exe -mm cp head %ROOT_URL%/trunk/A %ROOT_URL%/trunk/H/Z
 #                 rm %ROOT_URL%/trunk/H/Z/B
 #                 mkdir %ROOT_URL%/trunk/H/Z/B
+@Issue(3641)
 def descend_into_replace(sbox):
   "descending into replaced dir looks in src"
   run_test(sbox, "descend-into-replace.dump", subdir='/trunk/H',
            exp_dump_file_name = "descend-into-replace.expected.dump")
 
 # issue #3728
+@Issue(3728)
 def delete_revprops(sbox):
   "copy-revprops with removals"
   svnsync_tests_dir = os.path.join(os.path.dirname(sys.argv[0]),
@@ -887,19 +899,15 @@ test_list = [ None,
               file_dir_file,
               copy_parent_modify_prop,
               detect_meddling,
-              Skip(basic_authz, svntest.main.is_ra_type_file),
-              Skip(copy_from_unreadable_dir, svntest.main.is_ra_type_file),
-              Skip(copy_with_mod_from_unreadable_dir,
-                   svntest.main.is_ra_type_file),
-              Skip(copy_with_mod_from_unreadable_dir_and_copy,
-                   svntest.main.is_ra_type_file),
+              basic_authz,
+              copy_from_unreadable_dir,
+              copy_with_mod_from_unreadable_dir,
+              copy_with_mod_from_unreadable_dir_and_copy,
               url_encoding,
               no_author,
               copy_revprops,
-              SkipUnless(only_trunk,
-                         server_has_partial_replay),
-              SkipUnless(only_trunk_A_with_changes,
-                         server_has_partial_replay),
+              only_trunk,
+              only_trunk_A_with_changes,
               move_and_modify_in_the_same_revision,
               info_synchronized,
               info_not_synchronized,

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/main.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/main.py Mon Feb  7 19:18:29 2011
@@ -1157,15 +1157,16 @@ class TestRunner:
        or options.mode_filter.upper() == self.pred.list_mode().upper() \
        or (options.mode_filter.upper() == 'PASS' \
            and self.pred.list_mode() == ''):
+      tail = ''
+      if self.pred.issues:
+        tail += " [%s]" % ','.join(['#%d' % i for i in self.pred.issues])
       if options.verbose and self.pred.inprogress:
-        print(" %3d    %-5s  %s [[%s]]" % (self.index,
-                                           self.pred.list_mode(),
-                                           self.pred.description,
-                                           self.pred.inprogress))
+        tail += " [[%s]]" % self.pred.inprogress
       else:
-        print(" %3d    %-5s  %s" % (self.index,
-                                    self.pred.list_mode(),
-                                    self.pred.description))
+        print(" %3d    %-5s  %s%s" % (self.index,
+                                      self.pred.list_mode(),
+                                      self.pred.description,
+                                      tail))
     sys.stdout.flush()
 
   def get_mode(self):
@@ -1475,7 +1476,7 @@ def run_tests(test_list, serial_only = F
 #
 # This routine parses sys.argv to decide what to do.
 def execute_tests(test_list, serial_only = False, test_name = None,
-                  progress_func = None):
+                  progress_func = None, test_selection = []):
   """Similar to run_tests(), but just returns the exit code, rather than
   exiting the process.  This function can be used when a caller doesn't
   want the process to die."""
@@ -1496,13 +1497,14 @@ def execute_tests(test_list, serial_only
   testnums = []
 
   if not options:
+    # Override which tests to run from the commandline
     (parser, args) = _parse_options()
+    test_selection = args
   else:
-    args = []
     parser = _create_parser()
 
   # parse the positional arguments (test nums, names)
-  for arg in args:
+  for arg in test_selection:
     appended = False
     try:
       testnums.append(int(arg))

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/testcase.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/testcase.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/testcase.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svntest/testcase.py Mon Feb  7 19:18:29 2011
@@ -28,7 +28,7 @@ import os, types, sys
 import svntest
 
 # if somebody does a "from testcase import *", they only get these names
-__all__ = ['XFail', 'Wimp', 'Skip', 'SkipUnless']
+__all__ = ['_XFail', '_Wimp', '_Skip', '_SkipUnless']
 
 RESULT_OK = 'ok'
 RESULT_FAIL = 'fail'
@@ -70,7 +70,8 @@ class TestCase:
     RESULT_SKIP: (2, TextColors.success('SKIP: '), True),
     }
 
-  def __init__(self, delegate=None, cond_func=lambda: True, doc=None, wip=None):
+  def __init__(self, delegate=None, cond_func=lambda: True, doc=None, wip=None,
+               issues=None):
     """Create a test case instance based on DELEGATE.
 
     COND_FUNC is a callable that is evaluated at test run time and should
@@ -91,6 +92,10 @@ class TestCase:
     self._cond_func = cond_func
     self.description = doc or delegate.description
     self.inprogress = wip
+    if type(issues) == type(0):
+      self.issues = [issues]
+    else:
+      self.issues = issues
 
   def get_function_name(self):
     """Return the name of the python function implementing the test."""
@@ -103,6 +108,13 @@ class TestCase:
     """
     return self._delegate.get_sandbox_name()
 
+  def set_issues(self, issues):
+    """Set the issues associated with this test."""
+    if type(issues) == type(0):
+      self.issues = [issues]
+    else:
+      self.issues = issues
+
   def run(self, sandbox):
     """Run the test within the given sandbox."""
     return self._delegate.run(sandbox)
@@ -129,7 +141,7 @@ class FunctionTestCase(TestCase):
   is derived from the file name in which FUNC was defined)
   """
 
-  def __init__(self, func):
+  def __init__(self, func, issues=None):
     # it better be a function that accepts an sbox parameter and has a
     # docstring on it.
     assert isinstance(func, types.FunctionType)
@@ -153,7 +165,7 @@ class FunctionTestCase(TestCase):
     assert doc[0].lower() == doc[0], \
         "%s's docstring should not be capitalized" % name
 
-    TestCase.__init__(self, doc=doc)
+    TestCase.__init__(self, doc=doc, issues=issues)
     self.func = func
 
   def get_function_name(self):
@@ -170,7 +182,7 @@ class FunctionTestCase(TestCase):
     return self.func(sandbox)
 
 
-class XFail(TestCase):
+class _XFail(TestCase):
   """A test that is expected to fail, if its condition is true."""
 
   _result_map = {
@@ -179,7 +191,8 @@ class XFail(TestCase):
     RESULT_SKIP: (2, TextColors.success('SKIP: '), True),
     }
 
-  def __init__(self, test_case, cond_func=lambda: True, wip=None):
+  def __init__(self, test_case, cond_func=lambda: True, wip=None,
+               issues=None):
     """Create an XFail instance based on TEST_CASE.  COND_FUNC is a
     callable that is evaluated at test run time and should return a
     boolean value.  If COND_FUNC returns true, then TEST_CASE is
@@ -189,16 +202,19 @@ class XFail(TestCase):
     information that are not available at __init__ time (like the fact
     that we're running over a particular RA layer).
 
-    WIP is ..."""
+    WIP is ...
+    
+    ISSUES is an issue number (or a list of issue numbers) tracking this."""
 
-    TestCase.__init__(self, create_test_case(test_case), cond_func, wip=wip)
+    TestCase.__init__(self, create_test_case(test_case), cond_func, wip=wip,
+                      issues=issues)
 
   def list_mode(self):
     # basically, the only possible delegate is a Skip test. favor that mode.
     return self._delegate.list_mode() or 'XFAIL'
 
 
-class Wimp(XFail):
+class _Wimp(_XFail):
   """Like XFail, but indicates a work-in-progress: an unexpected pass
   is not considered a test failure."""
 
@@ -209,13 +225,13 @@ class Wimp(XFail):
     }
 
   def __init__(self, wip, test_case, cond_func=lambda: True):
-    XFail.__init__(self, test_case, cond_func, wip)
+    _XFail.__init__(self, test_case, cond_func, wip)
 
 
-class Skip(TestCase):
+class _Skip(TestCase):
   """A test that will be skipped if its conditional is true."""
 
-  def __init__(self, test_case, cond_func=lambda: True):
+  def __init__(self, test_case, cond_func=lambda: True, issues=None):
     """Create a Skip instance based on TEST_CASE.  COND_FUNC is a
     callable that is evaluated at test run time and should return a
     boolean value.  If COND_FUNC returns true, then TEST_CASE is
@@ -225,7 +241,8 @@ class Skip(TestCase):
     __init__ time (like the fact that we're running over a
     particular RA layer)."""
 
-    TestCase.__init__(self, create_test_case(test_case), cond_func)
+    TestCase.__init__(self, create_test_case(test_case), cond_func,
+                      issues=issues)
 
   def list_mode(self):
     if self._cond_func():
@@ -243,15 +260,70 @@ class Skip(TestCase):
     return self._delegate.run(sandbox)
 
 
-class SkipUnless(Skip):
+class _SkipUnless(_Skip):
   """A test that will be skipped if its conditional is false."""
 
   def __init__(self, test_case, cond_func):
-    Skip.__init__(self, test_case, lambda c=cond_func: not c())
+    _Skip.__init__(self, test_case, lambda c=cond_func: not c())
 
 
-def create_test_case(func):
+def create_test_case(func, issues=None):
   if isinstance(func, TestCase):
     return func
   else:
-    return FunctionTestCase(func)
+    return FunctionTestCase(func, issues=issues)
+
+
+# Various decorators to make declaring tests as such simpler
+def XFail_deco(cond_func = lambda: True):
+  def _second(func):
+    if isinstance(func, TestCase):
+      return _XFail(func, cond_func, issues=func.issues)
+    else:
+      return _XFail(func, cond_func)
+
+  return _second
+
+
+def Wimp_deco(func):
+  if isinstance(func, TestCase):
+    return _Wimp(func, issues=func.issues)
+  else:
+    return _Wimp(func)
+
+
+def Skip_deco(cond_func = lambda: True):
+  def _second(func):
+    if isinstance(func, TestCase):
+      return _Skip(func, cond_func, issues=func.issues)
+    else:
+      return _Skip(func, cond_func)
+
+  return _second
+
+
+def SkipUnless_deco(cond_func):
+  def _second(func):
+    if isinstance(func, TestCase):
+      return _Skip(func, lambda c=cond_func: not c(), issues=func.issues)
+    else:
+      return _Skip(func, lambda c=cond_func: not c())
+
+  return _second
+
+
+def Issues_deco(issues):
+  def _second(func):
+    if isinstance(func, TestCase):
+      # if the wrapped thing is already a test case, just set the issues
+      func.set_issues(issues)
+      return func
+
+    else:
+      # we need to wrap the function 
+      return create_test_case(func, issues=issues)
+
+  return _second
+
+# Create a singular alias, for linguistic correctness
+Issue_deco = Issues_deco

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnversion_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnversion_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnversion_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/svnversion_tests.py Mon Feb  7 19:18:29 2011
@@ -33,8 +33,12 @@ import svntest
 from svntest import wc
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 
 #----------------------------------------------------------------------
@@ -207,6 +211,7 @@ def ignore_externals(sbox):
 #----------------------------------------------------------------------
 
 # Test for issue #3461 'excluded subtrees are not detected by svnversion'
+@Issue(3461)
 def svnversion_with_excluded_subtrees(sbox):
   "test 'svnversion' with excluded subtrees"
   sbox.build()

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/switch_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/switch_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/switch_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/switch_tests.py Mon Feb  7 19:18:29 2011
@@ -32,10 +32,12 @@ import svntest
 from svntest import verify, actions, main
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
-Wimp = svntest.testcase.Wimp
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 
 from svntest.main import SVN_PROP_MERGEINFO, server_has_mergeinfo
@@ -673,7 +675,8 @@ def delete_subdir(sbox):
 
 #----------------------------------------------------------------------
 # Issue 1532: Switch a file to a dir: can't switch it back to the file
-
+@XFail()
+@Issue(1532)
 def file_dir_file(sbox):
   "switch a file to a dir and back to the file"
   sbox.build(read_only = True)
@@ -908,7 +911,7 @@ def bad_intermediate_urls(sbox):
 #----------------------------------------------------------------------
 # Regression test for issue #1825: failed switch may corrupt
 # working copy
-
+@Issue(1825)
 def obstructed_switch(sbox):
   "obstructed switch"
   #svntest.factory.make(sbox, """svn cp -m msgcopy url/A/B/E url/A/B/Esave
@@ -1048,6 +1051,7 @@ def commit_mods_below_switch(sbox):
                                         expected_output, expected_status,
                                         None, C_path, D_path)
 
+@Issue(2380)
 def relocate_beyond_repos_root(sbox):
   "relocate with prefixes longer than repo root"
   sbox.build(read_only=True, create_wc=False)
@@ -1350,8 +1354,6 @@ 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,
@@ -1559,6 +1561,12 @@ def forced_switch_failures(sbox):
     'A/B/F/pi'          : Item(status='A '),
   })
 
+  # When running the tests over ra_serf, 'A/D/G/omega' and 'A/D/G/psi' do
+  # manage to get added before the forced switch above errors out.  So don't
+  # expect those two paths to appear in the output of the final update.
+  if svntest.main.is_ra_type_dav_serf():
+    expected_output.remove('A/D/G/omega', 'A/D/G/psi')
+    
   expected_disk.remove('A/D/G/tau', 'A/D/G/rho', 'A/D/G/pi')
   expected_disk.add({
     'A/D/H/I'           : Item(),
@@ -1697,7 +1705,7 @@ def switch_scheduled_add(sbox):
                                      'switch', switch_url, file_path)
 
 #----------------------------------------------------------------------
-
+@SkipUnless(server_has_mergeinfo)
 def mergeinfo_switch_elision(sbox):
   "mergeinfo does not elide post switch"
 
@@ -2566,6 +2574,7 @@ def tree_conflicts_on_switch_1_1(sbox):
                         expected_info = expected_info) ] )
 
 
+@Issue(3334)
 def tree_conflicts_on_switch_1_2(sbox):
   "tree conflicts 1.2: tree del, leaf del on switch"
 
@@ -2664,6 +2673,7 @@ def tree_conflicts_on_switch_1_2(sbox):
                         expected_info = expected_info) ] )
 
 
+@Issue(3334)
 def tree_conflicts_on_switch_2_1(sbox):
   "tree conflicts 2.1: leaf edit, tree del on switch"
 
@@ -3020,6 +3030,7 @@ def relocate_with_switched_children(sbox
     expected_info = { 'URL' : pattern }
     svntest.actions.run_and_verify_info([expected_info], path)
 
+@XFail()
 def copy_with_switched_subdir(sbox):
   "copy directory with switched subdir"
   sbox.build()
@@ -3098,6 +3109,7 @@ def copy_with_switched_subdir(sbox):
   svntest.actions.run_and_verify_status(wc_dir, state)
 
 ### regression test for issue #3597
+@Issue(3597)
 def relocate_with_relative_externals(sbox):
   "relocate a directory containing relative externals"
 
@@ -3142,7 +3154,7 @@ test_list = [ None,
               log_switched_file,
               relocate_deleted_missing_copied,
               delete_subdir,
-              XFail(file_dir_file),
+              file_dir_file,
               nonrecursive_switching,
               failed_anchor_is_target,
               bad_intermediate_urls,
@@ -3153,10 +3165,9 @@ test_list = [ None,
               switch_change_repos_root,
               relocate_and_propset,
               forced_switch,
-              XFail(forced_switch_failures,
-                    svntest.main.is_ra_type_dav_serf),
+              forced_switch_failures,
               switch_scheduled_add,
-              SkipUnless(mergeinfo_switch_elision, server_has_mergeinfo),
+              mergeinfo_switch_elision,
               switch_with_obstructing_local_adds,
               switch_with_depth,
               switch_to_dir_with_peg_rev,
@@ -3171,7 +3182,7 @@ test_list = [ None,
               tree_conflicts_on_switch_3,
               single_file_relocate,
               relocate_with_switched_children,
-              XFail(copy_with_switched_subdir),
+              copy_with_switched_subdir,
               relocate_with_relative_externals,
               ]
 

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/trans_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/trans_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/trans_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/trans_tests.py Mon Feb  7 19:18:29 2011
@@ -32,8 +32,12 @@ import svntest
 from svntest import wc
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 
 
@@ -446,6 +450,7 @@ def keywords_from_birth(sbox):
 def do_nothing(x, y):
   return 0
 
+@Issue(631)
 def update_modified_with_translation(sbox):
   "update modified file with eol-style 'native'"
 
@@ -534,7 +539,7 @@ def update_modified_with_translation(sbo
 # contents are transmitted to the server during commit, and b) that
 # after the commit, the file and its text-base have been changed to
 # have the new line-ending style.
-
+@Issue(1085)
 def eol_change_is_text_mod(sbox):
   "committing eol-style change forces text send"
 
@@ -588,7 +593,7 @@ def eol_change_is_text_mod(sbox):
 #----------------------------------------------------------------------
 # Regression test for issue #1151.  A single file in a directory
 # didn't get keywords expanded on checkout.
-
+@Issue(1151)
 def keyword_expanded_on_checkout(sbox):
   "keyword expansion for lone file in directory"
 

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/tree_conflict_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/tree_conflict_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/tree_conflict_tests.py Mon Feb  7 19:18:29 2011
@@ -38,9 +38,12 @@ from svntest.actions import run_and_veri
 from svntest.actions import get_virginal_state
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 AnyOutput = svntest.verify.AnyOutput
 
@@ -637,6 +640,8 @@ def up_sw_dir_del_onto_del(sbox):
 #   Adding         branch1\dC\D
 #
 #   Committed revision 4.
+@XFail(svntest.main.is_ra_type_dav)
+@Issue(3314)
 def up_sw_dir_add_onto_add(sbox):
   "up/sw dir: add onto add"
   # WC state: as scheduled (no obstruction)
@@ -685,6 +690,9 @@ def merge_dir_mod_onto_not_dir(sbox):
   test_tc_merge(sbox, d_mods, br_scen = d_dels + d_rpl_f)
   test_tc_merge(sbox2, d_mods, wc_scen = d_dels)
 
+# Test for issue #3150 'tree conflicts with directories as victims'.
+@XFail()
+@Issue(3150)
 def merge_dir_del_onto_not_same(sbox):
   "merge dir: del/rpl/mv onto not-same"
   sbox2 = sbox.clone_dependent()
@@ -705,6 +713,7 @@ def merge_dir_add_onto_not_none(sbox):
 
 #----------------------------------------------------------------------
 
+@XFail()
 def force_del_tc_inside(sbox):
   "--force del on dir with TCs inside"
   ### This test is currently marked XFail because we don't remove tree
@@ -797,6 +806,7 @@ def force_del_tc_inside(sbox):
 
 #----------------------------------------------------------------------
 
+@XFail()
 def force_del_tc_is_target(sbox):
   "--force del on tree-conflicted targets"
   #          A/C
@@ -965,6 +975,8 @@ def query_absent_tree_conflicted_dir(sbo
 
 #----------------------------------------------------------------------
 
+@XFail()
+@Issue(3608)
 def up_add_onto_add_revert(sbox):
   "issue #3608: reverting an add onto add conflict"
 
@@ -996,8 +1008,8 @@ def up_add_onto_add_revert(sbox):
 
   expected_status = get_virginal_state(wc2_dir, 2)
   expected_status.add({
-    'newfile' : Item(status='A ', copied='+', treeconflict='C', wc_rev='-'),
-    'NewDir'  : Item(status='A ', copied='+', treeconflict='C', wc_rev='-'),
+    'newfile' : Item(status='R ', copied='+', treeconflict='C', wc_rev='-'),
+    'NewDir'  : Item(status='R ', copied='+', treeconflict='C', wc_rev='-'),
     })
 
   run_and_verify_update(wc2_dir,
@@ -1027,6 +1039,8 @@ def up_add_onto_add_revert(sbox):
 #----------------------------------------------------------------------
 # Regression test for issue #3525 and #3533
 #
+@XFail()
+@Issues([3525,3533])
 def lock_update_only(sbox):
   "lock status update shouldn't flag tree conflict"
 
@@ -1074,21 +1088,20 @@ test_list = [ None,
               up_sw_dir_mod_onto_del,
               up_sw_dir_del_onto_mod,
               up_sw_dir_del_onto_del,
-              XFail(up_sw_dir_add_onto_add,
-                    svntest.main.is_ra_type_dav),
+              up_sw_dir_add_onto_add,
               merge_file_mod_onto_not_file,
               merge_file_del_onto_not_same,
               merge_file_del_onto_not_file,
               merge_file_add_onto_not_none,
               merge_dir_mod_onto_not_dir,
-              XFail(merge_dir_del_onto_not_same),
+              merge_dir_del_onto_not_same,
               merge_dir_del_onto_not_dir,
               merge_dir_add_onto_not_none,
-              XFail(force_del_tc_inside),
-              XFail(force_del_tc_is_target),
+              force_del_tc_inside,
+              force_del_tc_is_target,
               query_absent_tree_conflicted_dir,
-              XFail(up_add_onto_add_revert),
-              XFail(lock_update_only),
+              up_add_onto_add_revert,
+              lock_update_only,
              ]
 
 if __name__ == '__main__':

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/update_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/update_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/update_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/update_tests.py Mon Feb  7 19:18:29 2011
@@ -35,10 +35,12 @@ from merge_tests import expected_merge_o
 from merge_tests import set_up_branch
 
 # (abbreviation)
-Skip = svntest.testcase.Skip
-SkipUnless = svntest.testcase.SkipUnless
-XFail = svntest.testcase.XFail
-Wimp = svntest.testcase.Wimp
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 exp_noop_up_out = svntest.actions.expected_noop_update_output
 
@@ -3115,6 +3117,7 @@ def update_conflicted(sbox):
                                         None, None, 1)
 
 #----------------------------------------------------------------------
+@SkipUnless(server_has_mergeinfo)
 def mergeinfo_update_elision(sbox):
   "mergeinfo does not elide after update"
 
@@ -3936,7 +3939,7 @@ def update_accept_conflicts(sbox):
                                         extra_files)
 
 # Test for a wc corruption race condition (possibly introduced in
-# r23342) which is easy to trigger if interactive conflict resolution
+# r863416) which is easy to trigger if interactive conflict resolution
 # dies in the middle of prompting.  Specifically, we run an update
 # with interactive-conflicts on but close stdin immediately, so the
 # prompt errors out; then the dir_baton pool cleanup handlers in the
@@ -4564,6 +4567,8 @@ def tree_conflicts_on_update_2_2(sbox):
 # conflicts'
 #
 # Marked as XFail until issue #3329 is resolved.
+@Issue(3329)
+@XFail()
 def tree_conflicts_on_update_2_3(sbox):
   "tree conflicts 2.3: skip on 2nd update"
 
@@ -4846,6 +4851,8 @@ def tree_conflict_uc1_update_deleted_tre
 
 # Issue #3334: a delete-onto-modified tree conflict should leave the node
 # scheduled for re-addition.
+@Issue(3334)
+@XFail()
 def tree_conflict_uc2_schedule_re_add(sbox):
   "tree conflicts on update UC2, schedule re-add"
   sbox.build()
@@ -5100,6 +5107,8 @@ def update_wc_of_dir_to_rev_not_containi
 # tree conflict'
 #
 # Marked as XFail until that issue is fixed.
+@Issue(3525)
+@XFail()
 def update_deleted_locked_files(sbox):
   "verify update of deleted locked files"
 
@@ -5139,12 +5148,14 @@ def update_deleted_locked_files(sbox):
                                         expected_status)
 
 #----------------------------------------------------------------------
-# Test for issue #3659 svn update --depth <DEPTH> allows making a working
+# Test for issue #3569 svn update --depth <DEPTH> allows making a working
 # copy incomplete.
 #
-# XFail until issue #3659 is fixed.  This test needs extension to map some
+# XFail until issue #3569 is fixed.  This test needs extension to map some
 # real use cases (all add operations are missing if a directory is updated
 # without its children.)
+@XFail()
+@Issue(3569)
 def update_empty_hides_entries(sbox):
   "svn up --depth empty hides entries for next update"
   sbox.build()
@@ -5306,6 +5317,8 @@ def update_with_excluded_subdir(sbox):
 # Test for issue #3471 'svn up touches file w/ lock & svn:keywords property'
 #
 # Marked as XFail until the issue is fixed.
+@XFail()
+@Issue(3471)
 def update_with_file_lock_and_keywords_property_set(sbox):
   """update with file lock & keywords property set"""
   sbox.build()
@@ -5333,6 +5346,7 @@ def update_with_file_lock_and_keywords_p
 # Updating a nonexistent or deleted path should be a successful no-op,
 # when there is no incoming change.  In trunk@1035343, such an update
 # within a copied directory triggered an assertion failure.
+@XFail()
 def update_nonexistent_child_of_copy(sbox):
   """update a nonexistent child of a copied dir"""
   sbox.build()
@@ -5388,8 +5402,7 @@ test_list = [ None,
               update_wc_with_replaced_file,
               update_with_obstructing_additions,
               update_conflicted,
-              SkipUnless(mergeinfo_update_elision,
-                         server_has_mergeinfo),
+              mergeinfo_update_elision,
               update_copied_from_replaced_and_changed,
               update_copied_and_deleted_prop,
               update_accept_conflicts,
@@ -5400,18 +5413,18 @@ test_list = [ None,
               tree_conflicts_on_update_1_2,
               tree_conflicts_on_update_2_1,
               tree_conflicts_on_update_2_2,
-              XFail(tree_conflicts_on_update_2_3),
+              tree_conflicts_on_update_2_3,
               tree_conflicts_on_update_3,
               tree_conflict_uc1_update_deleted_tree,
-              XFail(tree_conflict_uc2_schedule_re_add),
+              tree_conflict_uc2_schedule_re_add,
               set_deep_depth_on_target_with_shallow_children,
               update_wc_of_dir_to_rev_not_containing_this_dir,
-              XFail(update_deleted_locked_files),
-              XFail(update_empty_hides_entries),
+              update_deleted_locked_files,
+              update_empty_hides_entries,
               mergeinfo_updates_merge_with_local_mods,
               update_with_excluded_subdir,
-              XFail(update_with_file_lock_and_keywords_property_set),
-              XFail(update_nonexistent_child_of_copy),
+              update_with_file_lock_and_keywords_property_set,
+              update_nonexistent_child_of_copy,
              ]
 
 if __name__ == '__main__':

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/upgrade_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/upgrade_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/upgrade_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/upgrade_tests.py Mon Feb  7 19:18:29 2011
@@ -40,8 +40,12 @@ import svntest
 from svntest import wc
 
 Item = svntest.wc.StateItem
-XFail = svntest.testcase.XFail
-SkipUnless = svntest.testcase.SkipUnless
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 
 wc_is_too_old_regex = (".*Working copy '.*' is too old \(format \d+.*\).*")
 
@@ -550,6 +554,7 @@ def do_x3_upgrade(sbox):
       'A/B/E/alpha'       : {'svn:eol-style': 'native'}
   })
 
+@XFail()
 def x3_1_4_0(sbox):
   "3x same wc upgrade 1.4.0 test"
 
@@ -640,6 +645,7 @@ def missing_dirs2(sbox):
     expected_status.tweak('A/D', 'A/B_new/F', status='! ')
   run_and_verify_status_no_server(sbox.wc_dir, expected_status)
 
+@XFail()
 def delete_and_keep_local(sbox):
   "check status delete and delete --keep-local"
 
@@ -855,12 +861,12 @@ test_list = [ None,
               basic_upgrade_1_0,
               # Upgrading from 1.4.0-1.4.5 with specific states fails
               # See issue #2530
-              XFail(x3_1_4_0),
+              x3_1_4_0,
               x3_1_4_6,
               x3_1_6_12,
               missing_dirs,
               missing_dirs2,
-              XFail(delete_and_keep_local),
+              delete_and_keep_local,
               dirs_only_upgrade,
               upgrade_tree_conflict_data,
               delete_in_copy_upgrade,

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/utf8_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/utf8_tests.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/utf8_tests.py (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/cmdline/utf8_tests.py Mon Feb  7 19:18:29 2011
@@ -34,7 +34,12 @@ from svntest import wc
 
 # (abbreviation)
 Item = wc.StateItem
-Skip = svntest.testcase.Skip
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
 
 #--------------------------------------------------------------------
 # Data
@@ -55,7 +60,7 @@ i18n_logmsg = 'drie\xc3\xabntwintig keer
 #
 #   Each test must return on success or raise on failure.
 
-
+@Skip()
 def basic_utf8_conversion(sbox):
   "conversion of paths and logs to/from utf8"
 
@@ -154,7 +159,7 @@ if localematch:
 
 # list all tests here, starting with None:
 test_list = [ None,
-              Skip(basic_utf8_conversion),
+              basic_utf8_conversion,
              ]
 
 if __name__ == '__main__':

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_repos/repos-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_repos/repos-test.c?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_repos/repos-test.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_repos/repos-test.c Mon Feb  7 19:18:29 2011
@@ -2106,7 +2106,7 @@ reporter_depth_exclude(const svn_test_op
                               FALSE, NULL, subpool));
 
   /* This is the illegal call, since A/D was excluded above; the call
-     itself will not error, but finish_report() will.  As of r28098,
+     itself will not error, but finish_report() will.  As of r868172,
      this delayed error behavior is not actually promised by the
      reporter API, which merely warns callers not to touch a path
      underneath a previously excluded path without defining what will

Modified: subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/stream-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/stream-test.c?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/stream-test.c (original)
+++ subversion/branches/ignore-mergeinfo-log/subversion/tests/libsvn_subr/stream-test.c Mon Feb  7 19:18:29 2011
@@ -342,71 +342,72 @@ test_stream_seek_translated(apr_pool_t *
 {
   svn_stream_t *stream, *translated_stream;
   svn_stringbuf_t *stringbuf;
-  char buf[23];
+  char buf[44]; /* strlen("One$MyKeyword: my keyword was expanded $Two") + \0 */
   apr_size_t len;
-  svn_stream_mark_t *mark, *mark2;
+  svn_stream_mark_t *mark;
   apr_hash_t *keywords;
   svn_string_t *keyword_val;
 
   keywords = apr_hash_make(pool);
-  keyword_val = svn_string_create("my key word was expanded", pool);
+  keyword_val = svn_string_create("my keyword was expanded", pool);
   apr_hash_set(keywords, "MyKeyword", APR_HASH_KEY_STRING, keyword_val);
   stringbuf = svn_stringbuf_create("One$MyKeyword$Two", pool);
   stream = svn_stream_from_stringbuf(stringbuf, pool);
   translated_stream = svn_subst_stream_translated(stream, APR_EOL_STR,
                                                   FALSE, keywords, TRUE, pool);
-  len = 3;
-  SVN_ERR(svn_stream_read(translated_stream, buf, &len));
-  SVN_TEST_ASSERT(len == 3);
-  buf[3] = '\0';
-  SVN_TEST_STRING_ASSERT(buf, "One");
-
   /* Seek from outside of keyword to inside of keyword. */
+  len = 25;
+  SVN_ERR(svn_stream_read(translated_stream, buf, &len));
+  SVN_TEST_ASSERT(len == 25);
+  buf[25] = '\0';
+  SVN_TEST_STRING_ASSERT(buf, "One$MyKeyword: my keyword");
   SVN_ERR(svn_stream_mark(translated_stream, &mark, pool));
-  len = 3;
+  SVN_ERR(svn_stream_reset(translated_stream));
+  SVN_ERR(svn_stream_seek(translated_stream, mark));
+  len = 4;
   SVN_ERR(svn_stream_read(translated_stream, buf, &len));
-  SVN_TEST_ASSERT(len == 3);
-  buf[3] = '\0';
-  /* ### The test currently fails here because the keyword isn't
-   * ### expanded correctly. buf contains "$My\0" */
-  SVN_TEST_STRING_ASSERT(buf, "my ");
-  SVN_ERR(svn_stream_seek(stream, mark));
-  len = 3;
-  SVN_ERR(svn_stream_read(stream, buf, &len));
-  SVN_TEST_ASSERT(len == 3);
-  buf[3] = '\0';
-  SVN_TEST_STRING_ASSERT(buf, "my ");
+  SVN_TEST_ASSERT(len == 4);
+  buf[4] = '\0';
+  SVN_TEST_STRING_ASSERT(buf, " was");
 
   /* Seek from inside of keyword to inside of keyword. */
   SVN_ERR(svn_stream_mark(translated_stream, &mark, pool));
-  len = 3;
+  len = 9;
+  SVN_ERR(svn_stream_read(translated_stream, buf, &len));
+  SVN_TEST_ASSERT(len == 9);
+  buf[9] = '\0';
+  SVN_TEST_STRING_ASSERT(buf, " expanded");
+  SVN_ERR(svn_stream_seek(translated_stream, mark));
+  len = 9;
   SVN_ERR(svn_stream_read(translated_stream, buf, &len));
-  SVN_TEST_ASSERT(len == 3);
-  buf[3] = '\0';
-  SVN_TEST_STRING_ASSERT(buf, "key");
-  SVN_ERR(svn_stream_seek(stream, mark));
-  len = 3;
-  SVN_ERR(svn_stream_read(stream, buf, &len));
-  SVN_TEST_ASSERT(len == 3);
-  buf[3] = '\0';
-  SVN_TEST_STRING_ASSERT(buf, "my ");
+  SVN_TEST_ASSERT(len == 9);
+  buf[9] = '\0';
+  SVN_TEST_STRING_ASSERT(buf, " expanded");
 
   /* Seek from inside of keyword to outside of keyword. */
-  len = 22;
+  SVN_ERR(svn_stream_mark(translated_stream, &mark, pool));
+  len = 4;
+  SVN_ERR(svn_stream_read(translated_stream, buf, &len));
+  SVN_TEST_ASSERT(len == 4);
+  buf[4] = '\0';
+  SVN_TEST_STRING_ASSERT(buf, " $Tw");
+  SVN_ERR(svn_stream_seek(translated_stream, mark));
+  len = 4;
+  SVN_ERR(svn_stream_read(translated_stream, buf, &len));
+  SVN_TEST_ASSERT(len == 4);
+  buf[4] = '\0';
+  SVN_TEST_STRING_ASSERT(buf, " $Tw");
+
+  /* Seek from outside of keyword to outside of keyword. */
+  SVN_ERR(svn_stream_mark(translated_stream, &mark, pool));
+  len = 1;
   SVN_ERR(svn_stream_read(translated_stream, buf, &len));
-  SVN_TEST_ASSERT(len == 22);
-  buf[22] = '\0';
-  SVN_TEST_STRING_ASSERT(buf, "keyword was expandedTw");
-  SVN_ERR(svn_stream_mark(translated_stream, &mark2, pool));
-  SVN_ERR(svn_stream_seek(stream, mark));
-  len = 3;
-  SVN_ERR(svn_stream_read(stream, buf, &len));
-  SVN_TEST_ASSERT(len == 3);
-  buf[3] = '\0';
-  SVN_TEST_STRING_ASSERT(buf, "my ");
-  SVN_ERR(svn_stream_seek(stream, mark2));
+  SVN_TEST_ASSERT(len == 1);
+  buf[1] = '\0';
+  SVN_TEST_STRING_ASSERT(buf, "o");
+  SVN_ERR(svn_stream_seek(translated_stream, mark));
   len = 1;
-  SVN_ERR(svn_stream_read(stream, buf, &len));
+  SVN_ERR(svn_stream_read(translated_stream, buf, &len));
   SVN_TEST_ASSERT(len == 1);
   buf[1] = '\0';
   SVN_TEST_STRING_ASSERT(buf, "o");
@@ -433,7 +434,7 @@ struct svn_test_descriptor_t test_funcs[
                    "test stream seeking for files"),
     SVN_TEST_PASS2(test_stream_seek_stringbuf,
                    "test stream seeking for stringbufs"),
-    SVN_TEST_XFAIL2(test_stream_seek_translated,
-                    "test stream seeking for translated streams"),
+    SVN_TEST_PASS2(test_stream_seek_translated,
+                   "test stream seeking for translated streams"),
     SVN_TEST_NULL
   };

Modified: subversion/branches/ignore-mergeinfo-log/tools/buildbot/master/Feeder.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/tools/buildbot/master/Feeder.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/tools/buildbot/master/Feeder.py (original)
+++ subversion/branches/ignore-mergeinfo-log/tools/buildbot/master/Feeder.py Mon Feb  7 19:18:29 2011
@@ -167,7 +167,7 @@ class FeedResource(XmlResource):
             projectName = self.status.getProjectName()
             link = re.sub(r'index.html', "", self.status.getURLForThing(build))
 
-            # title: trunk r22191 (plus patch) failed on 'i686-debian-sarge1 shared gcc-3.3.5'
+            # title: trunk r862265 (plus patch) failed on 'i686-debian-sarge1 shared gcc-3.3.5'
             ss = build.getSourceStamp()
             source = ""
             if ss.branch:

Modified: subversion/branches/ignore-mergeinfo-log/tools/client-side/svnmucc/svnmucc-test.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/tools/client-side/svnmucc/svnmucc-test.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/tools/client-side/svnmucc/svnmucc-test.py (original)
+++ subversion/branches/ignore-mergeinfo-log/tools/client-side/svnmucc/svnmucc-test.py Mon Feb  7 19:18:29 2011
@@ -294,29 +294,29 @@ def main():
               'propsetf', 'testprop', sys.argv[0], 'foo/foo')
 
   # Expected missing revision error
-  xrun_svnmucc(['svnmucc: \'a\' is not a revision'
+  xrun_svnmucc(["svnmucc: E200004: 'a' is not a revision"
                 ], #---------
               'cp', 'a', 'b')
 
   # Expected cannot be younger error
-  xrun_svnmucc(['svnmucc: Copy source revision cannot be younger ' +
+  xrun_svnmucc(['svnmucc: E205000: Copy source revision cannot be younger ' +
                 'than base revision',
                 ], #---------
               'cp', '42', 'a', 'b')
 
   # Expected already exists error
-  xrun_svnmucc(["svnmucc: 'foo' already exists",
+  xrun_svnmucc(["svnmucc: E125002: 'foo' already exists",
                 ], #---------
               'cp', '17', 'a', 'foo')
 
   # Expected copy_src already exists error
-  xrun_svnmucc(["svnmucc: 'a/bar' (from 'foo/bar:17') already exists",
+  xrun_svnmucc(["svnmucc: E125002: 'a/bar' (from 'foo/bar:17') already exists",
                 ], #---------
               'cp', '17', 'foo', 'a',
               'cp', '17', 'foo/foo', 'a/bar')
 
   # Expected not found error
-  xrun_svnmucc(['svnmucc: \'a\' not found',
+  xrun_svnmucc(["svnmucc: E125002: 'a' not found",
                 ], #---------
               'cp', '17', 'a', 'b')
 

Modified: subversion/branches/ignore-mergeinfo-log/tools/client-side/svnmucc/svnmucc.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/tools/client-side/svnmucc/svnmucc.c?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/tools/client-side/svnmucc/svnmucc.c (original)
+++ subversion/branches/ignore-mergeinfo-log/tools/client-side/svnmucc/svnmucc.c Mon Feb  7 19:18:29 2011
@@ -298,10 +298,9 @@ drive(struct operation *operation,
               if (apr_err)
                 return svn_error_wrap_apr(apr_err, "Can't open stdin");
             }
-          contents = svn_stream_from_aprfile(f, pool);
+          contents = svn_stream_from_aprfile2(f, FALSE, pool);
           SVN_ERR(svn_txdelta_send_stream(contents, handler,
                                           handler_baton, NULL, pool));
-          SVN_ERR(svn_io_file_close(f, pool));
         }
       /* If we opened a file, we need to apply outstanding propmods,
          then close it. */
@@ -358,7 +357,7 @@ get_operation(const char *path,
   return child;
 }
 
-/* Return the portion of URL that is relative to ANCHOR. */
+/* Return the portion of URL that is relative to ANCHOR (URI-decoded). */
 static const char *
 subtract_anchor(const char *anchor, const char *url, apr_pool_t *pool)
 {
@@ -412,7 +411,7 @@ build(action_code_t action,
   for (i = 0; i < path_bits->nelts; ++i)
     {
       const char *path_bit = APR_ARRAY_IDX(path_bits, i, const char *);
-      path_so_far = svn_path_join(path_so_far, path_bit, pool);
+      path_so_far = svn_relpath_join(path_so_far, path_bit, pool);
       operation = get_operation(path_so_far, operation, pool);
 
       /* If we cross a replace- or add-with-history, remember the
@@ -431,7 +430,7 @@ build(action_code_t action,
         }
       else if (copy_src)
         {
-          copy_src = svn_path_join(copy_src, path_bit, pool);
+          copy_src = svn_relpath_join(copy_src, path_bit, pool);
         }
     }
 
@@ -631,7 +630,7 @@ execute(const apr_array_header_t *action
   SVN_ERR(svn_config_get_config(&config, config_dir, pool));
   SVN_ERR(create_ra_callbacks(&ra_callbacks, username, password,
                               non_interactive, pool));
-  SVN_ERR(svn_ra_open3(&session, anchor, NULL, ra_callbacks,
+  SVN_ERR(svn_ra_open4(&session, NULL, anchor, NULL, ra_callbacks,
                        NULL, config, pool));
 
   SVN_ERR(svn_ra_get_latest_revnum(session, &head, pool));
@@ -733,6 +732,18 @@ read_propvalue_file(const svn_string_t *
   return SVN_NO_ERROR;
 }
 
+/* Perform the typical suite of manipulations for user-provided URLs
+   on URL, returning the result (allocated from POOL): IRI-to-URI
+   conversion, auto-escaping, and canonicalization. */
+static const char *
+sanitize_url(const char *url,
+             apr_pool_t *pool)
+{
+  url = svn_path_uri_from_iri(url, pool);
+  url = svn_path_uri_autoescape(url, pool);
+  return svn_uri_canonicalize(url, pool);
+}
+
 static void
 usage(apr_pool_t *pool, int exit_val)
 {
@@ -838,7 +849,7 @@ main(int argc, const char **argv)
             svn_stringbuf_t *contents;
             err = svn_utf_cstring_to_utf8(&arg_utf8, arg, pool);
             if (! err)
-              err = svn_stringbuf_from_file(&contents, arg, pool);
+              err = svn_stringbuf_from_file2(&contents, arg, pool);
             if (! err)
               err = svn_utf_cstring_to_utf8(&message, contents->data, pool);
             if (err)
@@ -855,11 +866,11 @@ main(int argc, const char **argv)
           err = svn_utf_cstring_to_utf8(&root_url, arg, pool);
           if (err)
             handle_error(err, pool);
-          root_url = svn_path_canonicalize(root_url, pool);
           if (! svn_path_is_url(root_url))
             handle_error(svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
                                            "'%s' is not a URL\n", root_url),
                          pool);
+          root_url = sanitize_url(root_url, pool);
           break;
         case 'r':
           {
@@ -984,10 +995,9 @@ main(int argc, const char **argv)
       /* For puts, there should be a local file next. */
       if (action->action == ACTION_PUT)
         {
-          action->path[1] = svn_path_canonicalize(APR_ARRAY_IDX(action_args,
-                                                                i,
-                                                                const char *),
-                                                  pool);
+          action->path[1] =
+            svn_dirent_canonicalize(APR_ARRAY_IDX(action_args, i,
+                                                  const char *), pool);
           if (++i == action_args->nelts)
             insufficient(pool);
         }
@@ -1017,13 +1027,14 @@ main(int argc, const char **argv)
           else
             {
               const char *propval_file =
-                svn_path_canonicalize(APR_ARRAY_IDX(action_args, i,
-                                                    const char *), pool);
+                svn_dirent_canonicalize(APR_ARRAY_IDX(action_args, i,
+                                                      const char *), pool);
 
               if (++i == action_args->nelts)
                 insufficient(pool);
 
-              err = read_propvalue_file(&(action->prop_value), propval_file, pool);
+              err = read_propvalue_file(&(action->prop_value),
+                                        propval_file, pool);
               if (err)
                 handle_error(err, pool);
 
@@ -1047,26 +1058,32 @@ main(int argc, const char **argv)
         {
           const char *url = APR_ARRAY_IDX(action_args, i, const char *);
 
-          /* If there's a root URL, we expect this to be a path
-             relative to that URL.  Otherwise, it should be a full URL. */
-          if (root_url)
-            url = svn_path_join(root_url, url, pool);
-          else if (! svn_path_is_url(url))
-            handle_error(svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
-                                           "'%s' is not a URL\n", url), pool);
-          url = svn_path_uri_from_iri(url, pool);
-          url = svn_path_uri_autoescape(url, pool);
-          url = svn_path_canonicalize(url, pool);
+          /* If there's a ROOT_URL, we expect URL to be a path
+             relative to ROOT_URL (and we build a full url from the
+             combination of the two).  Otherwise, it should be a full
+             url. */
+          if (! svn_path_is_url(url))
+            {
+              if (! root_url)
+                handle_error(svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+                                               "'%s' is not a URL, and "
+                                               "--root-url (-U) not provided\n",
+                                               url), pool);
+              /* ### These relpaths are already URI-encoded. */
+              url = apr_pstrcat(pool, root_url, "/",
+                                svn_relpath_canonicalize(url, pool), NULL);
+            }
+          url = sanitize_url(url, pool);
           action->path[j] = url;
 
           /* The cp source could be the anchor, but the other URLs should be
              children of the anchor. */
           if (! (action->action == ACTION_CP && j == 0))
-            url = svn_path_dirname(url, pool);
+            url = svn_uri_dirname(url, pool);
           if (! anchor)
             anchor = url;
           else
-            anchor = svn_path_get_longest_ancestor(anchor, url, pool);
+            anchor = svn_uri_get_longest_ancestor(anchor, url, pool);
 
           if ((++i == action_args->nelts) && (j >= num_url_args))
             insufficient(pool);

Modified: subversion/branches/ignore-mergeinfo-log/tools/dev/check-license.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/tools/dev/check-license.py?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/tools/dev/check-license.py (original)
+++ subversion/branches/ignore-mergeinfo-log/tools/dev/check-license.py Mon Feb  7 19:18:29 2011
@@ -19,7 +19,7 @@
 import sys, os, re
 
 # Note: Right now, OLD_LICENSE and NEW_LICENSE are the same, because
-# r38370 updated all the license blocks.  In the future, if we update
+# r878444 updated all the license blocks.  In the future, if we update
 # the license block again, change just NEW_LICENSE and use this script.
 
 OLD_LICENSE = '''\

Modified: subversion/branches/ignore-mergeinfo-log/tools/dev/svnraisetreeconflict/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/tools/dev/svnraisetreeconflict/main.c?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/tools/dev/svnraisetreeconflict/main.c (original)
+++ subversion/branches/ignore-mergeinfo-log/tools/dev/svnraisetreeconflict/main.c Mon Feb  7 19:18:29 2011
@@ -200,7 +200,7 @@ raise_tree_conflict(int argc, const char
                             "Wrong number of arguments");
 
   /* Read the parameters */
-  wc_path = svn_path_internal_style(argv[i++], pool);
+  wc_path = svn_dirent_internal_style(argv[i++], pool);
   SVN_ERR(read_enum_field(&kind, node_kind_map, argv[i++], pool));
   SVN_ERR(read_enum_field(&operation, operation_map, argv[i++], pool));
   SVN_ERR(read_enum_field(&action, action_map, argv[i++], pool));

Modified: subversion/branches/ignore-mergeinfo-log/tools/server-side/svn-populate-node-origins-index.c
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo-log/tools/server-side/svn-populate-node-origins-index.c?rev=1068059&r1=1068058&r2=1068059&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo-log/tools/server-side/svn-populate-node-origins-index.c (original)
+++ subversion/branches/ignore-mergeinfo-log/tools/server-side/svn-populate-node-origins-index.c Mon Feb  7 19:18:29 2011
@@ -178,8 +178,8 @@ main(int argc, const char **argv)
   /* Convert argv[1] into a UTF8, internal-format, canonicalized path. */
   if ((err = svn_utf_cstring_to_utf8(&repos_path, argv[1], pool)))
     goto cleanup;
-  repos_path = svn_path_internal_style(repos_path, pool);
-  repos_path = svn_path_canonicalize(repos_path, pool);
+  repos_path = svn_dirent_internal_style(repos_path, pool);
+  repos_path = svn_dirent_canonicalize(repos_path, pool);
 
   if ((err = build_index(repos_path, pool)))
     goto cleanup;