Как сделать так, чтобы TFS 2010 обнаруживал изменения, сделанные в файлах вне Visual Studio?

Я использую Team Foundation Server 2010 с Visual Studio 2010.

Всякий раз, когда я изменяю файл за пределами Visual Studio, TFS, похоже, не обнаруживает изменения, внесенные в файл, и, следовательно, не предлагает мне возможность зарегистрировать файл после того, как он был изменен.

Как это можно решить?

10 ответов

Решение

Если у вас есть сетевое подключение к вашему серверу, когда вы работаете за пределами Visual Studio, вероятно, лучше сначала проверить файл перед его редактированием, либо с помощью клиента командной строки tf, либо с помощью интеграции оболочки Windows Explorer, которая доступно в выпуске TFS Power Tools. (Кроме того, все большее число других инструментов имеют интеграцию с TFS, которая делает это автоматическим, но если вы просто используете блокнот, это все равно должно быть ручным шагом.)

Конечно, во многих случаях вы работаете, и у вас нет доступного сетевого подключения, которое позволяет вам проверять файлы.

Если вы знаете, какие файлы вы изменили, вы можете просто проверить их в Visual Studio, и тогда вы сможете проверить их обратно.

Если вы не знаете, какие файлы вы редактировали, вы можете обнаружить изменения, запустив tfpt online команда (также часть выпуска Power Tools). Это позволит найти файлы, которые были изменены локально, и проверить эти файлы с сервера.

Для этого в TFS есть команда "Reconcile":

  1. Откройте Source Control Explorer
  2. Щелкните правой кнопкой мыши папку с изменениями и выберите " Сравнить".
  3. Выберите файлы, которые вы хотите согласовать (нажмите CTRL+A, чтобы выбрать все файлы)
  4. Нажмите на кнопку Примирить
  5. Задайте параметры в диалоговом окне " Согласовать различия папок ". Убедитесь, что для файлов, в которых нет ожидающих изменений, установлено значение Извлечь
  6. Нажмите ОК
  7. Если у вас есть локальные изменения, появится диалоговое окно Check Out. Установите предпочтительный тип блокировки
  8. Нажмите Проверить

Согласовать различия папок

Смотрите также: согласование различий между папками

Это сработало для меня, используя TFS Power Tools:

tfpt online /adds /deletes /diff /noprompt /recursive directory-name

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

Если вы хотите знать, что он будет делать без внесения каких-либо изменений, вы можете заставить его выполнить пробный прогон, добавив /preview переключатель.

*1- make changes outside of Visual Studio
2- go to Visual Studio and open Source Control Explorer
3- right click on the folder > "Check Out for Edit" > "Check Out"
4- right click on the same folder > "Undo Pending Changes..." > "Undo changes" > "No to All"*

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

Рекомендую создать ветку перед операцией. Он изолирует вас от времени операции.

Примечание. Этот метод также выполняет очистку файлов, идентичную той, что TFS всегда помечает как измененную.

Попробуй это. Это своего рода обходной путь, но он работает:

  1. вносить изменения вне Visual Studio
  2. перейдите в Visual Studio и откройте Source Control Explorer
  3. щелкните правой кнопкой мыши папку> "Оформить заказ на редактирование" > "Оформить заказ"
  4. щелкните правой кнопкой мыши на этой же папке> "Отменить ожидающие изменения..." > "Отменить изменения" > "Нет всем"

Вот и все. Изменения видны сейчас.

Есть также другое решение, позволяющее TFS определять файлы, которые изменились за пределами Visual Studio:

  1. Откройте решение в автономном режиме
  2. В обозревателе решений выберите файл решения и нажмите кнопку "Перейти к сети" (Значок кнопки GoOnline)

TFS автоматически просканирует решение на наличие изменений после этого.

Шаг первый может быть достигнут разными способами. Вот некоторые:

  • Используйте расширение GoOffline - очень просто и эффективно.
  • Если при открытии решения запрашиваются учетные данные TFS (без автоматической проверки домена), не вводите учетные данные. Решение откроется в автономном режиме, и вы войдете в систему после нажатия кнопки "Перейти в онлайн".
  • (экстремальное решение) Отключите сетевой кабель; Откройте решение; Подключите сетевой кабель.

Visual Sourcesafe работает так же, и я получаю VSS или TFS, чтобы заметить изменения, проверяя файл один раз в Visual Studio.

У меня была эта проблема в прошлом, когда у меня не работал интернет, и я работал в автономном режиме, и большинство моих изменений не появилось в Team Explorer.

Выполните следующие действия: Во-первых, в обозревателе решений выберите папку, которую вы хотите повторно согласовать (для меня это была вся папка решения), и выберите Сравнить... Нажмите кнопку " Изменить фильтр", и в текстовом поле фильтра вы можете ввести:

*.cs;!obj\;!bin\;!packages\;

В этом примере он будет включать в поиск только файлы C# и исключать из папок: bin, obj и packages.

Обратите внимание, что столбец Pending Change содержит информацию о том, помечен ли файл как edit, add и т.д... или ничего...

  • Чтобы пометить как редактирование (когда локальный элемент имеет соответствующий элемент сервера), выберите файл и выберите " Извлечь для редактирования"...
  • Чтобы пометить как добавить (когда у локального элемента нет элемента сервера), выберите файл и выберите " Добавить файлы".

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

+ В решении, нажмите кнопку подключения (если появляется), который сказал Go Online.

Откройте Source Control и перейдите в папку TFS. Щелкните правой кнопкой мыши по папке и выберите "Сравнить".

Обратите внимание, что ваши отредактированные файлы отображаются отмеченными красным.

Я считаю, что это лучше, чем tfpt online который также получает файлы, которые не только для чтения и не редактируются.

В моем случае сработало следующее (по крайней мере, один раз, когда я это пробовал):

  1. Перейдите на панель ожидающих изменений
  2. Выберите " Параметры просмотра" в разделе "Включенные" или "Исключенные изменения".
  3. Переключение между Показать все и Показать изменения решения
  4. При желании переключитесь обратно

Изменение параметра просмотра вызывает принудительное обновление измененных файлов.

Я обнаружил, что в Visual Studio 2015, с открытым проектом, Visual Studio обнаружила для себя, что файлы были изменены внешне, и автоматически проверила их без необходимости что-либо делать. Проверка в проекте обычным способом сохранила внешние модификации.

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