Author: stsp
Date: Tue Oct  2 11:07:05 2012
New Revision: 1392835

URL: http://svn.apache.org/viewvc?rev=1392835&view=rev
Log:
Reintegrate the 1-7.x-r1389851 branch.

 * r1389851
   Fix commit from multiple working copies nested within a parent WC.
   Justification:
     Prevents error when trying commit from multiple nested WCs.
     Fixes a test failure on 1.7.x when run within a format 30 WC.
   Branch:
     ^/subversion/branches/1.7.x-r1389851
   Votes:
     +1: stsp, breser, rhuijben, philip

Modified:
    subversion/branches/1.7.x/   (props changed)
    subversion/branches/1.7.x/STATUS
    subversion/branches/1.7.x/subversion/libsvn_client/commit.c

Propchange: subversion/branches/1.7.x/
------------------------------------------------------------------------------
  Merged /subversion/branches/1.7.x-r1389851:r1389853-1392834
  Merged /subversion/trunk:r1389851

Modified: subversion/branches/1.7.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1392835&r1=1392834&r2=1392835&view=diff
==============================================================================
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Tue Oct  2 11:07:05 2012
@@ -99,13 +99,3 @@ Approved changes:
      Merge with --accept=tc.
    Votes:
      +1: stsp, cmpilato, breser
-
- * r1389851
-   Fix commit from multiple working copies nested within a parent WC.
-   Justification:
-     Prevents error when trying commit from multiple nested WCs.
-     Fixes a test failure on 1.7.x when run within a format 30 WC.
-   Branch:
-     ^/subversion/branches/1.7.x-r1389851
-   Votes:
-     +1: stsp, breser, rhuijben, philip

Modified: subversion/branches/1.7.x/subversion/libsvn_client/commit.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.7.x/subversion/libsvn_client/commit.c?rev=1392835&r1=1392834&r2=1392835&view=diff
==============================================================================
--- subversion/branches/1.7.x/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/1.7.x/subversion/libsvn_client/commit.c Tue Oct  2 
11:07:05 2012
@@ -1189,6 +1189,7 @@ svn_client_commit5(const apr_array_heade
   const char *log_msg;
   const char *base_abspath;
   const char *base_url;
+  const char *ra_session_wc;
   apr_array_header_t *rel_targets;
   apr_array_header_t *lock_targets;
   apr_array_header_t *locks_obtained;
@@ -1390,9 +1391,19 @@ svn_client_commit5(const apr_array_heade
   cb.info = &commit_info;
   cb.pool = pool;
 
+  /* When committing from multiple WCs, get the RA editor from
+   * the first WC, rather than the BASE_ABSPATH. The BASE_ABSPATH
+   * might be an unrelated parent of nested working copies.
+   * We don't support commits to multiple repositories so using
+   * the first WC to get the RA session is safe. */
+  if (lock_targets->nelts > 1)
+    ra_session_wc = APR_ARRAY_IDX(lock_targets, 0, const char *);
+  else
+    ra_session_wc = base_abspath;
+
   cmt_err = svn_error_trace(
                  get_ra_editor(&ra_session, &editor, &edit_baton, ctx,
-                               base_url, base_abspath, log_msg,
+                               base_url, ra_session_wc, log_msg,
                                commit_items, revprop_table, TRUE, lock_tokens,
                                keep_locks, capture_commit_info,
                                &cb, pool));


Reply via email to