Почему я получаю сообщение об ошибке "Элемент... не может быть скрыт, потому что у него нет сопоставленного родителя" при попытке скрыть подпапку из сборки?

Я использую TFS 2015 для создания решения на C#. Глубоко в структуре папок этого решения находятся папки, содержащие определенные большие файлы данных без кода. Я хотел бы, чтобы некоторые сборки включали их, а некоторые сборки исключали их.

Используя веб-интерфейс TFS 2015, я настроил сборку, которая должна исключать эти файлы. Затем я использую Repository и добавьте папки данных в раздел Mappings с Cloak отображение типа.

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

Разумеется, папка верхнего уровня в хранилище кода отображается. Почему TFS жалуется на это, и что я могу с этим поделать?

2 ответа

Решение

Я не знаю почему, но я знаю, что для решения этой проблемы вам нужно просто прочитать сообщение об ошибке:

Предмет... не может быть скрыт, потому что у него нет сопоставленного родителя

Так что, если у вас возникла такая структура хранилища в неудачной сборке:

Type   Server Path                    Local Path
Map    $/Project                      $(build.sourcesDirectory)\Project
Cloak  $/Project/Assets/Data/Data2013
Cloak  $/Project/Assets/Data/Data2014
Cloak  $/Project/Assets/Data/Data2015

Вам просто нужно добавить еще одну строку примерно так:

Map    $/Project/Assets/Data          $(build.sourcesDirectory)\Project\Assets\Data

Теперь предметы, которые вы пытаетесь Cloak иметь "сопоставленного родителя", и ваша сборка должна быть успешной.

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

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

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

Проще говоря, так же, как упоминается информация об ошибке, это разработано, 'Cloaked'папку нельзя скрыть, если папка не имеет сопоставленного родителя. Для получения более подробной информации, вы можете взглянуть на связанную информацию о плаще в MSDN Link: Оптимизируйте свое рабочее пространство, используя явные, неявные, скрытые и нерекурсивные сопоставления папок

ProjectXYZ / Drop 'не может быть скрыт, потому что у него нет сопоставленного родителя.

Другой способ получить эту ошибку - указать файл Sln на карте:

Правильным местом для указания одного файла Sln является шаг 1 Процесс.

Проверьте это быстрое решение. Решил мою проблему.

http://jawedm.blogspot.com/2013/05/error-in-team-foundation-server-this.html

  1. В окне Source Control Explorer щелкните правой кнопкой мыши родительский узел - появится контекстное меню.
  2. В контекстном меню выберите команду " Удалить сопоставление..." - появится диалоговое окно "Удалить сопоставление".
  3. Установите флажок Рекурсивный

  4. Нажмите кнопку " Изменить" - появится запрос, в котором говорится: "Новые сопоставленные элементы не будут загружены, пока вы не выполните операцию get. Вы хотите получить $/[PARENT PATH] сейчас?", Где "[PARENT PATH]'- это путь родительского узла

  5. Нажмите кнопку Нет - окна запроса и удаления сопоставления исчезнут, а затем появится окно Получить.
  6. ВНИМАНИЕ! Здесь следует руководствоваться здравым смыслом! Я решил нажать кнопку "Отмена" в окне "Получить прогресс", чтобы предотвратить отображение дочерних объектов.
Другие вопросы по тегам