Поделиться через


Основные понятия интеграции с Git

В этой статье описываются основные понятия Git и процесс интеграции Git с рабочей областью Microsoft Fabric.

Разрешения

  • Администратор вашей организации должен включить интеграцию Git.
  • Администратор клиента должен включить кросс-гео экспорт, если рабочая область и репозиторий Azure находятся в двух разных регионах. Это ограничение не применяется к GitHub.
  • Разрешения, которые у вас есть как в рабочей области, так и в Git, как указано в следующих разделах, определяют действия, которые можно предпринять.

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

  • Администратор. Может выполнять любую операцию в рабочей области, ограниченную только их ролью Git.
  • Участник/Вкладчик: После подключения к рабочей области участник или вкладчик может зафиксировать и обновить изменения в зависимости от роли Git. Для действий, связанных с подключением к рабочей области (например, подключение, отключение или переключение ветвей), обратитесь за помощью к администратору.
  • Средство просмотра: Невозможно выполнить никакие действия. Средство просмотра не может видеть связанные с Git сведения в рабочей области.

Роли рабочего пространства

В следующей таблице описаны разрешения, необходимые в рабочей области Fabric для выполнения различных распространенных операций:

Операция Роль рабочей области
Подключение рабочей области к репозиторию Git Админ
Синхронизация рабочей области с репозиторием Git Админ
Отключение рабочей области от репозитория Git Админ
Переключите ветвь в рабочей области (или измените настройки подключения) Админ
Просмотр сведений о подключении Git Администратор, член, участник
Просмотр состояния рабочей области Git Администратор, член, участник
Обновление из Git Все следующие роли:

Участник рабочей области (разрешение WRITE для всех элементов)

Владелец объекта (если переключатель арендатора блокирует обновления для невладельцев)

BUILD для внешних зависимостей (где применимо)
Фиксация изменений рабочей области в Git Все следующие роли:

Участник рабочей области (разрешение WRITE для всех элементов)

Владелец объекта (если переключатель арендатора блокирует обновления для невладельцев)

BUILD для внешних зависимостей (где применимо)
Создание новой ветви Git из Fabric Админ
Перейти в другое рабочее пространство Администратор, член, участник

Роли Git

В следующей таблице описаны разрешения Git, необходимые для выполнения различных распространенных операций:

Операция Разрешения Git
Подключение рабочей области к репозиторию Git Чтение=Разрешить
Синхронизация рабочей области с репозиторием Git Чтение=Разрешить
Отключение рабочей области от репозитория Git Разрешения не требуются
Переключите ветвь в рабочей области (или измените настройки подключения) Чтение=Разрешено (в целевом репозитории/каталоге/ветке)
Просмотр сведений о подключении Git Читать или совсем не читать
Просмотр состояния рабочей области Git Чтение=Разрешить
Обновление из Git Читать=Разрешить
Фиксация изменений рабочей области в Git Чтение=Разрешить
Внести вклад=Разрешить
Политика ветви должна разрешать прямой коммит
Создание новой ветви Git из Fabric Роль=Запись
Создать ветку=Разрешить
Перейти в другое рабочее пространство Чтение=Разрешить
Создать ветку=Разрешить

Подключение и синхронизация

Только администратор рабочей области может подключить рабочую область к репозиторию Git, но после подключения любой пользователь с разрешениями может работать в рабочей области. Если вы не являетесь администратором, обратитесь к администратору за помощью к подключению.

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

  • При зафиксировании вашей рабочей области в ветви Git, всё поддерживаемое содержимое рабочей области экспортируется в Git и перезаписывает текущее содержимое Git.
  • При обновлении рабочей области с содержимым Git содержимое рабочей области перезаписывается и вы теряете содержимое рабочей области. Так как ветвь Git всегда может быть восстановлена до предыдущего состояния, а рабочая область не может, вам будет предложено подтвердить, если вы выберете этот вариант.

Снимок экрана: диалоговое окно с запросом направления синхронизации, если Git и рабочая область содержат содержимое.

Если вы не выбираете, какое содержимое нужно синхронизировать, вы не сможете продолжить работу.

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

Папки

Папки еще не поддерживаются в Git. В настоящее время все элементы отображаются на верхнем уровне папки Git, даже если у рабочей области есть папки.

Примечание.

Если в рабочей области есть папки и подключенная папка Git еще не содержит вложенных папок, они считаются разными. Вы видите статус незафиксированные изменения в панели управления исходным кодом, и вам нужно зафиксировать изменения в Git перед обновлением рабочей области. При первом обновлении структура папок Git перезаписывает структуру папок рабочей области. Дополнительные сведения см. в разделе Обработка изменений папки безопасно.

Безопасная обработка изменений в папках

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

Если вы не можете вносить изменения в подключенную ветвь напрямую из-за политики ветви или разрешений, рекомендуется использовать параметр Checkout Branch:

  1. Создайте новую ветвь: используйте функцию создания ветви, чтобы создать ветвь с обновленным состоянием рабочей области Fabric.
  2. Фиксация изменений папок: любые изменения в папке рабочей области можно зафиксировать в этой новой ветви.
  3. Слияние изменений: используйте ваши стандартные запросы на слияние (PR) и процедуры слияния, чтобы интегрировать эти обновления обратно в исходную ветку.

