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

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

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

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

Ответ 1

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

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

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

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

Ответ 2

TFS имеет команду "Reconcile" для этого:

  • Откройте проводник исходного кода
  • Щелкните правой кнопкой мыши папку с изменениями и выберите Сравнить
  • Выберите файлы, которые вы хотите согласовать (нажмите CTRL + A, чтобы выбрать все файлы)
  • Нажмите кнопку Reconcile
  • Задайте параметры в диалоговом окне Reconcile Folder Differences. Убедитесь, что Файлы, которые не имеют ожидающих изменений, установлены на Отъезд
  • Нажмите ОК
  • Если у вас есть локальные изменения, отобразится диалог Отъезд. Установите предпочтительный Тип блокировки
  • Нажмите Отъезд

Reconcile Folder Differences

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

Ответ 3

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

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

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

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

Ответ 4

*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 всегда отмечает как измененные.

Ответ 5

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

  • Внесите изменения вне Visual Studio
  • перейдите в Visual Studio и откройте Source Control Explorer
  • щелкните правой кнопкой мыши по папке > "Отъезд для редактирования" > "Отъезд"
  • щелкните правой кнопкой мыши по той же папке > "Отменить ожидающие изменения..." > "Отменить изменения" > " Нет для всех"

Что это. Изменения теперь видны.

Ответ 6

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

  • Откройте решение в автономном режиме
  • В обозревателе решений выберите файл решения, а затем нажмите кнопку Go Online (GoOnline Button Icon)

После этого TFS автоматически сканирует решение об изменениях.

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

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

Ответ 7

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

Ответ 8

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

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

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

Ответ 9

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

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

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

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

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

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

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

+ В решении нажмите кнопку подключения (если появится), в которой говорится, что Перейти в сеть.

Ответ 10

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