- changed 14 files
Restore the 1.8 behavior of svn_fs_contents_changed() and _props_changed()API. Switch all calling sites of the new API, svn_fs_contents_different()and _props_different(), back to using the old functions.There are no user-visible problems associated with the old code. The newAPI doesn't improve any real use cases in the current code, but is causingproblems:- We had a problem with misbehaving svn blame -g (http://svn.haxx.se/dev/archive-2015-06/0069.shtml, "Blame behaviour change in 1.9").- We have an issue with repositories behaving differently in client-side operations like 'svn log' after dump/load (http://svn.haxx.se/dev/archive-2015-09/0269.shtml, "No-op changes no longer dumped by 'svnadmin dump' in 1.9"; also see issue #4598 in https://issues.apache.org/jira/browse/SVN-4598).- We could experience same problems originating from other callers of the new API, because the low level behavior change associated with switching to it propagates up to higher levels like svn_repos or svn_ra and alters the behavior of many different callers like svn_ra_get_file_revs2() or the update reporter. Third-party API callers could not be ready for it as well, because public API functions like svn_ra_get_file_revs2() didn't receive an erratum or a bump.See the discussion in http://svn.haxx.se/dev/archive-2015-10/0022.shtml("Re: No-op changes no longer dumped by 'svnadmin dump' in 1.9").* subversion/libsvn_fs_base/dag.c (svn_fs_base__things_different): Compare the uniquifiers, as we did in 1.8.* subversion/libsvn_fs_base/fs.h (node_revision_t.data_key_uniquifier): Remove the comment about not using this field.* subversion/libsvn_fs_fs/fs_fs.c (svn_fs_fs__noderev_same_rep_key): Reintroduce this helper function. (svn_fs_fs__file_text_rep_equal, svn_fs_fs__prop_rep_equal): Always assume the strict mode in these helpers.* subversion/libsvn_fs_fs/fs_fs.h (svn_fs_fs__noderev_same_rep_key): Declare this re-added helper. (svn_fs_fs__file_text_rep_equal, svn_fs_fs__prop_rep_equal): Update the docstrings for these helper functions.* subversion/libsvn_fs_fs/dag.c (svn_fs_fs__dag_things_different): Preserve the current comparison behavior in strict mode. Restore the 1.8 way of comparing the representation keys in non-strict mode.* subversion/libsvn_fs_fs/tree.c (merge): Restore the 1.8 way of comparing property lists.* subversion/libsvn_fs_fs/fs.h (representation_t.uniquifier): Remove the comment about not using this field.* subversion/libsvn_repos/delta.c (delta_proplists): Switch back to using svn_fs_props_changed(). (svn_repos__compare_files): Restore this function to its 1.8 state. (delta_files): Restore the 1.8 way of comparing files.* subversion/libsvn_repos/dump.c (dump_node): Switch back to using svn_fs_contents_changed() and svn_fs_props_changed().* subversion/libsvn_repos/reporter.c (delta_proplists): Switch back to using svn_fs_props_changed().* subversion/libsvn_repos/rev_hunt.c (send_path_revision): Switch back to using svn_fs_contents_changed(). Remove the no longer necessary hack for svn blame -g with older clients.* subversion/include/svn_ra.h (svn_ra_get_file_revs2): Update @note in the docstring.* subversion/include/svn_repos.h (svn_repos_get_file_revs2): Update @note in the docstring.* subversion/tests/cmdline/svnadmin_tests.py (dump_no_op_change): No longer fails with fsfs and bdb.