Подключение к общей рабочей области

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

снимок экрана сообщения об ошибке, говорящего вам войти в учетную запись Git.

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

Снимок экрана: вкладка

Состояние Git

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

Скриншот с элементами в рабочей области, для которых указано состояние Git.

Каждый элемент имеет одно из следующих состояний:

  • Синхронизирован (элемент одинаков и в рабочей области, и в ветке Git)
  • Конфликт (элемент был изменен как в рабочей области, так и в ветви Git)
  • Неподдерживаемый элемент
  • Незафиксированные изменения в рабочем пространстве
  • Обновление, необходимое для Git
  • Элемент идентичен в обоих местах, но его необходимо обновить до последнего коммита.

Сведения о синхронизации

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

  • Подключенная ветвь
  • Время последней синхронизации
  • Ссылка на последний коммит, с которым синхронизирована рабочая область.

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

Область управления исходным кодом

В верхней части экрана находится значок управления исходниками. В нем отображается количество элементов, которые отличаются в рабочей области и в ветке Git. При внесении изменений в рабочую область или ветвь Git номер обновляется. При синхронизации рабочей области с ветвью Git значок контроля версий отображает 0.

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

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

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

Коммиты и обновления

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

Панель коммита и обновления содержит два раздела.

Изменения показывают количество измененных элементов в рабочей области и должны быть зафиксированы в Git.
Обновления показывают количество элементов, которые были изменены в ветви Git и должны быть обновлены в рабочей области.

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

  • новый
  • модифицировано
  • удалено
  • конфликт

Кнопка "Обновить" в верхней части панели обновляет список изменений и обновлений.

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

фиксировать изменения

  • Элементы в рабочей области, которые были изменены, перечислены в разделе "Изменения ". При наличии более чем одного измененного элемента, вы можете выбрать, какие элементы зафиксировать в ветку Git.
  • Если в ветви Git были сделаны обновления, коммиты будут недоступны, пока не обновите рабочую область.

Обновить

  • В отличие от коммита и отката, команда Update всегда обновляет всю ветвь и синхронизируется с последним коммитом. Не удается выбрать определенные элементы для обновления.
  • Если изменения были внесены в рабочую область и в ветви Git на том же элементе, обновления отключаются до устранения конфликта.

Узнайте больше о том, как зафиксировать изменения и обновить. Узнайте больше о процессе обновления и о том, как устранить конфликты.

Ветви

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

  • Действия, которые можно выполнить в текущей ветви:

    Снимок экрана: вкладка

  • Связанные ветви.
    На вкладке "Ветви" также есть список связанных рабочих областей, на которые можно выбрать и переключиться. Связанная рабочая область — это одна с теми же свойствами подключения, что и текущая ветвь, например та же организация, проект, репозиторий и папка Git.
    Эта функция позволяет переходить к рабочим областям, подключенным к другим ветвям, связанным с контекстом текущей работы, без необходимости искать их в списке рабочих областей Fabric.
    Чтобы открыть соответствующую рабочую область, выберите элемент в списке.

    Снимок экрана: список связанных ветвей, на которые пользователь может перейти.

Дополнительные сведения см. в разделе Ограничения ветвления.

Сведения об учетной записи

На вкладке "Сведения об учетной записи" отображаются сведения о учетной записи GitHub, к которому подключен пользователь. В нем есть два раздела. В верхнем разделе показаны поставщик Git и имя учетной записи. В нижнем разделе показаны репозиторий и ветвь, к которым подключена рабочая область. В настоящее время эта вкладка доступна только для рабочих областей, подключенных к GitHub.

Сведения об учетной записи GitHub:

  • Сведения о учетной записи Git

    • Поставщик
    • Имя учетной записи
  • Репозиторий Git

  • Отрасль

Снимок экрана вкладки

Рекомендации и ограничения

Общие ограничения интеграции Git

  • Метод проверки подлинности в Fabric должен быть не менее строгим, чем метод проверки подлинности для Git. Например, если Git требует многофакторной проверки подлинности, Структура должна также требовать многофакторную проверку подлинности.
  • В настоящее время наборы данных Power BI, подключенные к службам Analysis Services, не поддерживаются.
  • Рабочие области с установленными приложениями-шаблонами не могут быть подключены к Git.
  • Подмодулы не поддерживаются.
  • Независимые облака не поддерживаются.
  • Учетная запись Azure DevOps должна быть зарегистрирована для того же пользователя, который использует рабочую область Fabric.
  • Azure DevOps не поддерживается, если включена проверка политики условного доступа IP.
  • Администратор клиента должен включить перекрестный экспорт , если рабочая область и репозиторий Git находятся в двух разных географических регионах.
  • Если ваша организация настроила условный доступ, убедитесь в том, что для службы Power BI установлены те же условия, чтобы проверка подлинности работала как положено.
  • Размер коммита ограничен 125 МБ.

