You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2010/03/14 19:08:06 UTC

svn commit: r922926 - /subversion/trunk/subversion/libsvn_wc/lock.c

Author: philip
Date: Sun Mar 14 18:08:06 2010
New Revision: 922926

URL: http://svn.apache.org/viewvc?rev=922926&view=rev
Log:
* subversion/libsvn_wc/lock.c
  (svn_wc__acquire_write_lock): Release all acquired locks.

Modified:
    subversion/trunk/subversion/libsvn_wc/lock.c

Modified: subversion/trunk/subversion/libsvn_wc/lock.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/lock.c?rev=922926&r1=922925&r2=922926&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/lock.c (original)
+++ subversion/trunk/subversion/libsvn_wc/lock.c Sun Mar 14 18:08:06 2010
@@ -1794,11 +1794,19 @@ svn_wc__acquire_write_lock(const char **
                                            iterpool);
           if (err && err->apr_err == SVN_ERR_WC_LOCKED)
             {
-              svn_error_t *err2 = svn_wc__release_write_lock(wc_ctx,
-                                                             child_abspath,
-                                                             iterpool);
-              if (err2)
-                svn_error_compose(err, err2);
+              while(i >= 0)
+                {
+                  svn_error_t *err2;
+                  svn_pool_clear(iterpool);
+                  child_relpath = APR_ARRAY_IDX(children, i, const char *);
+                  child_abspath = svn_dirent_join(local_abspath, child_relpath,
+                                                  iterpool);
+                   err2 = svn_wc__release_write_lock(wc_ctx, child_abspath,
+                                                     iterpool);
+                   if (err2)
+                     svn_error_compose(err, err2);
+                   --i;
+                }
               return svn_error_return(err);
             }
         }