Add lfs.basictransfersonly
option to disable non-basic transfer adapters
#1299
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.
Will be useful as a workaround where there are server bugs & avoid having to retry across adapters without knowing whether the cause is transient or not.
Basically error handling with non-basic adapters gets a lot more complex if we try to allow fallbacks to other adapters when an adapter fails. We can't know if errors are due to a transient problem or whether there's a bug in the server implementation and that we should stop negotiating this adapter. Even if we could determine that we'd have to perform the re-negotiation again.
Instead with this PR we assume that we continue to use the same definition of retriable errors and fatal errors, and abort if a non-basic adapter fails. If the user then knows it's because the server is buggy then they can enable this option to go back to the basic transfer adapter in all cases until it's fixed.