Philip Martin <philip.mar...@wandisco.com> writes:

> The 1.9 server is sending the same revisions as the 1.8 server but some
> of the revisions from the 1.9 server do not have a textdelta.  Both the
> 1.8 and 1.9 servers call svn_repos_get_file_revs2() which calls
> send_path_revision().  Inside send_path_revision() the 1.8 server uses
> svn_fs_contents_changed() to determine if there is a textdelta while 1.9
> uses svn_fs_contents_different().  svn_fs_contents_different() does not
> exist in 1.8 but is related to svn_fs_contents_changed() via the strict
> flag.  It seems the strict flag is supposed to make this work but it
> doesn't appear to work in this case.

There was discussion at the time of the change:

http://svn.haxx.se/dev/archive-2014-02/0165.shtml
http://svn.haxx.se/dev/archive-2014-02/0324.shtml
http://svn.haxx.se/dev/archive-2014-03/0000.shtml

1.9 has a more accurate svn_fs_contents_changed() that doesn't report as
many false positives. This means that some (or all?) of the -g revisions
reported by svn_repos_get_file_revs2() do not include a textdelta that
was included by 1.8.  It appears at some level the 1.9 client interprets
the revision without a textdelta as being the same as a revision with a
textdelta that changes nothing, while the 1.8 client relies on the
missing textdelta.  If I force the 1.9 server to send textdeltas between
identical texts the 1.8 client then behaves as the test expects.

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*

Reply via email to