TFS 2010 Checkin Shelveset с конфликтами слияния - PullRequest
1 голос
/ 06 марта 2012

У меня есть закрытая регистрация, которая изменяет некоторые файлы набора изменений, предоставленные пользователем, запрашивающим сборку. Сборка в основном устанавливает номер версии сборки в исходных файлах для всех целей.

Операция проверки на входе выполняет проверку полки пользователя. Теперь я хочу также проверить измененные файлы в моей сборке, которые могут конфликтовать с файлами, входящими в состав шелвсета пользователей. Это приводит к конфликтам слияния.

Используется VersionControlServer.CheckinShelveset, у которого нет опций принудительной регистрации в случае конфликтов слияния из-за другой регистрации предыдущего набора полок. Я попытался изменить набор полок, предоставленный пользователем, но не могу изменить набор полок, который не был создан тем же пользователем. Поэтому я вынужден создать второй набор полок и подождать, пока не завершится успешная операция регистрации, выполняемая на контроллере сборки.

Когда у меня есть рабочее пространство, я мог бы разрешить изменения, но на контроллере сборки нет рабочего пространства (оно находится на агенте сборки), поэтому мне пришлось бы создать новое рабочее пространство, отложить полку другого пользователя и попытаться объедините мой другой shelveset с этим и затем попытайтесь зарегистрироваться, что не легко и более серьезно, это заняло бы довольно много времени.

Есть ли способ включить набор полок и заставить TFS просто перезаписать последнюю версию, не имея рабочего пространства? Или есть другой способ, чтобы мои изменения сборки были зарегистрированы без конфликтов слияния? Если бы я раньше проверил агент сборки, то gated checin потерпит неудачу с конфликтами слияния на контроллере сборки.

1 Ответ

3 голосов
/ 10 марта 2012

Если у вас есть код, выполняющий это на агенте сборки, а не на контроллере, у вас будет доступ к рабочей области.В этом случае вы могли бы рассмотреть возможность двух проверок: первая - это изменения пользователя, а вторая - изменения, сделанные вашим кодом.Или вы можете просто внести изменения в код, а затем выполнить регистрацию из рабочей области агента сборки.В этом случае отправленный пользователем набор полок будет использоваться не для регистрации, а в качестве основы для вашего кода для внесения дальнейших изменений и последующей проверки.

Нет способа принудительно проверить набор полок.несмотря на конфликты.

...