> 5. You shelve your modification on File1
>   - Tfs API reports C6 (because that's the last version you have when you shelve + 1) or C9 (because that's the last version of the file when you shelve +1) ?
>   - If that's C6, your algorithm is OK because you will create the branch to the good commit.
>   - If that's C9, you will create the branch on a commit with a later change on File1 and doing -1 is not the good solution :(

Hi, even if there are new changes for File1 on the server, whatever you shelve is based on your **current workspace**, that is, on C6. Otherwise, it would mean that TFS needs to merge your file before shelving it, something we know TFS is not specially good at :smile: 

Well, as it stands, this feature is currently unusable, so even if those three assumptions cannot be fulfilled all the time, it would still be better than having nothing. We can always check if something can go wrong and abort before unshelving. I will work on that in the meanwhile.

Thanks.