Подтвердить что ты не робот

TF203015 Элемент $/path/file имеет несовместимое ожидающее изменения. При попытке отключить

Я использую Visual Studio 2010 Pro против Team Server 2010, и я открыл свой проект (по-видимому) в качестве решения из репо, но я должен был открыть его как "веб-сайт". Я обнаружил это во время компиляции, поэтому я пошел откладывать свои новые изменения и удалил проект с моего локального диска, а затем снова открыл проект из источника (на этот раз как веб-сайт), и теперь я не могу удалить мои файлы.

Есть ли способ обойти это? Я что-то вскочил? Нужно ли выполнять обслуживание на сервере?

Я нашел этот вопрос на SO # 2332685, но я не знаю, о каких кеш файлах он говорит (я на XP: \) EDIT: Нашел эту ссылку после публикации вопроса, извините за задержку в исследовании, все еще не исправил мою проблему

Конечно, я не могу найти код ошибки для TF203015 в любом месте, поэтому нет разрешения (отсюда и включение номера в заголовок, да?)

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

EDIT: WHAP - НАЙДЕНО! Используйте "Отменить" для элементов, которые не существуют, поскольку они отображаются в ожидающих изменениях в качестве проверок.

4b9b3361

Ответ 1

Необходимо закрыть, найти ответ.

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

Тогда я мог бы отказаться.

Он думал, что у меня одновременно есть два ops (unhelve, commit-for-add), и я думал, что у меня есть только один op (unhelve).

Ответ 2

Это немного в сторону вопроса OP

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

Рассмотрим ситуацию, когда у вас есть основной соединитель и ветвь DEV. Вы разветвляли DEV от MAIN и усердно работали над функцией в DEV; проверяя работу в DEV по мере продвижения. Теперь перейдите вперед неделю или две. Теперь вы полностью готовы и хотите вернуться в MAIN.

Здесь один из наших разработчиков попадает в эту ошибку.

Он работал над одним решением в течение нескольких недель и периодически проверял изменения в DEV, поэтому хотел объединить нескончаемую серию наборов изменений в MAIN. Поэтому он выбирает параметр слияния, выбирает первый набор изменений; сливается без проблем, а затем сразу же объединил следующий набор изменений; и bang TF203015, и его очень бесполезный тест в окне вывода; несовместимые ожидающие изменения.

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

Таким образом, в этом случае TF203015 означает; "В ветке назначения уже есть ожидающие изменения некоторые файлы, которые были изменены в этом наборе изменений. Пожалуйста, разрешите и зафиксируйте изменения ветвления получателя перед выполнением этой операции слияния"

Решение; после каждой операции слияния наш разработчик проверяет рабочее пространство для MAIN и фиксирует ожидающее изменение, вызванное слиянием, затем возвращается к DEV и повторяет.

На самом деле разумный и простой, но замаскированный очень тупым сообщением об ошибке.

Ответ 3

Вы можете использовать Team Foundation Server Power Tools March 2011 (http://msdn.microsoft.com/en-us/vstudio/bb980963.aspx), который включает в себя команду tfpt unshelve.

После установки Power Tools откройте командную строку Visual Studio, перейдите в каталог, содержащий интересующий проект, и выполните команду tfpt unshelve. Он будет отключен и отобразит диалог слияния, чтобы разрешить конфликты.

Я благодарю это сообщение в блоге, помогая мне найти это решение: http://fluentbytes.com/the-how-and-why-behind-tf203015-file-has-an-incompatible-change-while-unshelving-a-shelve-set

Ответ 4

У меня была то, что, похоже, было одной и той же проблемой, но я создал ветку после откладывания изменений, и я хотел, чтобы эти изменения не были перенесены в новую ветку.

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

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

Ответ 5

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

Таким образом, эта ошибка сообщения МОЖЕТ произойти без каких-либо изменений с SHELVESETS, а также для других, поступающих из Google и находящих эту страницу.

Ответ 6

Эта ссылка разрешила мою проблему:

https://blogs.infosupport.com/the-how-and-why-behind-tf203015-lt-file-gt-has-an-incompatible-change-while-unshelving-a-shelve-set/

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

Ответ 7

Если у вас есть два ветки MAIN (target) и DEV (source), теперь вы хотите объединить DEV в MAIN, тогда все файлы, которые вы хотите объединить из вашего источника, не должны быть старше, чем аналогичные файлы в вашей целевой ветки.

Например: у вас есть измененный файл test.cs в ветке DEV, измененный в 14.03.2016. В вашем филиале MAIN у вас есть test.cs, измененный в 15.03.2016. Таким образом, цель более новая, чем исходный файл, и у вас есть TF203015.

Решение: перейдите в TFS Explorer в файл конфликта и слейте его явным. TFS откроет диспетчер конфликтов, и вы можете объединить конфликты вручную. После этого вы можете объединить выбранный набор изменений.

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