Подтвердить что ты не робот

TFS Conflict Type: Writable File - записываемый файл с тем же именем существует локально

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

Резолюция, которую он мне дает, - "Перезаписать локальный файл или папку", но я должен делать это по одному.

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

Ответ 2

Диалоговое окно разрешения конфликтов Visual Studio 2010 поддерживает multi-select.

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

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

Ответ 3

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

Ответ 4

Вы можете сделать это для всей папки, нескольких папок или всего проекта, где существуют конфликтные файлы.

enter image description here

Вам нужно щелкнуть правой кнопкой мыши по этому конкретному файлу/папке, перейти в Advanced, выбрать "Get Specific Version..."

enter image description here