The git-annex special remote protocol is somewhat unusual in that the last field of a line can contain whitespace, while all previous fields cannot. So, simply splitting by whitespace can result in more fields than expected, when there is in fact whitespace in the last field.
This is particularly a problem for TRANSFER, since the filename passed as its last field does contain whitespace in some edge cases. Note that the external special remote documentation used to incorrectly say it never contained whitespace.
If I've read your code correctly, it suffers from this problem..
The git-annex special remote protocol is somewhat unusual in that the last field of a line can contain whitespace, while all previous fields cannot. So, simply splitting by whitespace can result in more fields than expected, when there is in fact whitespace in the last field.
This is particularly a problem for TRANSFER, since the filename passed as its last field does contain whitespace in some edge cases. Note that the external special remote documentation used to incorrectly say it never contained whitespace.
If I've read your code correctly, it suffers from this problem..