[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[PATCH] Re: svn commit: r1145972 - in /subversion/trunk/subversion: libsvn_wc/wc-queries.sql libsvn_wc/wc_db.c svn/changelist-cmd.c tests/cmdline/changelist_tests.py tests/cmdline/tree_conflict_tests.py

From: Noorul Islam K M <noorul_at_collab.net>
Date: Thu, 14 Jul 2011 12:34:59 +0530

Noorul Islam K M <noorul_at_collab.net> writes:

> rhuijben_at_apache.org writes:
>
>> if (changelist_name)
>> {
>> - return svn_cl__try
>> - (svn_client_add_to_changelist(targets, changelist_name,
>> + SVN_ERR(svn_cl__try(
>> + svn_client_add_to_changelist(targets, changelist_name,
>> depth, opt_state->changelists,
>> ctx, pool),
>> - NULL, opt_state->quiet,
>> + &success, opt_state->quiet,
>> SVN_ERR_UNVERSIONED_RESOURCE,
>> SVN_ERR_WC_PATH_NOT_FOUND,
>> - SVN_NO_ERROR);
>> + SVN_NO_ERROR));
>> }
>> else
>> {
>> - return svn_cl__try
>> - (svn_client_remove_from_changelists(targets, depth,
>> + SVN_ERR(svn_cl__try(
>> + svn_client_remove_from_changelists(targets, depth,
>> opt_state->changelists,
>> ctx, pool),
>> - NULL, opt_state->quiet,
>> + &success, opt_state->quiet,
>> SVN_ERR_UNVERSIONED_RESOURCE,
>> SVN_ERR_WC_PATH_NOT_FOUND,
>> - SVN_NO_ERROR);
>> + SVN_NO_ERROR));
>> }
>> +
>> + if (!success)
>> + return svn_error_create(SVN_ERR_ILLEGAL_TARGET, NULL,
>> + _("Could not display info for all targets because "
>> + "some targets don't exist"));
>
> I think this should be something like this.
>
> Could not add all targets to changelist because some targets don't exist
>
> I will add test cases for handling multiple targets.
>

Log

[[[
* subversion/svn/changelist-cmd.c
  (svn_cl__changelist): Tweak error message. Also display different
    error message for add and remove.

* subversion/tests/cmdline/changelist_tests.py
  (mix_existing_and_non_existent_target): New test, verify that svn cl
    errors out in desirable way if mixture for existing and non-existent
    targets are passed.
  (test_list): Add new test.

Patch by: Noorul Islam K M <noorul{_AT_}collab.net>
]]]

Thanks and Regards
Noorul

Index: subversion/tests/cmdline/changelist_tests.py
===================================================================
--- subversion/tests/cmdline/changelist_tests.py (revision 1146559)
+++ subversion/tests/cmdline/changelist_tests.py (working copy)
@@ -1170,7 +1170,57 @@
                                      'changelist', unversioned,
                                       '--remove')
 
+def mix_existing_and_non_existent_target(sbox):
+ "mixture of existing and non-existent target"
 
+ sbox.build()
+ wc_dir = sbox.wc_dir
+ iota_path = os.path.join(wc_dir, 'iota')
+ bogus_path = os.path.join(wc_dir, 'A', 'bogus')
+
+ expected_err1 = "svn: warning: W155010: The node '" + \
+ re.escape(os.path.abspath(bogus_path)) + \
+ "' was not found.\n"
+
+ expected_err2 = expected_err1 + \
+ ".*svn: E200009: Could not add targets to changelist " + \
+ "because some targets don't exist\n"
+
+ expected_err_re = re.compile(expected_err2, re.DOTALL)
+ expected_adds = {
+ iota_path : 'testlist',
+ }
+
+ exit_code, output, error = svntest.main.run_svn(1, 'changelist', 'testlist',
+ iota_path, bogus_path)
+
+ verify_changelist_output(output, expected_adds)
+
+ # Verify error
+ if not expected_err_re.match("".join(error)):
+ raise svntest.Failure('cl failed: expected error "%s", '
+ 'but received "%s"' %
+ (expected_err2, "".join(error)))
+
+ expected_err2 = expected_err1 + \
+ ".*svn: E200009: Could not remove targets from " + \
+ "changelist because some targets don't exist\n"
+
+ expected_err_re = re.compile(expected_err2, re.DOTALL)
+ expected_removals = expected_adds
+
+ exit_code, output, error = svntest.main.run_svn(1, 'changelist',
+ iota_path, bogus_path,
+ "--remove")
+
+ verify_changelist_output(output, None, expected_removals)
+
+ # Verify error
+ if not expected_err_re.match("".join(error)):
+ raise svntest.Failure('cl failed: expected error "%s", '
+ 'but received "%s"' %
+ (expected_err2, "".join(error)))
+
 ########################################################################
 # Run the tests
 
@@ -1192,6 +1242,7 @@
               revert_deleted_in_changelist,
               add_remove_non_existent_target,
               add_remove_unversioned_target,
+ mix_existing_and_non_existent_target,
              ]
 
 if __name__ == '__main__':
Index: subversion/svn/changelist-cmd.c
===================================================================
--- subversion/svn/changelist-cmd.c (revision 1146559)
+++ subversion/svn/changelist-cmd.c (working copy)
@@ -107,6 +107,11 @@
                SVN_ERR_UNVERSIONED_RESOURCE,
                SVN_ERR_WC_PATH_NOT_FOUND,
                SVN_NO_ERROR));
+
+ if (!success)
+ return svn_error_create(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Could not add targets to changelist "
+ "because some targets don't exist"));
     }
   else
     {
@@ -118,12 +123,12 @@
                SVN_ERR_UNVERSIONED_RESOURCE,
                SVN_ERR_WC_PATH_NOT_FOUND,
                SVN_NO_ERROR));
+
+ if (!success)
+ return svn_error_create(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Could not remove targets from changelist "
+ "because some targets don't exist"));
     }
 
- if (!success)
- return svn_error_create(SVN_ERR_ILLEGAL_TARGET, NULL,
- _("Could not display info for all targets because "
- "some targets don't exist"));
- else
     return SVN_NO_ERROR;
 }
Received on 2011-07-14 09:07:40 CEST

This is an archived mail posted to the Subversion Dev mailing list.