ra: Fix edge case in svn:eol-style property handling
In a subversion repository, files contained in a directory can have the
svn:eol-style
property set in order to define which line endings should
be used when exporting a revision.
Nevertheless, the directory and its content can be removed in another
revision and added again in another one without setting the svn:eol-style
property this time.
The subversion loader already handles that property to ensure reconstructed filesystem for a revision through the svn_ra API will be identical to the one obtained by exporting that revision. But it did not handle properly the case when a directory and its content are removed recursively, resulting in eol-style mapping for the concerned files not cleared. This was leading to invalid reconstructed filesystem when files get added again without the property set as end of lines are replaced while they should not.
So ensure to properly handle the recursive removal of a directory and its content by clearing the eol-style mapping for removed files.
Related to #3695
Issue found by analyzing load failures reported in that sentry issue.
Migrated from D6589 (view on Phabricator)