Посмотрел известное выступление Торвальдса в гугле по поводу git, практически все понятно, но одна деталь не дает мне покоя. Торвальдс говорит ближе к концу о том, что git, в отличие от других систем контроля версий, отслеживает историю проекта "целиком", а не пофайлово. Мне интересно — Торвальдс считает это именно особенностью DCVS-подхода в сравнении с SVN либо же git как-то совсем по-другому манипулирует версионируемым контентом, даже не так, как это делает меркуриал ? Если первый вариант и Линус этим предложением сравнивает git и svn, то все понятно — git манипулирует деревом коммитов, а svn — деревом файлов. Однако если вариант второй, то в чем же может быть различие в подходе между git и mercurial ? По-моему, между ними различия в основном непринципиальные (типа что у гита нет named branches, а у меркуриала нельзя сливать за раз больше 2 ветвей).
В общем, хотелось бы уточнить, что Линус имеет в виду, и как его система трекает историю функций между файлами (ведь из контекста выступления кажется, что только гит это умеет делать — вопрос — можно ли сделать аналогичную функциональность скажем в mercurial, или это невозможно в силу дизайна).
Ссылка на этот момент выступления
http://www.youtube.com/watch?feature=player_detailpage&v=vCTvbydsrmg#t=342s