Несмотря на то, что ссылка на блог Шая Райтена оказалась полезной, причина изменения была не очень понятна в ответе выше, а также не очень четко в блоге Шая (или в документации Microsoft в этом отношении). Ключ здесь в значении fromVersion и toVersion. Похоже, автор этого вопроса совершил ту же ошибку, что и я, неправильно поняв значение этих параметров. В моем случае я понял, что «от» и «до» - это ссылки на источник (начальную точку) и цель (конечную точку) слияния соответственно. Хотя я не понимал, почему в этом случае нужно было бы указывать версию "to", так как для того, чтобы действительно выполнить осмысленное слияние, версия цели всегда должна быть Подсказкой. Таким образом, чтение описания параметра в качестве «начальной» и «конечной» версий не показалось мне противоречащим этой интерпретации.
Что я наконец понял, так это то, что в этом случае «from» и «to» являются обоими , относящимися к источнику слияния, где «from» относится к начальная точка для диапазона наборов изменений, а "to" относится к конечной точке для диапазона наборов изменений. Если вы пропустите параметр fromVersion, то вы говорите, что хотите включить все наборы изменений обратно в начало (или последнее записанное слияние), в противном случае вы говорите, что хотите включить только наборы изменений, начиная с указанная версия. Если вы опускаете «toVersion», вы говорите, что хотите включить все наборы изменений до версии Tip, в противном случае вы говорите, что хотите включить наборы изменений только до указанной версии.
Таким образом, в исходном коде с параметрами fromVersion и toVersion, указанными как VersionSpec.Latest, вы говорите, что хотите объединить все наборы изменений, происходящие между Последней версией и Последней версией, которая по определению не содержит изменений. Однако в измененном коде с нулевым значением, указанным для обоих параметров, вы включаете все доступные наборы изменений без ограничений.