I'll just mention that higher level code operations assume things about being able to append. Which means that while your code will probably work, I believe it will become quadratic if you try to push up a large branch.
1) Push up rev 1
2) Download rev 1 + push up rev 1 & 2
3) Download rev 1&2, push up rev 1-3
4) Download rev 1-3, push up rev 1-4
...
100) Download revs 1-99, push up revs 1-100
Now we do a little bit with buffering, so we should only append XX data per attempt, but I'm curious if supporting something with abysmal performance is worthwhile...
I'll just mention that higher level code operations assume things about being able to append. Which means that while your code will probably work, I believe it will become quadratic if you try to push up a large branch.
1) Push up rev 1
2) Download rev 1 + push up rev 1 & 2
3) Download rev 1&2, push up rev 1-3
4) Download rev 1-3, push up rev 1-4
...
100) Download revs 1-99, push up revs 1-100
Now we do a little bit with buffering, so we should only append XX data per attempt, but I'm curious if supporting something with abysmal performance is worthwhile...