>А по существу есть что сказать? Как мне вытянуть diff между любыми
>двумя ревизиями? В git - diff - функция от двух локальных деревьев. Git не передаёт, не качает патчи.
То ли просчёт в реализации, то ли особенность проектирования, то ли наоборот.
И да, насколько я ничего не понимаю в потрохах git-а и его протокола, он не передаёт (вообще говоря) дельты между ревизиями одного файла. Есть локально NN-ый объект - не качаем, нет его - запаковать и отправить. При упаковке нескольких ревизий одного объекта, говорят, сжимаются достаточно эффективно (по размеру, не по расходу памяти-процессора). Допускаю, что я много чего не знаю про и выше - мои домыслы...
>Проблемы невозможности докачки это не решает. Более того, сабжевый гиториус её тоже
>не умеет.
Да, оно не было заложено в протоколе и студенты :) -
http://git.or.cz/gitwiki/SoC2009Ideas#RestartableClone
http://git.or.cz/gitwiki/SoC2008Ideas#RestartableClone
- все никак не порешают эту проблему.
Богг git-а как-то высказывался в духе, что да, на медленных/ненадёжных каналах оно "не того" и "да, ты, парень, попал".
Аналогично: фича/просчёт на выбор. Ну не проектировался git, как "убийца xmodem-а".
"Извините, так получилось."(тм)
Как попытка "обхода", качать тарбол, распаковать-комитить его в лок.репо, чтобы "засеять" его "какими надо" объектами, _после_ этого делать clone [одного дерева] - все файлы "уже здесь", дерево + commit -- "может быть и проскочит"(тм).