При вызове Update() с помощью клиента SharpSVN для обновления файла, который также имеет локальные модификации, есть способ «попробовать» обновление, и если ему удастся автоматически объединить без каких-либо конфликтов, иначе, если будут конфликты, скажите мне, чтобы я не выполнял обновление, но вместо этого информирую пользователя о необходимости обновления вручную, так как будут конфликты, которые необходимо разрешить вручную.Обновление теста SharpSVN
ответ
В целом я собираюсь сказать «нет». Поскольку при обновлении без конкретной ревизии у вас есть условие гонки. Даже если вы попробовали обновление, и оно было бы успешным, следующее обновление может потерпеть неудачу, поскольку кто-то другой может совершить что-то, что создало конфликт.
Функция обновления клиентской библиотеки Subversion не имеет возможности выполнить сухой запуск обновления.
Однако вы можете справиться с тем, что хотите, хотя это не будет особенно удобно или точно. Сначала проверьте текущую ревизию HEAD. Затем выполните вызов статуса с флагом обновления, установленным в true, и ревизией, которую вы получили из ревизии HEAD. Посмотрите, требуется ли обновление какого-либо из модифицированных файлов. Если вы не запустите свое обновление с полученной вами ревизией.
Это будет иметь ложные срабатывания, так как некоторые изменения одного и того же файла могут быть объединены во время обновления. Он также будет иметь некоторые ложные отрицания, так как конфликты деревьев могут не обнаруживаться.
Даже если изменение с успехом с успехом сливается с Subversion во время реального обновления, это может быть не очень хорошее слияние. Могут существовать семантические конфликты (например, один пользователь переименовывает функцию, а другой пользователь добавил другой вызов функции).
В результате я не думаю, что это действительно то, что может быть автоматизировано хорошо.
Благодарим вас за ответ. Мне удалось получить то, что я хотел, просто выполнив обновление, проверив, было ли это противоречиво, и если да, вызвав решение с помощью MineAll – pastillman