HomeSoftware Heritage

replay: Ensure copyfrom operations are properly handled

Description

replay: Ensure copyfrom operations are properly handled

A subversion revision can contain new directories and files copied from
ancestor revisions but those were not perfectly handled in the commit
editor used to reconstruct the repository filesystem when replaying
revisions.

In particular previous implementation could not handle the case where a
path copied from an ancestor revision is replaced in a same commit (for
instance replacing a directory by a file with the same name).

These changes ensure that info about source path and source revision from
which a path is copied is passed to the commit editor methods as paramaters
in order to let them handle the copies but also that the replace operations
will be correctly replayed.

It also prevents OS error "Too many open files" when a really large files
tree is copied from an ancestor revision.

Details

Provenance
anlambertAuthored on Oct 21 2022, 6:09 PM
anlambertPushed on Oct 31 2022, 3:15 PM
Differential Revision
D8793: replay: Ensure copyfrom operations are properly handled
Parents
rDLDSVNd24ba1a5ccd6: loader: Compress dump file and rework truncated dump handling
Branches
Unknown
Tags
Unknown
References
tag: v1.4.0
Build Status
Buildable 32653
Build 51153: test-and-buildJenkins console · Jenkins