On Wed, Sep 23, 2015 at 12:55 PM, Julian Foad <julianf...@btopenworld.com>
wrote:

> > Johan Corveleyn wrote:
> >> [...] stefan2 told me in person that that part of the
> >> change in r1572363 was unintentional :-). IIUC, he didn't realize that
> >> it would have this effect on the output of dump.
> [...]
> >>>> I think the dump.c part of r1572363 and r1573111 should be reverted /
> >>>> fixed so that we get the previous behaviour again, and this should be
> >>>> backported to 1.9. At this point, IMO 'svnadmin dump' is broken in
> >>>> 1.9.
>
> 1. I pretty much agree now that we should revert the change.
>

I suggest that we apply the patch below. It is more efficient
that the original behaviour but ensures that "no-op" changes
will be retained.

-- Stefan^2.
Index: dump.c
===================================================================
--- subversion/libsvn_repos/dump.c	(revision 1703916)
+++ subversion/libsvn_repos/dump.c	(working copy)
@@ -1168,9 +1168,20 @@
                                      compare_root, compare_path,
                                      eb->fs_root, path, pool));
       if (kind == svn_node_file)
-        SVN_ERR(svn_fs_contents_different(&must_dump_text,
-                                          compare_root, compare_path,
-                                          eb->fs_root, path, pool));
+        {
+          /* No-op changes are entirely legal.  To cause 'svnadmin load' to
+           * re-create the node change, we must either include a prop or a
+           * text change (or both).  Even if those end up to not change the
+           * contents, this will trigger the creation of the noderev itself
+           * and the respective changed paths list entry. */
+          if (must_dump_props)
+            SVN_ERR(svn_fs_contents_different(&must_dump_text,
+                                              compare_root, compare_path,
+                                              eb->fs_root, path, pool));
+          else
+            must_dump_text = TRUE;
+        }
+
       break;
 
     case svn_node_action_delete:

Reply via email to