Сегодня я попытался объединить две ветки git проекта Qt. Оба ветки добавили новые строки и новые переводы для них. Теперь инструмент Qt lupdate хранит номер строки исходного файла, где требуется перевод в файлах .ts. Как вы можете себе представить, номера строк не идентичны для двух ветвей, и когда оба файла перевода были обновлены, это приводит к сотням конфликтов слияния, подобных этому, для каждого файла перевода:
<<<<<<< HEAD
+ <location filename="../../src/network/mail/CSmtp.cpp" line="856"/>
=======
+ <location filename="../../src/network/mail/CSmtp.cpp" line="860"/>
>>>>>>> master
Вы можете сказать, что просто используйте одну из версий и снова запустите lupdate, но таким образом вы потеряете все новые переводы из одной из ветвей.
Другие инструменты, такие как gettext, не имеют этой проблемы, так как они не сохраняют номера строк.
Каковы некоторые хорошие подходы, чтобы избежать этой проблемы в Qt?