Тип конфликта TFS: записываемый файл - записываемый файл с тем же именем существует локально - PullRequest
27 голосов
/ 13 февраля 2012

Я пытаюсь получить последний из моего проекта.Когда я это делаю, TFS показывает мне, что у меня есть конфликты для каждого файла в этом проекте.Каждый файл имеет один и тот же конфликт: Conflict Type: Writable File - A writable file by same name exists locally.

Разрешение, которое он мне дает, - «Перезаписать локальный файл или папку», но я должен сделать это один за другим.

Почему TFS считает, что у меня конфликты (я не менял файлы)?

Ответы [ 3 ]

28 голосов
/ 13 февраля 2012

Диалоговое окно разрешения конфликтов в Visual Studio 2010 поддерживает множественный выбор.

Если вы выбрали первый конфликт, удерживайте нажатой клавишу Shift , а затем выберите последний конфликт - «Перезаписать локальный файл или папку»."разрешение будет применено ко всем выбранным конфликтам.

Вы также можете использовать инструмент командной строки tf resol / auto: OverwriteLocal для разрешения конфликтов.

14 голосов
/ 13 февраля 2012

Ответ Гранта отлично подходит для разрешения нескольких конфликтов.

Что касается того, почему у вас есть эти конфликты, вообще говоря, ваш клиент TFS обнаружил, что файл существует локально, который не существуетуправляемый TFS, но вы пытаетесь выполнить операцию get, которая перезапишет этот файл.

Если вы следуете нормальному рабочему процессу разработки (а не переходите и редактируете файлы вне вашего редактора), наиболее распространеннаяИсточником конфликтных ситуаций является доступностьЕсли вы ожидали добавления в файл, то вы должны были отменить это добавление (либо явно, либо потому, что вы отложили изменение и отменили выбор кнопки «Сохранить ожидающие изменения»), файл будет не удален.(Это сделано для предотвращения потери данных - нередко вы хотите создать файл, но не верните его в систему контроля версий.)

Теперь, если вы (или кто-то еще)должны были зарегистрировать этот shelveset (либо путем создания сборки из этого shelveset, либо через gated-регистрацию, либо потому, что ваш рецензент кода проверил ваш shelveset напрямую), тогда, когда вы получите последнюю версию, ваш клиент TFS обнаружит, чтофайл все еще существует локально, и поэтому у вас будет конфликт с возможностью записи.

Это может быть не особенно очевидно в случае стробированной регистрации.На самом деле работает закрытая регистрация, когда вы пытаетесь проверить свои изменения, ваша регистрация фактически преобразуется в набор .Затем агент сборки TFS попытается создать ваш набор полок, и, если сборка завершится успешно, он зарегистрирует этот набор полок от вашего имени.Если сборка завершается неудачно, набор полок остается, и вы можете отменить исправление ошибок сборки.

По этой причине важно запускать приложение уведомления о сборке, когда вы используете стробированную регистрацию, что позволит вам"согласовать" ваши изменения после их отправки.Согласование вашей регистрации просто выполнит регистрацию, отправленную сервером сборки, но позволит избежать конфликтов, так как он понимает контекст изменений, которые находятся на вашем локальном диске.(Он будет сравнивать содержимое вашего локального диска с содержимым на сервере.) Если вы не выберете согласование, у вас, к сожалению, будут конфликты с возможностью записи в добавленных файлах.

(Обратите внимание, что этоСценарий не приведет к конфликту в следующей версии TFS - если нет различий в содержимом, TFS не вызовет конфликт.)

0 голосов
/ 28 ноября 2013

У вас должны быть все права (полный контроль) на определенный локальный файл или папку.Проверьте это.Если это не так, вы должны удалить все локальные файлы, изменить права и затем получить последние файлы с сервера.

...