чисто функциональный конфликт - это конфликт, в котором 2 конфликтующих изменения не затрагивают одни и те же файлы:
Каждое отдельное изменение может пройти проверки, но при объединении в одну ветвь код не будет работать, так как добавленный вызов в S4 не будет соответствовать обновленному прототипу из S1 .
В этом случае оба слияния выполняются с ускоренной перемоткой вперед, и git не может обнаружить конфликт - не будет фактических слияний файлов при трехстороннем слиянии, поскольку наборы изменений не затрагивают одни и те же файлы. Таким образом, конфликт также не будет обнаружен инструментами на основе git, анализирующими слияние, например, gerrit.
Только проверки, выполненные инструментом CI / CD, могут обнаружить такой чисто функциональный конфликт путем обнаружения несоответствия. В зависимости от используемого языка это может быть либо ошибка сборки / компиляции, либо ошибка тестирования / выполнения / выполнения.
Если 2 изменения вызывают конфликт слияния (трехсторонний или нет), это означает, что конфликт является VCS, а не чисто функциональным, и да, он будет обнаружен инструментами на основе git и / или git, поэтому к нему нужно будет обратиться до того, как слияние будет разрешено (выполнение инструмента CI / CD не будет необходимо для его обнаружения)
На ваш второй вопрос ApartCI обнаружит любой вид конфликта:
Я не знаю о слиянии dlls, но я уверен, что можно связать промежуточные объектные файлы в один dll. Это только потребовало бы изменений в Вашем сценарии сборки.
Насколько я знаю, что Вы не можете объединить файлы DLL непосредственно. Но это должно быть возможно со статическими библиотеками или объектными файлами. Если для Вас возможно создать статические библиотеки Ваших проектов, можно объединить их использующий менеджера Библиотеки путем извлечения объектных файлов из всех библиотек и упаковки их в новую библиотеку.
Кроме того, был продукт, который сделал.LIB из.DLLs. Вы могли затем связать свой exe против этого.LIB и избавиться от.DLLs в целом. Возможно, Вы могли связать.DLL из.LIB - я не уверен.
Продукт здесь: http://www.binary-soft.com/dll2lib/dll2lib.htm я не уверен, если это больше работает, если это поддерживается или даже продается. Это уверенный кажется дорогим, но это раньше имело (поддерживающий ворчание) бесплатный пробный период.