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

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

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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

Далее:

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

Ответ 4

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

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

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

Используйте проводник исходного кода TFS для "Редактировать..." в рабочей области TFS и измените параметр "Дополнительно..." - установите "Местоположение с сервера на локальный".

Ответ 5

Я решил это, нажав кнопку Stage All в "Изменениях", а затем отключив их с помощью Unstage All.

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