Visual Studio TFS показывает неизмененные файлы в списке ожидающих изменений

Я вижу файл в окне ожидающих изменений. Я пытаюсь сравнить его с последней версией и получаю сообщение "Файлы идентичны". Если файлы идентичны, почему этот файл отображается в окне ожидающих изменений? Что изменилось в этом файле? Могу ли я настроить TFS, чтобы не отображать идентичные файлы?

6 ответов

Решение

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

Эта запись блога описывает не очень интуитивный способ справиться с этим; и в комментариях есть даже лучшее предложение иметь дело с этим через командную строку через электроинструменты TFS.

TFS ожидает изменений, игнорируя идентичные файлы...

Недавно я только что обновил VS2010 до VS 2013, и эта проблема еще хуже. Когда вы используете сравнение, идентичные файлы не появляются вообще. Я ненавижу это, потому что вы не могли выяснить, какие файлы действительно изменены, пока вы тщательно не проверите файлы сравнения.

Наконец, я придумаю обходной путь для этого:
Добавьте "Отменить неизмененные заказы" во внешних инструментах:

  • Команда: tfpt.exe
  • Аргументы: uu . /noget /recursive
  • Начальный каталог: $(SolutionDir)

После выполнения этой команды TFS автоматически отменит все избыточные изменения в файлах.
Но эти файлы все еще сохраняют статус проверки, на самом деле они уже отменены и соответствуют последней версии. Я думаю, что это ошибка в TFS. Вам просто нужно нажать значок Обновить на панели инструментов под обозревателем решений, эти файлы будут обновлены и покажут правильный статус!

Чтобы пояснить вышеприведенное объяснение:

  1. Установите TFS Power Tools, используя менеджер пакетов NuGet в VS.
  2. Откройте командную строку Visual Studio (также называемую Командная строка разработчика для VS 2013/2015) из Windows Start.
  3. Перейдите в корневой каталог вашей локальной рабочей области через командную строку.
  4. Выполните эту команду: tfpt uu . /recursive /noget
  5. Выберите, чтобы отменить избыточные изменения, если будет предложено.

Работал на меня.

В дальнейшем:

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

Я решил это, нажав на Stage All кнопка в изменениях, а затем unstaging их с Unstage All,

Это решило неизмененный файл, который у меня был в моем Changes раздел. Красиво и просто.

Для меня согласование рабочей области разрешает эти недействительные ожидающие изменения:

  1. Team Explorer -> Сборки
  2. Щелкните правой кнопкой мыши по последней сборке с вашими изменениями -> "Согласовать рабочее пространство..."

Visual Studio 2012 представила новую концепцию под названием " Локальное рабочее пространство".

Когда расположение рабочей области настроено как локальное, оно будет помещать локальную копию исходного файла (точно так же, как SVN / CVS).

Затем он автоматически скрывает неизмененные файлы от ожидающих изменений.

Используйте проводник управления исходным кодом TFS, чтобы "отредактировать..." рабочее пространство TFS, и измените "Advanced..."- настройку Location с сервера на Local.

Другие вопросы по тегам