Были внесены изменения в наш .vcproj, чтобы исправить проблему на машине сборки (changeet 1700). Позже разработчик объединил свои изменения (изменения с 1710 по 1715) в багажник, но меркурийное авто-слияние переписало изменения с 1700 года. Я предполагаю, что это произошло потому, что он выбрал неправильную ветвь как "родителя" слияния (см. Часть 2 вопроса).
1) Что такое "правильный" меркурийный способ исправить эту проблему, учитывая, что из всех объединенных файлов только один файл был скомбинирован неправильно, а
2) что должен сделать разработчик по-другому, чтобы убедиться, что этого не произошло? Существуют ли способы принудительного применения "правильного" способа?
Изменить: я, вероятно, не совсем понял, что произошло. Разработчик А изменил строку в нашем .vcproj файле, который удалил опцию для компилятора. Его регистрация стала изменением 1700. Разработчик B, работающий от предыдущего родителя (скажем, changeet 1690), внес некоторые изменения в совершенно разные части проекта, но он касался файла .vcproj(только не где-то рядом с внесенными изменениями разработчиком A). Когда разработчик B объединил свои изменения (изменившись с 1710 по 1715), процесс слияния переписал изменения с 1700.
Чтобы исправить это, я только что повторно модифицировал файл .vcproj, чтобы снова включить изменение, и проверил его. Я просто хотел знать, почему Mercurial считал, что он не должен сохранять изменения в 1700 году и независимо от того, был "официальный" способ исправить это.
Отредактируйте второе: разработчик B ругается вверх и вниз, что Mercurial объединил файл .vcproj, не требуя разрешения конфликта, но, конечно же, возможно, что он просто забывает, и в этом случае все это упражнение является академическим.