Author: pburba Revision: 1035894 Modified property: svn:log Modified: svn:log at Wed Nov 17 15:11:29 2010 ------------------------------------------------------------------------------ --- svn:log (original) +++ svn:log Wed Nov 17 15:11:29 2010 @@ -1 +1,34 @@ Reintegrate the issue-3668-3669 branch. + +This fixes issue #3668 'inheritance can result in self-referential mergeinfo' +and issue #3669 'inheritance can result in mergeinfo describing nonexistent +sources'. + +The work for both of these issues was done in tandem for two reasons: + + First, because they are very similar, i.e. both are variations of the + problem where merge tracking's simple inheritance model resulted in + mergeinfo that contained invalid path-revs (either self-referential or + simply non-existent). + + Second, the fix for issue #3668, while simple, behaves badly in cases where + it is corrected but issue #3669 in not, see + http://subversion.tigris.org/issues/show_bug.cgi?id=3668#desc5 + +The core of the issue #3669 fix is two-fold: + + First, rev svn_ra_get_mergeinfo() so it can request that the server + validate any inherited mergeinfo it returns and second, rev + svn_repos_fs_get_mergeinfo() so the server can actually perform this + validation. + +Note that since an RA API was revved, a lot of the noise in this change is +simply updating the plumbing of the various RA providers. Any potential +reviewers wanting to see the heart of this change should probably start here: + + libsvn_fs/fs-loader.c:svn_fs_validate_mergeinfo(): Does the heavy + lifting of validating mergeinfo. + + libsvn_client/merge.c:get_invalid_inherited_mergeinfo(): Indirectly uses + the new RA API to determine what portion of WC path's inherited + mergeinfo is invalid.
