Conceptos básicos en la integración de Git

En este artículo se explican los conceptos básicos de Git y el proceso de integración de Git con el área de trabajo de Microsoft Fabric.

Permisos

  • Para poder utilizar la integración de Git, el administrador de su organización debe habilitarla.
  • Si el área de trabajo y el repositorio de Azure se encuentran en dos regiones diferentes, el administrador del inquilino deberá habilitar las exportaciones entre áreas geográficas. Esta restricción no se aplica a GitHub.
  • Las acciones que puede realizar en un área de trabajo dependen de los permisos que tenga tanto en el área de trabajo como en Git, tal como se indica en las secciones siguientes.

En la lista siguiente se muestra lo que pueden hacer los distintos roles de área de trabajo en función de sus permisos en su repo de Git:

  • Administración: puede realizar cualquier operación en el área de trabajo, limitado solo por su rol de Git.
  • Miembro o colaborador: una vez conectado a un área de trabajo, un miembro o colaborador puede confirmar y actualizar los cambios, en función de su rol de Git. Para las acciones relacionadas con la conexión del área de trabajo (por ejemplo, conectar, desconectar o cambiar ramas), busque ayuda de un Administrador.
  • Visor: no puede realizar ninguna acción. El visor no puede ver ninguna información relacionada con Git en el área de trabajo.

Roles de área de trabajo

En la tabla siguiente se describen los permisos necesarios en el espacio de trabajo de Fabric para realizar varias operaciones comunes:

Operación Rol de área de trabajo
Conectar el área de trabajo al repositorio de Git Administración
Sincronizar el área de trabajo con el repositorio de Git Administración
Desconectar el área de trabajo del repositorio de Git Administración
Cambiar rama en el área de trabajo (o cualquier cambio en la configuración de conexión) Administración
Ver los detalles de la conexión de Git Administrador, miembro, colaborador
Consultar el "estado de Git" del área de trabajo Administrador, miembro, colaborador
Actualización desde Git Todo lo siguiente:

Colaborador en el área de trabajo (permiso WRITE en todos los elementos)

Propietario del elemento (si el modificador de inquilino bloquea las actualizaciones de nonowners)

BUILD en dependencias externas (si procede)
Confirmarcambios en el área de trabajo en Git Todo lo siguiente:

Colaborador en el área de trabajo (permiso WRITE en todos los elementos)

Propietario del elemento (si el modificador de inquilino bloquea las actualizaciones de nonowners)

BUILD en dependencias externas (si procede)
Crear una nueva rama de Git desde Fabric Administración
Ramificar hacia una nueva área de trabajo Administrador, miembro, colaborador

Roles de Git

En la tabla siguiente se describen los permisos de Git necesarios para realizar varias operaciones comunes:

Operación Permisos de Git
Conectar el área de trabajo al repositorio de Git Read=Allow
Sincronizar el área de trabajo con el repositorio de Git Read=Allow
Desconectar el área de trabajo del repositorio de Git No se necesitan permisos
Cambiar rama en el área de trabajo (o cualquier cambio en la configuración de conexión) Read=Allow (en el repositorio/directorio/rama de destino)
Ver los detalles de la conexión de Git Lectura o ninguno
Consultar el "estado de Git" del área de trabajo Read=Allow
Actualización desde Git Read=Allow
Confirmarcambios en el área de trabajo en Git Read=Allow
Contribute=Allow
la directiva de rama debe permitir la confirmación directa
Crear una nueva rama de Git desde Fabric Role=Write
Create branch=Allow
Ramificar hacia una nueva área de trabajo Read=Allow
Create branch=Allow

Conectar y sincronizar

Solo un administrador del área de trabajo puede conectar un área de trabajo a repos de Git, pero una vez conectado, cualquier persona con permisos puede trabajar en el área de trabajo. Si no es administrador, pida al administrador ayuda con la conexión.

