Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixed copy-up code by introducing a metafile (with suffix "_COPYUP~") to indicate copy-up is in progress, so that other processes/threads call read() or stat() on lower branch.
In addition, copy-up race condition is fixed when two processes/threads try to copy-up same file. A file lock (locking the metedata file) is introduced for serializing competing processes.
Added a new test file test_copyup.py separately to test copy-up. This is not added in default test file test_all.py, because it is non-deterministic without instrumenting main code (e.g. adding some delay in copy_file function).