You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2012/05/12 00:06:20 UTC

svn commit: r1337394 - in /subversion/trunk/subversion: libsvn_client/commit_util.c tests/cmdline/lock_tests.py

Author: rhuijben
Date: Fri May 11 22:06:19 2012
New Revision: 1337394

URL: http://svn.apache.org/viewvc?rev=1337394&view=rev
Log:
Resolve an unmodified file unlock regression in the commit harvester.

* subversion/tests/cmdline/lock_tests.py
  (commit_file_unlock): Extend test to also try to unlock an unmodified file.

* subversion/libsvn_client/commit_util.c
  (harvest_status_callback): Handle unmodified but locked nodes when releasing
    locks.

Modified:
    subversion/trunk/subversion/libsvn_client/commit_util.c
    subversion/trunk/subversion/tests/cmdline/lock_tests.py

Modified: subversion/trunk/subversion/libsvn_client/commit_util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/commit_util.c?rev=1337394&r1=1337393&r2=1337394&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/commit_util.c (original)
+++ subversion/trunk/subversion/libsvn_client/commit_util.c Fri May 11 22:06:19 2012
@@ -616,7 +616,8 @@ harvest_status_callback(void *status_bat
       case svn_wc_status_none:
         return SVN_NO_ERROR;
       case svn_wc_status_normal:
-        if (!copy_mode && !status->conflicted)
+        if (!copy_mode && !status->conflicted
+            && !(just_locked && status->lock))
           return SVN_NO_ERROR;
         break;
       default:

Modified: subversion/trunk/subversion/tests/cmdline/lock_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/lock_tests.py?rev=1337394&r1=1337393&r2=1337394&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/lock_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/lock_tests.py Fri May 11 22:06:19 2012
@@ -159,19 +159,21 @@ def commit_file_unlock(sbox):
   wc_dir = sbox.wc_dir
 
   fname = 'A/mu'
-  file_path = os.path.join(sbox.wc_dir, fname)
+  file_path = sbox.ospath(fname)
 
-  # lock fname as wc_author
+  # lock fname and iota as wc_author
   svntest.actions.run_and_verify_svn(None, ".*locked by user", [], 'lock',
-                                     '-m', 'some lock comment', file_path)
+                                     '-m', 'some lock comment',
+                                     sbox.ospath(fname),
+                                     sbox.ospath('iota'))
 
   # make a change and commit it, allowing lock to be released
   svntest.main.file_append(file_path, "Tweak!\n")
-  svntest.main.run_svn(None, 'commit', '-m', '',
-                       file_path)
+  svntest.main.run_svn(None, 'commit', '-m', '', wc_dir)
 
   expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
   expected_status.tweak(fname, wc_rev=2)
+  expected_status.tweak('iota', wc_rev=2)
 
   # Make sure the file is unlocked
   svntest.actions.run_and_verify_status(wc_dir, expected_status)



Re: svn commit: r1337394 - in /subversion/trunk/subversion: libsvn_client/commit_util.c tests/cmdline/lock_tests.py

Posted by Greg Stein <gs...@gmail.com>.
On Fri, May 11, 2012 at 6:06 PM,  <rh...@apache.org> wrote:
>...
> +++ subversion/trunk/subversion/libsvn_client/commit_util.c Fri May 11 22:06:19 2012
> @@ -616,7 +616,8 @@ harvest_status_callback(void *status_bat
>       case svn_wc_status_none:
>         return SVN_NO_ERROR;
>       case svn_wc_status_normal:
> -        if (!copy_mode && !status->conflicted)
> +        if (!copy_mode && !status->conflicted
> +            && !(just_locked && status->lock))
>           return SVN_NO_ERROR;
>         break;

Again: some commentary right here would be wonderful. We don't want to
use a log message to indicate what is going on here.

>...

Cheers,
-g