On Fri, Jul 06, 2007 at 01:08:08PM +0400, Dmitry V. Levin wrote: > > В общем, git довольно дубовая система, она не решает тонких проблем, > > а просто не обращает на эти проблемы внимания. Впрочем, всё равно никто > > не знает, как надо "по-хорошему" решать эти "тонкие проблемы". Вроде в > > darcs какие-то идеи на этот счет были. > > Некоторые полагают, что т.н. исчисление патчей в darcs представляет в > первую очередь академический интерес: > http://article.gmane.org/gmane.comp.version-control.git/50809 Я некоторое время назад запойно изучал хаскель, но так и не понял, как работает этот darcs. Вот типичное требование, которому git не удовлетворяет: Must support partial integration of changes between branches, at the file level. This is a requirement, not a nice-to-have, brought about by how perl development is done. http://www.nntp.perl.org/group/perl.perl5.porters/2007/07/msg126948.html Это пишет maintainer perl-5.8.x. То есть "частичный мёрж" сделать нельзя, в смысле никакой метаинформации о таком мерже не сохранится. Информация в коммите о cherry-pick по сути метаинформацией не является. В случае с перлом разработка устроена так, что нужно уметь отвечать на вопрос: какие изменения из бранча 5.9 влиты в бранч 5.8 полностью ИЛИ частично? Какие ещё не влиты? Какие были просмотрены и решили что вливать не будем? Бранчи 5.9 и 5.8 никогда не сойдутся. Гит провоцирует обратную схему: багфиксы делать только в бранче 5.8, а время от времени полностью вливать бранч 5.8 в бранч 5.9.