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 2013/07/16 13:25:33 UTC

svn commit: r1503662 - in /subversion/trunk/subversion: include/svn_wc.h libsvn_client/commit.c

Author: rhuijben
Date: Tue Jul 16 11:25:32 2013
New Revision: 1503662

URL: http://svn.apache.org/r1503662
Log:
Provide the missing commit paths to API users by adding a notify right before
returning a commit error, just like how we handle out-of-date and other commit
problems.

* subversion/include/svn_wc.h
  (svn_wc_notify_action_t): Add notification value.

* subversion/libsvn_client/commit.c
  (svn_client_commit6): Notify missing path.

Modified:
    subversion/trunk/subversion/include/svn_wc.h
    subversion/trunk/subversion/libsvn_client/commit.c

Modified: subversion/trunk/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_wc.h?rev=1503662&r1=1503661&r2=1503662&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_wc.h (original)
+++ subversion/trunk/subversion/include/svn_wc.h Tue Jul 16 11:25:32 2013
@@ -1261,6 +1261,11 @@ typedef enum svn_wc_notify_action_t
    * @since New in 1.9. */
   svn_wc_notify_cleanup_external,
 
+  /** The operation failed because the operation (E.g. commit) is only valid
+   * if the operation includes this path.
+   * @since New in 1.9. */
+  svn_wc_notify_failed_requires_target
+
 } svn_wc_notify_action_t;
 
 

Modified: subversion/trunk/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/commit.c?rev=1503662&r1=1503661&r2=1503662&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/commit.c (original)
+++ subversion/trunk/subversion/libsvn_client/commit.c Tue Jul 16 11:25:32 2013
@@ -854,6 +854,19 @@ svn_client_commit6(const apr_array_heade
                               svn_dirent_local_style(item->path, iterpool),
                               svn_dirent_local_style(delete_op_root_abspath,
                                                      iterpool));
+
+                  if (ctx->notify_func2)
+                    {
+                      svn_wc_notify_t *notify;
+                      notify = svn_wc_create_notify(
+                                    delete_op_root_abspath,
+                                    svn_wc_notify_failed_requires_target,
+                                    iterpool);
+                      notify->err = cmt_err;
+
+                      ctx->notify_func2(ctx->notify_baton2, notify, iterpool);
+                    }
+
                   goto cleanup;
                 }
             }
@@ -885,6 +898,19 @@ svn_client_commit6(const apr_array_heade
                          svn_dirent_local_style(item->path, iterpool),
                          svn_dirent_local_style(copy_op_root_abspath,
                                                 iterpool));
+
+              if (ctx->notify_func2)
+                {
+                    svn_wc_notify_t *notify;
+                    notify = svn_wc_create_notify(
+                                copy_op_root_abspath,
+                                svn_wc_notify_failed_requires_target,
+                                iterpool);
+                    notify->err = cmt_err;
+
+                    ctx->notify_func2(ctx->notify_baton2, notify, iterpool);
+                }
+
               goto cleanup;
             }
         }