You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2011/08/31 19:10:27 UTC

svn commit: r1163704 - /subversion/trunk/subversion/libsvn_client/repos_diff.c

Author: julianfoad
Date: Wed Aug 31 17:10:27 2011
New Revision: 1163704

URL: http://svn.apache.org/viewvc?rev=1163704&view=rev
Log:
* subversion/libsvn_client/repos_diff.c
  (absent_dir, absent_file): Restore a work-around for an RA-serf inconsistency
    that I lost in r1163296.

Modified:
    subversion/trunk/subversion/libsvn_client/repos_diff.c

Modified: subversion/trunk/subversion/libsvn_client/repos_diff.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/repos_diff.c?rev=1163704&r1=1163703&r2=1163704&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/repos_diff.c (original)
+++ subversion/trunk/subversion/libsvn_client/repos_diff.c Wed Aug 31 17:10:27 2011
@@ -48,6 +48,7 @@
 #include "client.h"
 
 #include "private/svn_wc_private.h"
+#include "../libsvn_delta/debug_editor.h"
 
 /* Overall crawler editor baton.  */
 struct edit_baton {
@@ -1285,12 +1286,19 @@ absent_directory(const char *path,
   struct dir_baton *pb = parent_baton;
   struct edit_baton *eb = pb->edit_baton;
 
+  SVN_DBG(("pb->path='%s'; path='%s'\n", pb->path, path));
   /* ### TODO: Raise a tree-conflict?? I sure hope not.*/
 
   if (eb->notify_func)
     {
+      /* ### This 'join ... basename' works around an inconsistency whereby
+       * RA-serf gives PATH as just the basename instead of the full path. */
       svn_wc_notify_t *notify
-        = svn_wc_create_notify(path, svn_wc_notify_skip, pool);
+        = svn_wc_create_notify(svn_dirent_join(pb->path,
+                                               svn_relpath_basename(path,
+                                                                    NULL),
+                                               pool),
+                               svn_wc_notify_skip, pool);
 
       notify->kind = svn_node_dir;
       notify->content_state = notify->prop_state
@@ -1312,12 +1320,19 @@ absent_file(const char *path,
   struct dir_baton *pb = parent_baton;
   struct edit_baton *eb = pb->edit_baton;
 
+  SVN_DBG(("pb->path='%s'; path='%s'\n", pb->path, path));
   /* ### TODO: Raise a tree-conflict?? I sure hope not.*/
 
   if (eb->notify_func)
     {
+      /* ### This 'join ... basename' works around an inconsistency whereby
+       * RA-serf gives PATH as just the basename instead of the full path. */
       svn_wc_notify_t *notify
-        = svn_wc_create_notify(path, svn_wc_notify_skip, pool);
+        = svn_wc_create_notify(svn_dirent_join(pb->path,
+                                               svn_relpath_basename(path,
+                                                                    NULL),
+                                               pool),
+                               svn_wc_notify_skip, pool);
 
       notify->kind = svn_node_file;
       notify->content_state = notify->prop_state
@@ -1382,11 +1397,7 @@ svn_client__get_diff_editor(const svn_de
   tree_editor->absent_directory = absent_directory;
   tree_editor->absent_file = absent_file;
 
-  return svn_delta_get_cancellation_editor(cancel_func,
-                                           cancel_baton,
-                                           tree_editor,
-                                           eb,
-                                           editor,
-                                           edit_baton,
-                                           eb->pool);
+  return svn_delta__get_debug_editor(editor, edit_baton,
+                                     tree_editor, eb,
+                                     eb->pool);
 }