Если вы хотите осуществить плавное объединение, вам следует убедиться, что вы включаете базовые версии для каждого объединения в систему контроля версий, если они у вас есть. Просто определите, что одна из веток, из которых люди чаще всего разветвляются, это транк, и тогда вам нужно записывать версию в транк каждый раз, когда кто-то из нее разветвляется, если они у вас есть. Без этих базовых версий слияния станут беспорядком.
Если не было никакого контроля версий, даже когда кто-то делал архив кода во время слияния, поэтому вы не можете восстановить даже базовые версии, вам нужно быть очень осторожным. Поместите код в систему управления исходным кодом до объединения чего-либо. Постарайтесь восстановить ветви как можно более приближенно, исходя из того, что было разветвлено и откуда.
Теперь, если ваша система управления версиями записывает ссылки на слияния между ветвями и хорошо отслеживает базовые версии и слияния, как, например, ClearCase, вы хотите начать с небольших слияний, которые могут быть сделаны отдельными разработчиками, чтобы сократить объем работы параллельно сначала. Тогда сделайте большие слияния со всеми вовлеченными разработчиками.
Если, с другой стороны, у вас нет хорошего отслеживания, изменения от уже выполненных слияний снова появятся в последующих слияниях, и вам, возможно, придется заново пересмотреть конфликты. Это довольно болезненно, поэтому я хотел бы предложить большие слияния с полной командой, чтобы все могли видеть, что было решено, и затем они могли сохранить правильный код во время своих небольших слияний.
Суть в том, что без надлежащего отслеживания слияний ваша потребность в ком-то, кто понимает, что код присутствует, или выполняет слияние, возрастает, потому что ему нужно идентифицировать правильные (текущие) куски кода, чтобы войти в файл.