On 12.01.2012 20:07, Philip Martin wrote:
Stefan Küng<tortoise...@gmail.com>  writes:

Could someone please review my patch? I'm sure you guys can see
immediately whether this is save or not. If it's ok, then I'll commit
it later.

Index: subversion/libsvn_client/patch.c
===================================================================
--- subversion/libsvn_client/patch.c    (Revision 1230694)
+++ subversion/libsvn_client/patch.c    (Arbeitskopie)
@@ -2920,8 +2920,9 @@
      }
    while (patch);

-  /* Delete directories which are empty after patching, if any. */
-  SVN_ERR(delete_empty_dirs(targets_info, ctx, dry_run, scratch_pool));
+  if (!dry_run)
+    /* Delete directories which are empty after patching, if any. */
+    SVN_ERR(delete_empty_dirs(targets_info, ctx, dry_run, scratch_pool));

    SVN_ERR(svn_diff_close_patch_file(patch_file, iterpool));
    svn_pool_destroy(iterpool);

It doesn't look right to me.  Use dry_run to in two places, to determine
whether to call delete_empty_dirs and as a parameter to
delete_empty_dirs isn't sensible.

Question is: do we need the notifications for deleting empty dirs in a dry-run? If yes, then this get's complicated: the error is thrown from svn_wc_walk_status() called in check_dir_empty. I could just not call that function in case of a dry-run, or catch that specific error and go on. But then the notifications wouldn't be completely accurate anymore.

So assuming we don't want to extend svn_wc_walk_status to take a dry-run param, the notifications for deleting empty dirs wouldn't be accurate.

Should I just change delete_empty_dirs() to not use the dry_run param and not get the notifications for those in a dry-run? I think no notifications is better than inaccurate ones (at least in a dry-run).

Stefan

--
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net

Reply via email to