Принудительная регистрация файла TFS через C # - PullRequest
3 голосов
/ 18 октября 2008

Как мне указать, что я ВСЕГДА хочу, чтобы локальный файл заменял копию сервера, даже если копия TFS новее?


if (pendingChanges.GetUpperBound(0)>-1)
   ChangeSetNumber = workspace.CheckIn(pendingChanges, filename);

Я вижу из intelisense, что я могу указать checkinoptions в качестве параметра метода CheckIn, я просто не могу найти то, что мне нужно вставить, чтобы оно всегда регистрировалось и игнорировало конфликт, который я мог придумать.

Спасибо заранее.
РЕДАКТИРОВАТЬ: Я нашел команду TF RESOLVE "item" / auto: AcceptYours / recursive. Поэтому я думаю, что мой пересмотренный вопрос был бы: есть ли программный эквивалент переключателю / auto: AcceptYours?
NecroEDIT: обработайте конфликты перед проверкой

Conflict[] conflicts = workspace.QueryConflicts(new string[] { TFSProject }, true);

foreach (Conflict conflict in conflicts)
{
    conflict.Resolution = Resolution.AcceptTheirs;
    workspace.ResolveConflict(conflict);
}

1 Ответ

1 голос
/ 27 октября 2008

Checkins являются атомарными - либо все они успешны, либо все они терпят неудачу. Если существуют какие-либо конфликты, которые необходимо разрешить до регистрации, операция регистрации вызовет исключение. (Документация)

Вы должны оценить checkin на наличие конфликтов и затем разрешить CheckinConflicts с помощью метода Workspace.ResolveConflict. ResolveConflict ожидает CheckinConflict, а результат EvaluateCheckin (то есть CheckinEvaluationResult) включает CheckinConflicts.

Эта страница может помочь.

Примечание: checkinoptions не связано с тем, что вы спрашиваете.

Надеюсь, это поможет.

...