The external special remote protocol supports export tree, but not yet import tree. There is a draft protocol extension in export and import appendix.

My main concern about this is, will external special remotes pick good ContentIdentifiers and will they implement STOREEXPORTEXPECTED in a way that avoids race conditions (at least as well as git does)? See the original import tree todo for discussion about the race conditions.

Mistakes in these things can result in data loss, and it's rather subtle stuff. --Joey

What I'd like to do is implement this in concert with someone who is implementing a special remote that uses it. So we can iterate on the protocol as needed to make it better. --Joey

@mih expressed some interest in this in a comment so maybe him? --Joey

I do want to implement this though, assuming it turns out to be feasible for people to implement it despite its complexity, so I'm tagging this confirmed.

(This is probably a prerequisite for the importtree only remotes idea, although it might make sense to implement that as a simpler protocol extension.)