Al conectar un área de trabajo a Git, Fabric se sincroniza entre las dos ubicaciones para que tengan el mismo contenido. Durante esta sincronización inicial, si el área de trabajo o la rama de Git está vacío mientras el otro tiene contenido, el contenido se copia de la ubicación no vacía en la vacía. Si tanto el área de trabajo como la rama de Git tienen contenido, deberá decidir en qué dirección debe ir la sincronización.

  • Si confirma su área de trabajo en la rama de Git, todo el contenido compatible del área de trabajo se exporta a Git y sobrescribe el contenido actual de Git.
  • Si actualiza el área de trabajo con el contenido de Git, el contenido del área de trabajo se sobrescribirá y perderá el contenido de su área de trabajo. Puesto que una rama de Git siempre se puede restaurar en una fase anterior mientras que un área de trabajo no puede, si elige esta opción, se le pedirá que confirme.

Captura de pantalla del diálogo que pregunta en qué dirección sincronizar si tanto Git como el área de trabajo tienen contenido.

Si no selecciona qué contenidos desea sincronizar, no podrá seguir trabajando.

Notificación de que no puede seguir trabajando hasta que se sincronice el área de trabajo.

Conexión a un área de trabajo compartida

Si intenta conectarse a un área de trabajo que ya está conectada a Git, es posible que reciba el siguiente mensaje:

Captura de pantalla del mensaje de error que le indica que debe iniciar sesión en una cuenta de Git.

Vaya a la pestaña Cuentas del lado derecho del panel de control de código fuente, elija una cuenta y conéctese a ella.

Captura de pantalla de la pestaña Cuentas con el usuario conectándose a una cuenta de GitHub.

Estado de Git

Tras conectarse, el área de trabajo muestra una columna Estado de Git que indica el estado de sincronización de cada elemento del área de trabajo en relación con los elementos de la rama remota.

Captura de pantalla si los elementos en un área de trabajo con su estado Git esbozado.

Cada elemento tiene uno de los siguientes estados:

  • Sincronizado (el elemento es el mismo en el área de trabajo y la rama de Git)
  • Conflicto (el elemento se cambió tanto en el área de trabajo como en la rama de Git)
  • Elemento no compatible
  • Cambios no confirmados en el área de trabajo
  • Actualización necesaria desde Git
  • El elemento es idéntico en ambos lugares, pero debe actualizarse a la última confirmación

Información de sincronización

Siempre que esté conectado, la siguiente información aparece en la parte inferior de la pantalla:

  • Rama conectada
  • Hora de la última sincronización
  • Vínculo a la última confirmación con la que se sincroniza el área de trabajo

Captura de pantalla de la información de sincronización que aparece en la parte inferior de la pantalla cuando se conecta a Git.

Panel de control de código fuente

En la parte superior de la pantalla se encuentra el icono Control de código fuente. Muestra el número de elementos que son diferentes en el área de trabajo y la rama de Git. Cuando se realizan cambios en el área de trabajo o en la rama de Git, se actualiza el número. Cuando el área de trabajo se sincroniza con la rama de Git, el icono de control de código fuente muestra un 0.

Captura de pantalla del icono de control de código fuente que muestra cero elementos cambiados.

Seleccione el icono Control de código fuente para abrir el panel Control de código fuente.

El panel de control de código fuente tiene tres pestañas en el lado:

Confirmaciones y actualizaciones

Cuando se realizan cambios en el área de trabajo o en la rama de Git, el icono de control de código fuente muestra el número de elementos que son diferentes. Seleccione el icono control de código fuente para abrir el panel Control de código fuente.

El panel Confirmar y actualizar tiene dos secciones.

La sección Cambios muestra el número de elementos que se cambiaron en el área de trabajo y deben confirmarse en Git.
La sección Actualizaciones muestra el número de elementos modificados en la rama de Git y deben actualizarse al área de trabajo.

En cada sección, los elementos modificados se muestran con un icono que indica el estado:

  • new
  • modified
  • deleted
  • conflict

El botón Actualizar de la parte superior del panel actualiza la lista de cambios y actualizaciones.

Captura de pantalla del panel de control de código fuente que muestra el estado de los elementos cambiados.

Commit

  • Los elementos del área de trabajo que se cambiaron se muestran en la sección Cambios. Cuando hay más de un elemento cambiado, puede seleccionar qué elementos confirmar en la rama de Git.
  • Si se realizaron actualizaciones en la rama de Git, las confirmaciones se deshabilitan hasta que actualice el área de trabajo.

