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

94

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

dev.e.loper
источник
Возможно, ваш антивирус обновляет дату последнего изменения файлов? Или вы работаете на зашифрованном ноутбуке?
DOK
ScottGu объясняет, как антивирус может изменить эти даты в этой статье (поиск «вируса») weblogs.asp.net/scottgu/archive/2006/09/22/…
DOK
58
Это должно быть одна из самых раздражающих "особенностей" TFS
Брэд Томас
У меня тоже такая проблема - TF работает, а TFPT - нет - я думаю, это потому, что я использую «TFPT - Team Foundation Power Tools 2012» с рабочим пространством Visual Studio 2010 ...: - /
BrainSlugs83
Похоже, все, что мне нужно было сделать, это подключиться к той же коллекции в Visual Studio 2012. Подробнее см. В этом посте: stackoverflow.com/questions/1758606/…
BrainSlugs83

Ответы:

49

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

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

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

Enablor
источник
12
Я настоятельно рекомендую вам использовать tfpt uuэлектроинструмент, а не хитрое решение «Нет для всех». Это приглашение отображается только при добавлении и изменении изменений. Например: переименование (это только отложенное переименование, а не переименование + редактирование) будет отменено пользовательским интерфейсом без запроса.
Эдвард Томсон
8
В случае, если исходное сообщение в блоге когда-либо исчезнет, ​​команда tfpt uu /noget /r *должна быть выполнена из корня ветки. Говоря это, хотя он правильно улавливает повторяющиеся изменения, а затем заявляет об их отмене, я все еще вижу их как проверенные в VS и в диалоговом окне Check In, поэтому мне кажется, что это сломано: /
Майк Чемберлен
2
Другая возможность того, что это произойдет, - если вы переключите бит файла «только для чтения» без фактического изменения его содержимого. TFS временами может раздражать.
arviman
1
Для справки: решение «Нет для всех» скопировано здесь из ссылки: «Другой вариант -« Отменить оформление »всех изменений и нажать« Нет для всех »при запросе подтверждения отмены проверки. Таким образом Visual Studio выполнит «Отменить извлечение» всех файлов, которые не были изменены, и все измененные файлы останутся извлеченными. Я всегда использую этот метод ».
PJSimon
Этот трюк «Нет для всех» хорош, но у него есть несколько недостатков. Например - я использую свой инструмент для создания классов DB EntityFramework. Я создаю их во внешнем каталоге, а затем просто перетаскиваю в свое решение. Иногда, когда нет изменений, он все равно отображает изменения. Уловка «Нет для всех» их устраняет. Но если добавляются новые классы, которых раньше не было, он удаляет их из системы управления версиями - мне приходится добавлять их вручную.
Wish
17

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

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

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

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

змагги
источник
2
Я запустил tfpt uu. / Noget / recursive, и он утверждает, что в рабочей области нет ожидающих избыточных изменений. VS2015, TFPT 2015. Все мои изменения являются пустыми [объединенными] изменениями.
быстрое умножение
Я пробовал это безуспешно. Удаление сути аргумента, кажется, заставляет его работать правильно: uu / noget / recursive
dperez
10

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

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

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

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

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

Фил
источник
Спасибо, от 30 ноября 2015 года. Я получаю одну и ту же проблему снова и снова, и ваш ответ был идеальным. Я пытался проголосовать за вас, но получил какую-то ошибку "пространственно-временного континуума". Что-то связано с 30 ноября 1955 года и «требуемых 1,21 гигаватта не найдено».
Фил
К сожалению, у меня не работает. Unable to determine the workspace. Уже пытался обновить кеш рабочей области, безуспешно. Через 2 часа я просто сдамся и проверю неизмененные файлы, чтобы избавиться от них.
C4d
@ C4u Возможно, я сам начал сталкиваться с этим после перехода на VS 2015. Однако проблема с извлеченными файлами исчезла. Я посмотрю, что смогу узнать.
Фил
1
Мне не удалось найти PowerTools с помощью NuGet, но я смог найти и установить его с помощью поиска в Google «Microsoft Visual Studio Team Foundation Server 2013 Power Tools»
Колин
@Versatile Глядя на Visual Studio 2017, вам нужно будет перейти в «Инструменты»> «Расширения и обновления ...» Я не помню структуру меню в 2013/15 году. Может, мой ответ требует исправления. Если у вас VS 2013/15 и вы можете проверить структуру меню, пожалуйста, отредактируйте мой ответ. :)
Фил
1

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

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

Том 'Синий' Пиддок
источник
0

Visual Studio 2012 представила новую концепцию под названием Local Workspace .

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

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

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

Рольф Кристенсен
источник
Моя рабочая область локальная, но неизмененные файлы все еще отображаются в ожидающих изменениях ... Это не отменяет автоматически извлечение ...
Озкан,
0

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

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