blob: 4e8c09916cbca778596c5f42dee79010ae35ef8b [file] [log] [blame]
API ERRATA -- $Id$
Root Cause of Errata: implementation/docstring mismatch
Library(s) Affected: libsvn_fs_fs, libsvn_fs_base
Function(s) Affected: svn_fs_props_changed, svn_fs_contents_changed
New Behavior in: 1.9.0-1.9.2 (only, see note below)
Related Issues: 4598
[ Note: This only applies to Subversion 1.9.0-1.9.2; later versions
restore the original behavior of svn_fs_props_changed and
svn_fs_contents_changed. The new svn_fs_props_different
svn_fs_contents_different functions are available for the
API users as well.
References:
https://issues.apache.org/jira/browse/SVN-4598
https://mail-archives.apache.org/mod_mbox/subversion-dev/201509.mbox/%3CCAB84uBVe8QnEpbPVAb__yQjiDDoYjFn2+M9mPcdBXZCwMCpOLw@mail.gmail.com%3E
("No-op changes no longer dumped by 'svnadmin dump' in 1.9")
https://mail-archives.apache.org/mod_mbox/subversion-dev/201302.mbox/%3C510B6AE9.9070106@collab.net%3E
("Re: Reintegrate-like merges and diff_ignore_ancestry") ]
== Details ==
The docstrings for svn_fs_props_changed and svn_fs_contents_changed
did not state that these functions would only perform backend (BDB,
FSFS) specific quick checks. Moreover, the implementation of
svn_fs_props_changed would not only generate false positives as
svn_contents_changed did -- which could later be identified by the
caller -- but also false negatives.
This behavior makes these APIs very hard to use efficiently and
creates dependencies between implementation details and API callers.
For the 1.9 release, the implementations were fixed to never return
false negatives and to produce false positives in fewer cases. The
docstrings have been updated to explain the approximative nature of
these API and note the pre-1.9 deviation.
Also, svn_fs_props_different and svn_fs_contents_different have been
added as "strict" counterparts to the older quick check functions.
These new API functions will produce neither false positives nor
false negatives.
== Impact on API Users ==
If an API user relied on false positives e.g. in the case of a parent
path change path, their code may no longer produce the same results.
All API users should review their use of svn_fs_props_changed as
well as svn_fs_contents_changed and consider using the new APIs,
svn_fs_props_different and svn_fs_contents_different, instead.