Actualizar

  • A diferencia de commit y undo, el comando Update siempre actualiza toda la rama y se sincroniza con el commit más reciente. No se pueden seleccionar elementos específicos para actualizar.
  • Si se realizaron cambios en el área de trabajo y en la rama de Git en el mismo elemento, las actualizaciones se deshabilitan hasta que se resuelva el conflicto.

Obtenga más información sobre cómo confirmar y actualizar. Obtenga más información sobre el proceso de actualización y cómo resolver conflictos.

Ramas

La pestaña Ramas del panel Control de código fuente permite administrar las ramas y realizar acciones relacionadas con la rama. Tiene dos secciones principales:

  • Acciones que puede realizar en la rama actual:

    • Ramificar hacia una nueva área de trabajo (cualquier rol): crea una nueva área de trabajo y una nueva rama en función de la última confirmación de la rama conectada al área de trabajo actual. Se conecta a la nueva área de trabajo y a la nueva rama.
    • Creación de una nueva rama (debe ser administrador del área de trabajo): crea una nueva rama en función de la última confirmación sincronizada en el área de trabajo y cambia la conexión de Git en el área de trabajo actual. No cambia el contenido del área de trabajo.
    • Cambiar rama (debe ser administrador del área de trabajo): sincroniza el área de trabajo con otra rama nueva o existente e invalida todos los elementos del área de trabajo con el contenido de la rama seleccionada.

    Captura de pantalla de la pestaña Ramificación en el panel Control de código fuente.

  • Ramas relacionadas.
    La pestaña Ramas también tiene una lista de áreas de trabajo relacionadas que puede seleccionar y a las que puede cambiar. Un área de trabajo relacionada es una con las mismas propiedades de conexión que la rama actual, como la misma organización, proyecto, repositorio y carpeta de git.
    Esto le permite ir a áreas de trabajo conectadas a otras ramas relacionadas con el contexto del trabajo actual, sin tener que buscarlas en la lista de áreas de trabajo de Fabric.
    Haga clic en un elemento de la lista para abrir el área de trabajo correspondiente.

    Captura de pantalla que muestra una lista de ramas relacionadas a las que puede cambiar el usuario.

Para más información, consulte Limitaciones de ramificación.

Detalles de la cuenta

La pestaña Detalles de la cuenta muestra los detalles de la cuenta de GitHub a la que se está conectado el usuario. Tiene dos secciones. En la sección superior se muestra el proveedor de Git y el nombre de cuenta. En la sección inferior se muestra el repositorio y la rama a la que está conectada el área de trabajo. Actualmente, esta pestaña solo está disponible para las áreas de trabajo conectadas a GitHub.

Los detalles de la cuenta de GitHub incluyen:

  • Detalles de la cuenta de Git

    • Proveedor
    • Account name
  • Repositorio Git

  • Sucursal

Captura de pantalla de la pestaña Cuentas en el panel Control de código fuente en la que se muestran los detalles de Git y los nombres de la rama y el repositorio.

Consideraciones y limitaciones

Limitaciones generales de integración de Git

  • El método de autenticación en Fabric debe ser al menos tan seguro como el método de autenticación para Git. Por ejemplo, si Git requiere autenticación multifactor, Fabric también necesita autenticación multifactor.
  • Los conjuntos de datos de Power BI conectados a Analysis Services no se admiten en este momento.
  • Las áreas de trabajo con aplicaciones de plantilla instaladas no se pueden conectar a Git.
  • No se admiten las nubes soberanas.
  • La cuenta de Azure DevOps debe registrarse en el mismo usuario que usa el área de trabajo de Fabric.
  • Si el área de trabajo y el repositorio de Git se encuentran en dos regiones geográficas diferentes, el administrador de inquilinos deberá habilitar las exportaciones entre áreas geográficas.
  • El tamaño de una confirmación está limitado a 125 MB.

Limitaciones de GitHub Enterprise

No se admiten algunas configuraciones de GitHub Enterprise. Por ejemplo:

