Команда TFS get ошибочно возвращает «Все файлы обновлены». - PullRequest
22 голосов
/ 10 января 2011

Мы только что перешли на репозиторий TFS в Mercurial, так как нам достаточно TFS.К сожалению, TFS бросил нам последний изогнутый мяч, прежде чем он отпустил нас.Мы написали сценарий, который намереваются «получать» каждый набор изменений (включая отметку времени, комментарии о регистрации и т. Д.), А затем добавлять их в репозиторий Mercurial и регистрировать его.странно, когда мы выполняем команду tf get * /version:C111 /overwrite.Он немедленно возвращает «Все файлы обновлены».Но это невозможно.Папка рабочего пространства пуста!И просмотр сведений о наборе изменений 111 довольно ясно показывает, что набор изменений содержит «материал», т. Е. Хранилище, конечно, не пустое.

Ответы [ 12 ]

15 голосов
/ 13 апреля 2011

TF вернет "Все файлы обновлены", если itemspec , который вы передаете, не найден. Если вы не включите абсолютный путь, предполагается относительный путь.

Например, если вы отправляете

tf get myFile.cs /version:1009 /force

он ищет в текущем каталоге файл myFile.cs, который не существует, поэтому он возвращает «Все файлы обновлены». То, что мы действительно хотим, это

tf get C:\myproject\myFile.cs /version:1009 /force

То же самое с подстановочными знаками, например

tf get D:\project\* /version:C111 /overwrite

Для получения дополнительной информации перейдите по ссылке itemspec .

14 голосов
/ 10 января 2011

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

Ссылка MSDN для получения

8 голосов
/ 21 июня 2011

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

3 голосов
/ 10 января 2011

У меня была такая же проблема раньше, и после того, как я выдернул свои волосы, единственное, что исправило это для нас, - это отключить рабочее пространство, удалить все локальные файлы, а затем переназначить рабочее пространство на диск - TFS.наконец-то получил бы свежую копию файлов.

Мы использовали TFS 2005, чего бы это ни стоило - мне было бы грустно слышать, что такая ситуация все еще возникает с более новыми версиями.Если вы найдете другое решение, пожалуйста, опубликуйте его здесь, так как я хотел бы узнать, как вы его решили.

2 голосов
/ 09 марта 2016

Я пытался использовать параметры / force, / recursive, / all, но проблема все еще не устранена («Все файлы обновлены».) Поэтому я удалил отображение и воссоздал.

Мое старое сопоставление (неверное) было выполнено с подстановочным знаком:

tf workfold $/* C:\DEV

Поэтому, когда я перечислял рабочие папки (tf workspaces / format: details), это выглядело так:

Working folders:

  $//*: C:\DEV

Когда я переназначил, как показано ниже, команда get начала работать:

tf workfold $/ C:\DEV

и отображение показывало так:

Working folders:

  $/: C:\DEV
1 голос
/ 15 июня 2017

Это может произойти, если у вас нет соответствующих прав доступа к источнику.Мне удалось увидеть все дерево исходников, все файлы, но я не смог получить самую последнюю версию.Я предполагаю, что это гибкость разрешений, доведенная до крайности (абсурд?).Чтобы убедиться, что проблема не связана с рабочей станцией или отображением, я попытался просмотреть файл кода на страницах группы и получил:

Изображение, демонстрирующее отсутствие доступа к исходному файлу

1 голос
/ 02 декабря 2014

Мне просто нужно было решить эту проблему:

  1. Получить Электроинструменты Tfs .Вы также можете получить его из инструментов> Диспетчер надстроек в Visual Studio.

  2. Для завершения установки потребуется закрыть Visual Studio.

  3. После завершения откройте командную строку в режиме администратора.

  4. перейдите в каталог филиала / решения.

  5. запустите tfpt scorch (tfpt.exe поставляется с электроинструментами, если вы его не видите, переустановите)

  6. Если он обнаружит, что чего-то не хватает, откроется диалоговое окно.Просто нажмите «Далее» или «ОК», и он перезапишет все, что не соответствует серверу.

0 голосов
/ 05 октября 2016

Выберите дату в будущем, чтобы получить конкретную:

tf get * /version:D01/01/2099 /recursive /force  /noprompt
0 голосов
/ 27 июля 2015

Моя проблема заключалась в том, что я запускал командную строку разработчика VS из студии VS 2012, но мое сопоставление рабочего пространства внутри vs 2013.

Убедитесь, что вы запускаете tf.exe изнутри каталога Visual Studio, в котором есть сопоставление рабочего пространства, чем простой tf.exe получить "путь" / все / рекурсивно работает просто отлично

0 голосов
/ 10 апреля 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...