Ограничения GitHub Enterprise

Некоторые параметры GitHub Enterprise не поддерживаются. Например:

Ограничения рабочей области

  • Только администратор рабочей области может управлять подключениями к репозиторию Git, таким как подключение, отключение или добавление ветви.
    После подключения любой пользователь с разрешением может работать в рабочей области.

Ограничения ветвей и папок

  • Максимальная длина имени ветви составляет 244 символа.
  • Максимальная длина полного пути для имен файлов составляет 250 символов. Длинные имена не работают.
  • Максимальный размер файла составляет 25 МБ.
  • Структура папок поддерживается до 10 уровней.
  • Вы не можете скачать отчет или набор данных как PBIX из службы после их развертывания с интеграцией Git.
  • Если отображаемое имя элемента имеет какие-либо из этих характеристик, папка Git переименовывается в логический идентификатор (GUID) и тип.
    • Имеет более 256 символов
    • Заканчивается на , или пробел.
    • Содержит любые запрещенные символы, как описано в ограничениях имени каталога
  • При подключении рабочей области с папками к Git необходимо зафиксировать изменения в репозитории Git, если это структура папок отличается.

Ограничения имени каталога

  • Имя каталога, подключающегося к репозиторию Git, имеет следующие ограничения именования:

    • Имя каталога не может начинаться или заканчиваться пробелом или вкладкой.
    • Имя каталога не может содержать ни одного из следующих символов: "/:<>\*?|
  • Папка элемента (папка, содержащая файлы элементов), не может содержать ни одного из следующих символов: ":<>\*?|. Если вы переименовываете папку в одну из этих символов, Git не может подключиться или синхронизироваться с рабочей областью и возникает ошибка.

Ограничения процесса разветвления

  • Для ответвления требуются разрешения, перечисленные в таблице разрешений.
  • Для этого действия должны быть доступные возможности.
  • Все ограничения именования рабочей области и ветви применяются при создании новых ветвей в рабочей области.
  • В новой рабочей области доступны только элементы, поддерживаемые Git.
  • В списке связанных ветвей отображаются только ветви и рабочие области, которые у вас есть разрешение на просмотр.
  • Интеграция Git должна быть включена.
  • При выходе из ветвления создается новая ветвь, а параметры исходной ветви не копируются. Настройте все параметры или определения, чтобы обеспечить соответствие новым политикам вашей организации.
  • При создании ответвления от существующего рабочего пространства:
    • Целевая рабочая область должна поддерживать подключение Git.
    • Пользователь должен быть администратором целевой рабочей области.
    • Целевая рабочая область должна иметь емкость.
    • Рабочая область не может иметь приложения-шаблоны.
  • Обратите внимание, что при выходе из рабочей области все элементы, которые не сохраняются в Git, могут быть потеряны. Мы рекомендуем зафиксировать элементы, которые вы хотите сохранить, перед созданием новой ветки.

Ограничения синхронизации и коммита

  • Одновременно можно синхронизировать только в одном направлении. Вы не можете одновременно зафиксировать и обновить.
  • Метки конфиденциальности не поддерживаются, и экспорт элементов с метками конфиденциальности может быть отключен. Чтобы зафиксировать элементы с метками конфиденциальности без метки конфиденциальности, обратитесь к администратору за помощью.
  • Работает с ограниченными элементами. Неподдерживаемые элементы в папке игнорируются.
  • Дублирование имен не допускается. Даже если Power BI позволяет дублирование имен, обновление, фиксация или отмена операции не удается.
  • B2B не поддерживается.
  • Разрешение конфликтов частично выполняется в Git.
  • Во время процесса фиксации в Git сервис Fabric удаляет файлы внутри папки элемента, которые не входят в определение элемента. Не связанные файлы, не входящие в папку элемента, не удаляются.
  • После применения изменений вы можете заметить некоторые непредвиденные изменения в элементе, которые вы не вносили. Эти изменения семантически незначительны и могут произойти по нескольким причинам. Например:
    • Изменение файла определения элемента вручную. Эти изменения допустимы, но могут отличаться от того, что сделано через редакторы. Например, если вы переименовываете столбец семантической модели в Git и импортируете это изменение в рабочую область, при следующей фиксации изменений в семантической модели файл bim будет регистрироваться как измененный, и измененный столбец будет перемещен в конец массива columns. Это связано с тем, что подсистема AS, создающая файлы bim , отправляет переименованные столбцы в конец массива. Это изменение не влияет на способ работы элемента.
    • Коммит файла, использующего разрывы строк CRLF . Служба использует LF (подача строки) для разрыва строк. Если у вас в репозитории Git находятся файлы элементов с разрывами строк CRLF, при фиксации изменений из службы эти файлы изменяются на LF. Например, если открыть отчет на рабочем столе, сохраните файл проекта (PBIP) и отправьте его в Git с помощью CRLF.
  • Обновление семантической модели с помощью API расширенного обновления вызывает различие в Git после каждого обновления.