Не удалось устранить фантомное ожидание изменения TFS - PullRequest
7 голосов
/ 31 декабря 2011

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

Это немного сложно полностью объяснить.Вот как выглядит структура каталогов / файлов в TFS:

RootFolder
    Folder
        FileA
        FileB
    OldFolderThatWasRenamedToFolder (shows add icon)
        FileA (shows "edit" pending change)

"OldFolderThatWasRenamedToFolder" был переименован в "Папка" и зафиксирован в TFS как этот.«FileA» в этой несуществующей папке ссылается на тот же файл, что и «Folder / FileA», но регистрируется как другой файл;например, если я изменю «Папка / Файл A», ожидающие изменения будут показаны для обоих «файлов».Всякий раз, когда я отменяю ожидающие изменения для фантомного файла, TFS сообщает об ошибке:

Не найдено никаких ожидающих изменений для ... / Папка / ФайлA.

Я не могу получитьизбавиться от этого досадного ложного ожидающего изменения.Я сделал обновление в папке, заставив перезаписать и даже удалил папку до обновления.Как я могу устранить это фантомное ожидание изменения?

Обновление:

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

Ответы [ 8 ]

7 голосов
/ 28 февраля 2013

В Visual Studio 2010 вы можете щелкнуть правой кнопкой мыши на фантомной отложенной регистрации на панели «Ожидающие изменения» и нажать «Отменить ...» во всплывающем меню, затем нажать кнопку «Отменить изменения» в диалоговом окне.В поле «Отменить ожидающие изменения» фантомная отложенная регистрация будет удалена из списка.

4 голосов
/ 01 января 2012

Вы сможете отменить ожидающие изменения с помощью стороннего инструмента под названием TFS Sidekicks.Это бесплатный набор утилит от Attrice.Я использую его, особенно когда я (или клиент) сталкиваюсь с такими проблемами, а также проблемами с разрешениями и т. П.

Более того, инструмент позволит администратору сделать то же самое для другой пользователей.Это означает, что он разрешит ситуации, когда код помечен как проверенный пользователем, которого больше нет в системе.

Загрузите его по адресу http://www.attrice.info/cm/tfs/index.htm

Надеюсь, это поможет.

2 голосов
/ 15 января 2016

Я знаю, что это старый пост, но я испытал то же самое.

Что я нашел : командная строка Джона Курлака сработала для меня.Я хотел что-то попробовать, поэтому снова запустил TF MERGE.На этот раз я закрыл все Visual Studio в открытом виде, а затем снова открыл его.Файлы обнаружились в Pending Changes и были в состоянии отменить оттуда.

2 голосов
/ 31 декабря 2011

Я нашел способ исправить это с помощью командной строки tf.exe. Введя это:

tf undo /workspace:MyWorkspace $/.../RootFolder/OldFolderThatWasRenamedToFolder/FileA

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

1 голос
/ 27 февраля 2015

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

0 голосов
/ 28 декабря 2016

У меня была похожая проблема с проектом, который застрял в объектах управления версиями AX / отложенных объектах с действием «Добавить». Я не мог избавиться от этого, нажав «Отменить извлечение», потому что он больше не существует ни в проектах AX, ни в локальном хранилище, ни в VSTS. Чтобы избавиться от него, я создал проект в AX / projects / shared, а затем смог избавиться от него, перейдя к объектам контроля версий AX / ожидающих объектов и щелкнув «Отменить извлечение». Я считаю, что это происходит, когда вы создаете объект в AX, добавляете его в систему управления версиями, а затем переименовываете объект. Надеюсь, это поможет.

0 голосов
/ 29 апреля 2016

Комментарий Джона Курлака мне очень помог, но позвольте мне описать, какая проблема произошла в моем случае и как я ее решил.

Я попробовал то, что он предложил:

Я открыл консоль разработчика, сделал cd для каталога моей ветки и запустил:

tf undo * /recursive

Затем выбрал «Все», когда инструмент спросил «Отменить изменения ...? (Да / Нет / Все)».

В моем случае этого было недостаточно, потому что NUGET оставил некоторые файлы, которые не были добавлены в TFS. Это привело к прерыванию работы инструмента tf с ошибкой:

TF400024: изменение на C: (SomePath) \ themes \ base \ images \ ui-icons_cd0a0a_256x240.png нельзя отменить, потому что файл уже существует в C: (SomePath) \ Themes \ база \ образы \ щ-icons_cd0a0a_256x240.png. Файл должен быть удален с диска для отмены.

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

Примечание: Эти файлы легче найти в проводнике, если у вас установлены электроинструменты TFS, потому что файлы, принадлежащие TFS, отмечены зелёным треугольником, а остальные филиалы (те, которые вам нужно удалить) - нет.

0 голосов
/ 15 февраля 2012

Я все еще новичок в VS2010, но вот как я исправил эту проблему для меня:

Перейдите в Source Control на панели Team Explorer. В Source Control Explorer щелкните правой кнопкой мыши каталог, проект или файл исходного кода, для которых есть ожидающие изменения, которые следует игнорировать. Выберите Отменить ожидающие изменения. Появится модальное диалоговое окно, подтверждающее ожидающие изменения, которые будут отменены. Выберите Отменить изменения и вуаля! Нет больше фантомных ожидающих изменений.

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