Задача: смержить две ветки большого проекта, которые были выделены из транка уже давно (различий много). Одна ветка хранится в SVN, другая — в VSS. Не спрашивайте, почему так получилось, изменить это невозможно.
Проблема: существующие инструменты для слияния файлов (WinMerge, TortoiseMerge, Araxis) сравнивают файлы построчно, что не очень удобно в случае больших файлов и больших изменений. Даже если просто банально переставить два метода местами (особенно если они перегруженые), эти проги выдадут достаточно много различий.
Вопросы:
1) может быть, у кого-нибудь есть know-how по поводу слияния больших проектов?
2) слышал ли кто-нибудь про инструменты для merge со встроенным синтаксическим анализатором? Наличие анализатора позволило бы выделять отдельные блоги, сравнение которых действительно имеет смысл. Например, можно было бы сравнивать не файлы целиком, а только тела функций с одинаковыми сигнатурами или объявления одноимённых переменных.
3) пробовал ли кто нибудь организовывать merge разных репозиториев посредством миграции этих репозиториев в ветки одного репозитория git (или hg), а потом сливать код средствами этих dcvs? По идее, dcvs должны сильно облегчать дело слияния, потому что для них это — повседневная операция.