Limitaciones del área de trabajo

  • Solo el administrador del área de trabajo puede administrar las conexiones al repo de Git, como conectar, desconectar o agregar una rama.
    Una vez conectado, cualquier persona con permiso puede trabajar en el área de trabajo.
  • La estructura de carpetas del área de trabajo no se refleja en el repositorio de Git. Los elementos del área de trabajo de las carpetas se exportan al directorio raíz.

Limitaciones de rama y carpeta

  • La longitud máxima del nombre de rama es de 244 caracteres.
  • La longitud máxima de la ruta de acceso completa para los nombres de archivo es de 250 caracteres. Se produce un error en los nombres más largos.
  • El tamaño máximo de archivo es de 25 MB.
  • No puede descargar un informe o un conjunto de datos como .pbix desde el servicio después de implementarlos con Git Integration.
  • Al nombrar una carpeta de Git, el identificador lógico (GUID) se añade como prefijo antes del tipo en el nombre del elemento.
    • Tiene más de 256 caracteres
    • Termina con . o un espacio
    • Contiene cualquiera de los caracteres siguientes: " / : < > \ * ? |

Limitaciones de ramificación

  • La ramificación requiere permisos que se muestran en la tabla de permisos.
  • Debe haber una capacidad disponible para esta acción.
  • Todas las limitaciones de nomenclatura de rama y área de trabajo y se aplican al ramificar hacia una nueva área de trabajo.
  • Al ramificar, se crea una nueva área de trabajo y no se copia la configuración del área de trabajo original. Ajuste la configuración o las definiciones para garantizar que la nueva área de trabajo cumple las directivas de la organización.
  • Solo los elementos compatibles con Git están disponibles en la nueva área de trabajo.
  • La lista de ramas relacionadas solo muestra ramas y áreas de trabajo que tiene permiso para ver.
  • La integración de Git debe estar habilitada.

Limitaciones de sincronización y confirmación

  • Solo se puede sincronizar en una dirección a la vez. No se puede confirmar y actualizar al mismo tiempo.
  • Las etiquetas de confidencialidad no se admiten y es posible que se deshabilite la exportación de elementos con etiquetas de confidencialidad. Para confirmar los elementos que tienen etiquetas de confidencialidad sin la etiqueta de confidencialidad, pida ayuda al administrador .
  • Funciona con elementos limitados. Si hay elementos no compatibles en la carpeta, se omiten.
  • No se permiten duplicaciones de nombres. Incluso si Power BI permite la duplicación de nombres, se produce un error en la acción de actualización, confirmación o deshacer.
  • B2B no es compatible.
  • La resolución de conflictos se realiza parcialmente en Git.
  • Durante el proceso Confirmar en Git, el servicio Fabric elimina los archivos dentro de la carpeta de elementos que no forman parte de la definición de elemento. Los archivos no relacionados que no están en una carpeta de elementos no se eliminan.
  • Después de confirmar los cambios, es posible que observe algunos cambios inesperados en el elemento que usted no hizo. Estos cambios son semánticamente insignificantes y pueden ocurrir por varias razones. Por ejemplo:
    • Cambiar manualmente el archivo de definición de elemento. Estos cambios son válidos, pero pueden ser diferentes de si se realizan a través de los editores. Por ejemplo, si cambia el nombre de la columna de un modelo semántico en Git e importa este cambio en el área de trabajo, la próxima vez que confirme los cambios en el modelo semántico, el archivo bim se registrará como modificado y la columna modificada será insertada en la parte posterior de la columns matriz. Esto se debe a que el motor de AS que genera los archivos bim inserta columnas cuyo nombre ha cambiado al final de la matriz. Este cambio no afecta a la forma en que funciona el elemento.
    • Confirmar un archivo que usa saltos de línea CRLF. El servicio usa saltos de línea LF (avance de línea). Si tenía archivos de elementos en el repositorio de Git con saltos de línea CRLF, al confirmar desde el servicio, estos archivos se cambian a LF. Por ejemplo, si abre un informe en el escritorio, guarde el proyecto .pbip y cárguelo en Git mediante CRLF.
  • La actualización de un modelo semántico mediante la API de actualización mejorada provoca una diferencia de Git después de cada actualización.