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
- El administrador de la organización debe habilitar la integración de Git.
- El administrador de inquilinos debe habilitar la exportación entre regiones si el área de trabajo y repositorio de Azure están en dos regiones diferentes. Esta restricción no se aplica a GitHub.
- Los permisos que tiene en el área de trabajo y Git, como se muestra en las secciones siguientes, determinan las acciones que puede realizar.
Permisos de Git necesarios para acciones populares
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:
- Administrador: Puede realizar cualquier operación en el espacio 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.
Permisos de Fabric necesarios para realizar acciones populares
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 | Todos los roles siguientes: 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) |
Guardar cambios en el área de trabajo en Git | Todos los roles siguientes: 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 |
Bifurcar a otra á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 | Leer=Permitir |
Sincronizar el área de trabajo con el repositorio de Git | Leer=Permitir |
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 | Leer=Permitir |
Actualización desde Git | Leer=Permitir |
Confirmar cambios en el área de trabajo en Git | Leer=Permitir Contribuir=Permitir la directiva de rama debe permitir la confirmación directa |
Crear una nueva rama de Git desde Fabric | Rol=Escribir Create branch=Allow |
Ramificación a otra área de trabajo | Leer=Permitir 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ía mientras la otra tiene contenido, éste se copia desde la ubicación no vacía hacia 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 sobrescribe y pierde el contenido del á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.
Si no selecciona qué contenidos desea sincronizar, no podrá seguir trabajando.
Carpetas
Las carpetas aún no se admiten en Git. Actualmente, todos los elementos aparecen en el nivel superior de la carpeta Git incluso si el área de trabajo tiene carpetas.
Nota:
Si el área de trabajo tiene carpetas y la carpeta Git conectada aún no tiene subcarpetas, se consideran diferentes. Obtienes un estado de cambios no confirmados en el panel de control de código fuente y necesitas confirmar los cambios en Git antes de actualizar el área de trabajo. Si actualiza primero, la estructura de carpetas de Git sobrescribe la estructura de carpetas del área de trabajo. Para obtener más información, consulte Control de cambios de carpeta de forma segura.
Control de los cambios de carpeta de forma segura
Si el área de trabajo tiene carpetas y la carpeta Git conectada aún no tiene subcarpetas, se consideran diferentes porque la estructura de carpetas es diferente. Al conectar un área de trabajo que tiene carpetas a Git, obtendrá un cambios no confirmados estado en el panel de control de código fuente y debe confirmar los cambios en Git antes de actualizar el área de trabajo.
Si no puede realizar cambios en la rama conectada directamente, debido a la directiva de rama o permisos, se recomienda usar la opción Rama de desprotección :
- Desproteger una nueva rama: use la característica de la rama de desprotección para crear una rama con el estado actualizado del área de trabajo de Fabric.
- Confirmar cambios en la carpeta: los cambios de carpeta del área de trabajo se pueden confirmar en esta nueva rama.
- Cambios de combinación: use los procesos normales de solicitud de incorporación de cambios (PR) y combinación para integrar estas actualizaciones de nuevo en la rama original.
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:
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.
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.
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 al último commit.
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
- Enlace a la última confirmación con la que se sincroniza el área de trabajo
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.
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 que fueron modificados en la rama de Git y que deben actualizarse al área de trabajo.
En cada sección, los elementos modificados se muestran con un icono que indica el estado:
nuevo
modificado
eliminado
conflicto
El botón Actualizar de la parte superior del panel actualiza la lista de cambios y actualizaciones.
Commit
- Los elementos del área de trabajo que se cambiaron se muestran en la sección Cambios. Cuando hay más de un elemento modificado, puedes seleccionar qué elementos deseas 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 (colaborador y versiones posteriores): crea un área de trabajo nueva o cambia a un área de trabajo existente en función de la última confirmación en el área de trabajo actual. A continuación, se conecta al área de trabajo y a la rama de destino.
- 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.
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.
Esta característica le permite navegar 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.
Para abrir el área de trabajo pertinente, seleccione el elemento de la lista.
Para obtener más información, consulte Limitaciones de bifurcació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
- Nombre de la cuenta
Repositorio Git
Rama
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 submódulos.
- 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.
- Azure DevOps no es compatible si está habilitada la opción de validación de política de acceso condicional de IP.
- 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.
- Si su organización configuró acceso condicional, asegúrese de que el servicio Power BI tenga las mismas condiciones establecidas para que la autenticación funcione según lo previsto.
- 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:
- Lista de direcciones IP permitidas
- Redes privadas
- Dominios personalizados
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.
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.
- La estructura de carpetas se mantiene hasta 10 niveles de profundidad.
- No puede descargar un informe o un conjunto de datos como .pbix desde el servicio después de implementarlos con Git Integration.
- Si el nombre mostrado del elemento tiene alguna de estas características, se cambia el nombre de la carpeta Git al ID lógico (GUID) y tipo:
- Al conectar un área de trabajo que tiene carpetas a Git, debe confirmar los cambios en el repositorio de Git si esa estructura de carpetas es diferente.
Limitaciones del nombre del directorio
El nombre del directorio que se conecta al repositorio de Git tiene las siguientes restricciones de nomenclatura:
- El nombre del directorio no puede comenzar ni terminar con un espacio o una pestaña.
- El nombre del directorio no puede contener ninguno de los siguientes caracteres: "/:<>\*?|
La carpeta item (la carpeta que contiene los archivos de elementos) no puede contener ninguno de los siguientes caracteres: ":<>\*?|. Si cambia el nombre de la carpeta a algo que incluye uno de estos caracteres, Git no se puede conectar ni sincronizar con el área de trabajo y se produce un error.
Limitaciones de bifurcació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 área de trabajo y limitaciones de nomenclatura de rama se aplican al ramificar hacia una nueva área de trabajo.
- 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.
- Al bifurcar, se crea una nueva rama y no se copia la configuración de la rama original. Ajuste cualquier configuración o definiciones para asegurarse de que el nuevo cumple las directivas de la organización.
- Al ramificarse en un área de trabajo existente:
- El área de trabajo de destino debe admitir una conexión de Git.
- El usuario debe ser un administrador del área de trabajo de destino.
- El área de trabajo de destino debe tener capacidad.
- El área de trabajo no puede tener aplicaciones de plantilla.
- Tenga en cuenta que, cuando se traslada a un área de trabajo, cualquier elemento que no esté guardado en Git puede perderse. Se recomienda confirmación los elementos que quiera conservar antes de la bifurcación.
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 está soportado.
- 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ías archivos en el repositorio de Git con saltos de línea CRLF, cuando confirmas desde el servicio, estos archivos se cambian a LF. Por ejemplo, si abre un informe en el escritorio, guarde el archivo de proyecto (.pbip) y cárguelo en Git mediante CRLF.
- 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
- 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.