julianfoad.


Found Patch
r1674404, r1631171 r1631180

r1674404 | stefan2 | 2015-04-17 16:10:17 -0500 (Fri, 17 Apr 2015)

Docstring improvement.  No functional change.

* subversion/libsvn_fs_fs/fs.h
  (representation_t): Clarify the EXPANDED_SIZE==0 case.

Found by: julianfoad.

r1631180 | stefan2 | 2014-10-12 08:58:01 -0500 (Sun, 12 Oct 2014)

* subversion/libsvn_fs_fs/transaction.c
  (fold_change): Note that those flags indicate "touching" not
                 "changing" contents.  No functional change.

Patch by: julianfoad.


r1631171 | stefan2 | 2014-10-12 08:12:47 -0500 (Sun, 12 Oct 2014)

In FSFS, fix the reporting of deleted replacements in the changed paths list.

A replacement will change the ID reported for a given path and possibly the
node type as well, e.g. by deleting a file followed by an mkdir with the
same name.  When deleting that path again, we need to report the initial
ID and type again.  Hence, we must remember the deletion part of replacements
and revert to it when deleting said replacements.

Right now, this is a theoretical problem:  Editors won't delete replacements
but it can be triggered through the API.  Most API users won't care about
the ID and type of a deleted path either, but they may.

This problem still exists with the other backends.

* subversion/libsvn_fs_fs/transaction.c
  (fold_change): Remember the deletions that we replaced and restore them
                 when the replacements get deleted themselves.
  (process_changes_baton_t): We now need this struct to be able to pass
                             two hashes to process_changes.
  (process_changes): Update to use the new baton type.
  (svn_fs_fs__txn_changes_fetch): Provide the extra container in the new
                                  baton type.

* subversion/tests/libsvn_fs/fs-test.c
  (test_delete_replaced_paths_changed): New test illustrating the problem.
  (test_funcs): Register new test.

Found by: julianfoad.