Исторически разница между отслеживанием слиянием в git и svn заключалась в следующем: в git было отслеживание слияний, а до версии 1.5 svn - нет.Совсем.Если вы хотите выполнить слияние, вы должны всегда указывать, какие именно изменения должны быть объединены, и если вы объединяете одну ветку в другую более одного раза, вам придется вручную отслеживать, какие ревизии были и не были объединены,и вручную выберите только те изменения, которые еще не были объединены, чтобы избежать конфликтов.Удачи вам в этом, если вы когда-нибудь выберете какие-либо изменения.
Начиная с версии 1.5 (выпущенной в 2008 году), если ваш клиент, сервер и хранилище обновлены, тогда svn способендействовать намного разумнее;он использует свойства для отслеживания того, откуда пришла ветка и какие изменения в нее уже включены.В результате во многих случаях вы можете просто набрать svn merge BRANCHNAME
и сделать все правильно.Но из-за своей «болтовой» природы он все еще не очень быстрый и не совсем устойчивый .Git, с другой стороны, имеет для хорошей обработки сценариев слияния из-за своей природы DVCS, и с самого начала он был разработан со структурами данных (такими как используемый DAG) и алгоритмами (такими какrecursive-merge и octopus-merge), которые подходят для этой задачи.