ну руками да через opendiff. в последнее время оно сильно умнее стало и блоки редактировать не сложно. другой вариант - всегда брать одну из версий, а потом в нее добавлять/убирать файлы руками чтобы собиралось
я не знаю с помощью чего это делалось, я просто видел это на одном из проектов, просто файл проекта не коммитился никогда и генерировался сам. чем это было сделано не знаю. надо гуглить