When converting gen2 repositories to gen3 we currently default to using symlink mode. This means that in-place conversions can't work and also means that a user can't convert to an S3 bucket.
I think we need a couple of changes that would help a lot with the right decision being made:
- Add a new "link" option that tries a hardlink and falls back to symlink
- Add an auto mode to posix datastore that will check to see if the file is within the repository and use None if it is, else it will use "link".
- Make "auto" an alias for "copy" in S3 datastore.
With these changes the 2to3 conversion can use "auto" mode and that should do the right thing most of the time.