> And, as is looks, it comes from git-tfs itself:

lol. I guess that was me. :grin:

>  I think the only robust way is to compute the base commit for each individual file from the shelveset first and bail out if it is not the same for all of them.

I think that's true, but it might also render `git tfs unshelve` unusable in too many cases. It's been a while since I debugged through shelve-related stuff, but I seem to remember that `_pendingChange.Version` is the changeset number of the last time the file was changed. So, even if your workspace is latest, you'll still have a mix of version numbers (unless you change every file in every changeset). A reasonable approach is what you're already doing: get the highest of all of the `_pendingChange.Version` numbers, and assume that's the base. If it's not, you still get the content, but the diff is wrong, which sucks, but is still probably better than nothing, and if you know what you're doing, you can extract the bits you need. This is part of the reason for unshelving to a new branch always... if it screws something up, you just delete the branch _et voilà_ it's unscrewed.