Чтобы избежать многих конфликтов, вам нужно иметь только одну активную ветку разработки или хотя бы одну ветку разработки на каждое поддерево хранилища (например, project1, project2).
Из того, что вы пишете, я вижу, что ветки test / trunk также имеют много изменений. Вот почему у вас так много конфликтов. Вам нужно объединить изменения обратно из тестовой и внешней ветки в dev. Это уменьшит количество конфликтов.
В общем, вы должны стараться избегать множества параллельных активных веток, которые работают на одной и той же кодовой базе, иначе вы не сможете избежать многих конфликтов.
Также вы можете заняться разработчиками. Если они исправят что-то в тестовой ветке, их задача также должна состоять в том, чтобы объединить это с веткой dev. Это снова уменьшит количество конфликтов.