Directivas y configuraciones de rama

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Las directivas de rama ayudan a los equipos a proteger las ramas de desarrollo más importantes. Las directivas aplican los estándares de administración de cambios y la calidad del código del equipo. En este artículo se describe cómo configurar y administrar directivas de rama. Para obtener información general sobre todas las directivas y configuraciones de repositorio y rama, vea Configuración y directivas de repositorio Git.

Una rama que tiene configuradas directivas obligatorias no se puede eliminar, y requiere solicitudes de incorporación de cambios en todos los cambios.

Requisitos previos

  • Para establecer directivas de rama, hay que ser miembro del grupo de seguridad Administradores de proyectos o tener permisos Editar directivas de nivel de repositorio. Para obtener más información, vea Establecimiento de permisos de repositorios Git.

Configurar directivas de rama

Para administrar directivas de rama, seleccione Repositorios>Ramas para abrir la página Ramas en el portal web.

Captura de pantalla del elemento de menú Ramas

También se puede acceder a las configuraciones de directiva de rama con Configuración del proyecto>Repositorio>Directivas>Directivas de rama><Nombre de rama>.

Las ramas que tienen directivas van acompañadas de un icono de directiva. Puede seleccionar el icono para ir directamente a la configuración de directiva de la rama.

Para establecer directivas de rama, busque la rama que quiera administrar. Puede examinar la lista o buscar la rama en el cuadro Buscar el nombre de la rama de la esquina superior derecha.

Seleccione el icono Más opciones situado junto a la rama y, después, seleccione Directivas de rama en el menú contextual.

Captura de pantalla de la opción para abrir directivas de rama del menú contextual

Busque la rama en la página. Puede examinar la lista o buscar la rama mediante el cuadro Buscar todas las ramas de la esquina superior derecha.

Captura de pantalla de la página Ramas

Seleccione el botón ... Seleccione Directivas de rama en el menú contextual.

Captura de pantalla de la opción para abrir directivas de rama del menú contextual

Configure directivas en la página de configuraciones de rama. Vea las secciones siguientes para obtener descripciones e instrucciones de cada tipo de directiva.

Configure las directivas en la página Directivas. Vea las secciones siguientes para obtener descripciones de cada tipo de directiva. Seleccione Guardar cambios para aplicar la nueva configuración de directiva.

Captura de pantalla de la pestaña Directivas

Requerir un número mínimo de revisores

Las revisiones de código son importantes en los proyectos de desarrollo de software. Para garantizar que los equipos revisan y aprueban solicitudes de incorporación de cambios, puede requerir la aprobación por parte de un número mínimo de revisores. La directiva básica requiere que un número especificado de revisores apruebe el código, sin rechazos.

Para establecer la directiva, en Directivas de rama, establezca Requerir un número mínimo de revisores en Activado. Escriba el número de revisores requerido y seleccione cualquiera de las siguientes opciones:

Captura de pantalla de la directiva para habilitar las revisiones de código obligatorias

  • Seleccione Allow requestors to approve their own changes (Permitir que los solicitantes aprueben sus propios cambios) para permitir que el creador de una solicitud de incorporación de cambios vote su aprobación. Si no, el creador puede seguir votando Aprobar en la solicitud de incorporación de cambios, pero su voto no computará en el número mínimo de revisores.

  • Seleccione Prohibit the most recent pusher from approving their own changes (Prohibir que el insertador más reciente apruebe sus propios cambios) para aplicar la diferenciación de obligaciones. De forma predeterminada, cualquiera con permiso de inserción en la rama de origen puede tanto agregar confirmaciones como votar la aprobación de solicitudes de incorporación de cambios. Seleccionar esta opción hace que el voto del insertador más reciente no compute, aun cuando por lo general pueda aprobar sus propios cambios.

  • Seleccione Permitir que finalice aunque algunos revisores voten esperar o rechazar para permitir la finalización de solicitudes de incorporación de cambios, incluso cuando algunos revisores hayan votado en contra de la aprobación. Sigue siendo necesario que el número mínimo de revisores dé su aprobación.

  • En Cuando se envían cambios nuevos:
    • Seleccione Require at least one approval on the last iteration (Requerir al menos una aprobación en la última iteración) para requerir al menos un voto de aprobación a favor del último cambio de rama de origen.
    • Seleccione Restablecer todos los votos de aprobación (no restablece los votos para rechazar o esperar) para quitar todos los votos de aprobación, pero sí mantener los votos de rechazo o espera cada vez que la rama de origen cambie.
    • Seleccione Reset all code reviewer votes (Restablecer todos los votos de revisores de código) para quitar todos los votos de revisor cada vez que la rama de origen cambie, incluidos los votos de aprobación, rechazo o espera.
  • En Cuando se envían cambios nuevos:
    • Seleccione Requerir al menos una aprobación en cada iteración para requerir al menos un voto de aprobación a favor del último cambio de rama de origen. La aprobación del usuario no se contabiliza para ninguna iteración no aprobada anterior insertada por ese usuario. Como resultado, es necesario que otro usuario realice la aprobación adicional en la última iteración. Requerir al menos una aprobación en cada iteración está disponible en Azure DevOps Server 2022.1 y versiones posteriores.
    • Seleccione Require at least one approval on the last iteration (Requerir al menos una aprobación en la última iteración) para requerir al menos un voto de aprobación a favor del último cambio de rama de origen.
    • Seleccione Restablecer todos los votos de aprobación (no restablece los votos para rechazar o esperar) para quitar todos los votos de aprobación, pero sí mantener los votos de rechazo o espera cada vez que la rama de origen cambie.
    • Seleccione Reset all code reviewer votes (Restablecer todos los votos de revisores de código) para quitar todos los votos de revisor cada vez que la rama de origen cambie, incluidos los votos de aprobación, rechazo o espera.

Activación de la casilla para requerir revisiones de código

  • Si la opción Los solicitantes pueden aprobar sus propios cambios no está seleccionada, el creador de la solicitud de incorporación de cambios puede seguir votando Aprobar en su propia solicitud de incorporación de cambios, pero su voto no computará en el número mínimo de revisores.
  • Si algún revisor rechaza los cambios, la solicitud de incorporación de cambios no se puede completar a menos que seleccione Permitir que finalice aunque algunos revisores voten esperar o rechazar.
  • Los votos de revisor de código se pueden restablecer cuando se envían cambios nuevos a la rama de origen. Seleccione Restablecer los votos del revisor de código cuando haya cambios nuevos.

Si todas las demás directivas pasan, el creador puede completar la solicitud de incorporación de cambios cuando el número necesario de revisores lo apruebe.

Búsqueda de elementos de trabajo vinculados

Para realizar un seguimiento de la administración de elementos de trabajo, se puede requerir una vinculación entre las solicitudes de incorporación de cambios y los elementos de trabajo. La vinculación de elementos de trabajo proporciona más contexto de los cambios y garantiza que las actualizaciones pasen por un proceso de seguimiento de elementos de trabajo.

Para establecer la directiva, en Directivas de rama, establezca Buscar elementos de trabajo vinculados en Activado. Esta configuración requiere que los elementos de trabajo estén vinculados a una solicitud de incorporación de cambios para que esa solicitud de incorporación de cambios pueda combinarse. Configure esta opción como Opcional para avisar cuando no haya ningún elemento de trabajo vinculado, pero sea posible finalizar la solicitud de incorporación de cambios.

Captura de pantalla para requerir elementos de trabajo vinculados en solicitudes de incorporación de cambios

Requerir elementos de trabajo vinculados en las solicitudes de incorporación de cambios

Comprobación de la resolución de comentarios

La directiva Comprobar resolución de comentarios constata si se han resuelto todos los comentarios de una solicitud de incorporación de cambios.

Para configurar una directiva de resolución de comentarios de una rama, establezca Comprobar resolución de comentarios en Activado. Luego, decida si la directiva va a ser Obligatoria u Opcional.

Comprobar resolución de comentarios

Para obtener más información sobre cómo trabajar con comentarios de solicitud de incorporación de cambios, vea Revisión de solicitudes de incorporación de cambios.

Para configurar una directiva de resolución de comentarios de una rama, seleccione Comprobar resolución de comentarios.

Comprobar resolución de comentarios

Para obtener más información sobre cómo trabajar con comentarios de solicitud de incorporación de cambios, vea Revisión de solicitudes de incorporación de cambios.

Limitación de los tipos de fusión mediante combinación

Azure Repos tiene varias estrategias de fusión mediante combinación, todas ellas permitidas de forma predeterminada. Para mantener un historial de rama coherente, aplique una estrategia de fusión mediante combinación para la finalización de solicitudes de incorporación de cambios.

Establezca Limitar tipos de fusión mediante combinación en Activado para limitar los tipos de fusión mediante combinación posibles en el repositorio.

Limitar tipos de fusión mediante combinación

  • Fusión mediante combinación básica (sin avance rápido) crea una confirmación de fusión mediante combinación en el destino cuyos elementos primarios son las ramas de origen y de destino.
  • Fusión mediante combinación con "squash" crea un historial lineal con una sola confirmación en la rama de destino con los cambios de la rama de origen. Obtenga más información sobre la fusión mediante combinación con "squash" y cómo afecta al historial de rama.
  • Fusionar mediante cambio de base y avanzar rápidamente crea un historial lineal mediante la reproducción de las confirmaciones de origen en la rama de destino sin una confirmación de fusión mediante combinación.
  • Fusionar mediante cambio de base con confirmación de fusión mediante combinación reproduce las confirmaciones de origen en el destino y crea también una confirmación de fusión mediante combinación.

Nota:

Esta característica está disponible en Azure DevOps Server 2020 y versiones posteriores.

Aplicación de una estrategia de fusión mediante combinación

Para mantener un historial de rama coherente, aplique una estrategia de fusión mediante combinación cuando una solicitud de incorporación de cambios se complete. Seleccione Exigir una estrategia de fusión mediante combinación y elija una opción para requerir que las solicitudes de incorporación de cambios se fusionen mediante combinación a través de esa estrategia.

Establecimiento de los requisitos de fusión mediante combinación

  • Fusión mediante combinación sin avance rápido: esta opción combina el historial de confirmaciones de la rama de origen cuando la solicitud de incorporación de cambios se cierra, y crea una confirmación de fusión mediante combinación en la rama de destino.
  • Fusión mediante combinación con "squash": esta opción finaliza todas las solicitudes de incorporación de cambios con una fusión mediante combinación con "squash", lo cual crea una sola confirmación en la rama de destino con los cambios de la rama de origen. Obtenga más información sobre la fusión mediante combinación con "squash" y cómo afecta a su historial de rama.

Validación de compilación

Puede establecer una directiva que requiera que los cambios de las solicitudes de incorporación de cambios se compilen correctamente para que la solicitud de incorporación de cambios pueda completarse. Las directivas de compilación reducen las interrupciones y hacen que los resultados de las pruebas siempre pasen. Las directivas de compilación son de ayuda incluso cuando se usa la integración continua (CI) en las ramas de desarrollo para detectar problemas de forma anticipada.

Una directiva de validación de compilación pone en cola una nueva compilación cuando se crea una solicitud de incorporación de cambios, o cuando se envían cambios a una solicitud de incorporación de cambios existente que tiene como destino la rama. La directiva de compilación evalúa los resultados de la compilación para determinar si la solicitud de incorporación de cambios puede completarse.

Importante

Para poder especificar una directiva de validación de compilación, debe tener una canalización de compilación. Si no la tiene, vea Creación de una canalización de compilación. Elija el tipo de compilación que encaje con su tipo de proyecto.

Para agregar una directiva de validación de compilación

  1. Seleccione el botón + situado junto a Validación de compilación.

    Captura de pantalla del botón Agregar junto a Validación de compilación

  2. Rellene el formulario para configurar la directiva de compilación:

    Configuración de la directiva de compilación

    • Seleccione la canalización de compilación.

    • Opcionalmente, establezca un filtro de ruta de acceso. Obtenga más información sobre los filtros de ruta de acceso en las directivas de rama.

    • En Desencadenador, seleccione Automático (siempre que la rama de origen se actualiza) o Manual.

    • En Requisito de directiva, seleccione Obligatorio u Opcional. Si elige Obligatorio, las compilaciones deben finalizar correctamente para que las solicitudes de incorporación de cambios se completen. Elija Opcional para mostrar una notificación de error de compilación, pero que siga siendo posible que las solicitudes de incorporación de cambios se completen.

    • Establezca una expiración de compilación para evitar que las actualizaciones de la rama protegida interrumpan los cambios de las solicitudes de incorporación de cambios abiertas.

      • Inmediatamente cuando <nombre de la rama> se actualiza: esta opción establece el estado de la directiva de compilación de solicitudes de incorporación de cambios en error cada vez que la rama se actualiza, y vuelve a poner en cola una compilación. Esta opción garantiza que la solicitud de incorporación de cambios se compila correctamente aun cuando cambie la rama protegida.

        Esta opción es la más adecuada para los equipos cuyas ramas importantes tienen pocos cambios, pero para quienes trabajan en ramas de desarrollo muy concurridas, puede resultar perjudicial tener que esperar una compilación cada vez que la rama se actualiza.

      • Después de <n> horas si <nombre de la rama> se ha actualizado: esta opción expira el estado de directiva actual cuando la rama protegida se actualiza si la compilación que pasa es anterior al umbral especificado. Esta opción mantiene un equilibrio entre requerir siempre o nunca una compilación cuando la rama protegida se actualice. Esta opción reduce el número de compilaciones cuando la rama protegida se actualiza frecuentemente.

      • Nunca: las actualizaciones de la rama protegida no alteran el estado de la directiva. Este valor reduce el número de compilaciones, pero puede provocar problemas al completar solicitudes de incorporación de cambios que no se han actualizado recientemente.

    • Escriba un nombre para mostrar opcional para esta directiva de compilación; este nombre sirve para identificar la directiva en la página de directivas de rama. Si no se especifica un nombre para mostrar, la directiva usa el nombre de la canalización de compilación.

  3. Seleccione Guardar.

Cuando el propietario de la solicitud de incorporación de cambios envía cambios que se compilan correctamente, el estado de la directiva se actualiza.

Si existe una directiva de compilación Inmediatamente cuando <nombre de la rama> se actualiza o Después de <n> horas si <nombre de la rama> se ha actualizado, el estado de la directiva se actualiza cuando lo haga la rama protegida, si la compilación anterior ya no es válida.

Nota:

Esta característica está disponible en Azure DevOps Server 2020 y versiones posteriores.

Establezca una directiva que requiera que los cambios realizados en una solicitud de incorporación se compilen correctamente en la rama protegida para que la solicitud de incorporación de cambios pueda completarse. Las directivas de compilación reducen las interrupciones y hacen que los resultados de las pruebas siempre pasen. Las directivas de compilación son de ayuda incluso cuando se usa la integración continua (CI) en las ramas de desarrollo para detectar problemas de forma anticipada.

Si hay una directiva de validación de compilación habilitada, las nuevas compilaciones se ponen en cola cada vez que se cree una nueva solicitud de incorporación de cambios o cuando se envíen cambios a una solicitud de incorporación de cambios existente que tiene como destino la rama. Acto seguido, la directiva de compilación evalúa los resultados de la compilación para determinar si la solicitud de incorporación de cambios puede completarse o no.

Importante

Para poder especificar una directiva de validación de compilación, debe tener una definición de compilación. Si no tiene una, vea Creación de una definición de compilación y elija el tipo de compilación que encaje con su tipo de proyecto.

Agregar directiva de compilación

Elija Agregar directiva de compilación y configure las opciones deese cuadro de diálogo.

Configuración de directiva de compilación

  1. Seleccione la definición de compilación.

  2. Elija el tipo de desencadenador. Seleccione Automático (siempre que la rama de origen se actualiza) o Manual.

  3. Seleccione el requisito de directiva. Si elige Obligatorio, las compilaciones deben finalizar correctamente para que las solicitudes de incorporación de cambios se completen. Elija Opcional para mostrar una notificación de error de compilación, pero que siga siendo posible que las solicitudes de incorporación de cambios se completen.

  4. Establezca una expiración de compilación para evitar que las actualizaciones de la rama protegida interrumpan los cambios de las solicitudes de incorporación de cambios abiertas.

    • Inmediatamente cuando branch name se actualiza: esta opción establece el estado de la directiva de compilación de una solicitud de incorporación de cambios en error cuando la rama protegida se actualiza. Vuelva a poner una compilación en cola para actualizar el estado de la compilación. Esta configuración garantiza que los cambios en las solicitudes de incorporación de cambios se compilan correctamente incluso cuando la rama protegida cambie. Esta opción es la más adecuada para los equipos que tienen ramas importantes con un volumen de cambios menor, pero para quienes trabajan en ramas de desarrollo muy concurridas, puede resultar perjudicial tener que esperar a que una compilación se complete cada vez que la rama protegida se actualiza.
    • Después de n horas si branch name se ha actualizado: esta opción expira el estado de directiva actual cuando la rama protegida se actualiza si la compilación que pasa es anterior al umbral especificado. Esta opción mantiene un equilibrio entre requerir siempre o nunca una compilación cuando la rama protegida se actualice. Esta es una magnífica opción para reducir el número de compilaciones cuando la rama protegida se actualiza frecuentemente.
    • Nunca: las actualizaciones de la rama protegida no alteran el estado de la directiva. Este valor reduce el número de compilaciones de la rama. Puede provocar problemas al cerrar solicitudes de incorporación de cambios que no se han actualizado recientemente.
  5. Escriba un nombre para mostrar opcional para esta directiva de compilación; este nombre sirve para identificar la directiva en la página de directivas de rama. Si no se especifica un nombre para mostrar, la directiva usa el nombre de la definición de compilación.

  6. Seleccione Guardar.

Cuando el propietario de la solicitud de incorporación de cambios envía cambios que se compilan correctamente, el estado de la directiva se actualiza. Si ha optado por una directiva de compilación Inmediatamente cuando branch name se actualiza o Después de n horas si branch name se ha actualizado, el estado de la directiva se actualiza cuando lo haga la rama protegida, si la compilación más reciente ya no es válida.

Comprobaciones de estado

Los servicios externos pueden usar la API de estado de solicitud de incorporación de cambios para publicar un estado detallado de las solicitudes de incorporación de cambios. La directiva de rama de servicios adicionales permite que esos servicios de terceros participen en el flujo de trabajo de las solicitudes de incorporación de cambios y establezcan requisitos de directiva.

Requerir la aprobación de servicios externos

Para obtener instrucciones sobre cómo configurar esta directiva, vea Configuración de una directiva de rama para un servicio externo.

Obligatoriedad de aprobación de servicios externos

Los servicios externos pueden usar la API de estado de solicitud de incorporación de cambios para publicar un estado detallado de las solicitudes de incorporación de cambios. La directiva de rama de servicios adicionales ofrece la posibilidad a esos servicios de terceros de participar en el flujo de trabajo de las solicitudes de incorporación de cambios y establecer requisitos de directiva.

Requerir la aprobación de servicios externos

Para obtener instrucciones sobre cómo configurar esta directiva, vea Configuración de una directiva de rama para un servicio externo.

Inclusión automática de revisores de código

Puede agregar revisores automáticamente a las solicitudes de incorporación de cambios que modifiquen archivos en directorios y archivos específicos, o bien a todas las solicitudes de incorporación de cambios de un repositorio.

  1. Seleccione el botón + junto a Automatically included reviewers (Revisores incluidos automáticamente).

    Captura de pantalla que muestra la adición de revisores obligatorios

  2. Rellene la pantalla Add new reviewer policy (Agregar nueva directiva de revisor).

    Captura de pantalla que muestra la pantalla para agregar una nueva directiva de revisor

    • Agregue personas y grupos a Revisores.

    • Seleccione Opcional si quiere agregar revisores automáticamente, pero sin que su aprobación sea obligatoria para que la solicitud de incorporación de cambios pueda completarse.

      También puede seleccionar Obligatorio si las solicitudes de incorporación de cambios no pueden completarse hasta que suceda lo siguiente:

      • Todas las personas agregadas como revisores aprueban los cambios.
      • Al menos una persona de cada grupo agregada como revisor aprueba los cambios.
      • Si solo se requiere un grupo, el número mínimo de miembros especificado aprueba los cambios.
    • Especifique los archivos y las carpetas que requieran los revisores incluidos automáticamente. Deje este campo en blanco para requerir los revisores de todas las solicitudes de incorporación de cambios de la rama.

    • Seleccione Allow requestors to approve their own changes (Permitir que los solicitantes aprueben sus propios cambios) si los propietarios de las solicitudes de incorporación de cambios pueden votar para aprobar sus propias solicitudes de incorporación de cambios para cumplir esta directiva.

    • Puede especificar un mensaje de fuente de actividad que va a aparecer en la solicitud de incorporación de cambios.

  3. Seleccione Guardar.

Nota

Esta característica está disponible en Azure DevOps Server 2020 y versiones posteriores.

Seleccione revisores para directorios y archivos específicos del repositorio.

Especificación de la ruta de acceso y los revisores obligatorios

Estos revisores se agregan automáticamente a las solicitudes de incorporación de cambios que modifican los archivos de esas rutas de acceso. También se puede especificar un mensaje de fuente de actividad.

Agregar revisores automáticamente

Si selecciona Obligatorio, la solicitud de incorporación de cambios no puede completarse hasta que suceda lo siguiente:

  • Cada usuario agregado como revisor de la ruta de acceso aprueba los cambios.
  • Al menos una persona de cada grupo agregada a la ruta de acceso aprueba los cambios.
  • El número de revisores especificados para cada grupo agregado a la ruta de acceso aprueba los cambios.

Los revisores obligatorios se agregan automáticamente

Seleccione Opcional si quiere agregar revisores automáticamente, pero sin que su aprobación sea obligatoria para que la solicitud de incorporación de cambios pueda completarse.

Puede seleccionar Los solicitantes pueden aprobar sus propios cambios.

Cuando todos los revisores obligatorios aprueben el código, se puede completar la solicitud de incorporación de cambios.

Estado de la solicitud de incorporación de cambios que muestra que los revisores han aprobado

Omisión de directivas de rama

En algunos casos, es posible que tenga que omitir los requisitos de la directiva. Los permisos de omisión permiten enviar cambios a una rama directamente o completar solicitudes de incorporación de cambios que no cumplen las directivas de rama. Los permisos de omisión se pueden conceder a un usuario o a un grupo. Puede limitar el ámbito de los permisos de omisión a un proyecto completo, a un repositorio o a una sola rama.

Son dos los permisos que permiten omitir la directiva de rama de maneras diferentes:

  • Omitir las directivas cuando finalicen las solicitudes de incorporación de cambios solo se aplica a la finalización de las solicitudes de incorporación de cambios. Los usuarios con este permiso pueden completar solicitudes de incorporación de cambios aunque estas no cumplan las directivas.

  • Omitir las directivas al insertar se aplica a las inserciones desde repositorios locales y a las modificaciones realizadas en la Web. Los usuarios con este permiso pueden enviar cambios directamente a ramas protegidas sin tener que cumplir los requisitos de directiva.

Captura de pantalla que muestra la omisión de permisos de cumplimiento de directivas

Para obtener más información sobre cómo administrar estos permisos, vea Permisos de Git.

En TFS 2015 a TFS 2018 Update 2, Exento del cumplimiento de directivas permite a los usuarios con este permiso hacer lo siguiente:

  • Al completar una solicitud de incorporación de cambios, pueden invalidar las directivas y completar una solicitud de incorporación de cambios aun cuando no se cumpla el conjunto de directivas de rama en vigor.
  • Pueden enviar cambios directamente a una rama aun cuando esa rama tenga establecidas directivas de rama. Cabe decir que, cuando un usuario con este permiso realiza una inserción que podría invalidar la directiva de rama, esa inserción omite automáticamente la directiva de rama sin que haya un paso que dé opciones ni se muestre una advertencia.

Importante

Tenga cuidado al conceder la capacidad para omitir directivas, especialmente en los niveles de repositorio y de proyecto. Las directivas son una piedra angular para administrar el código fuente de forma segura y conforme a lo establecido.

Filtros de ruta de acceso

Varias directivas de rama ofrecen filtros de ruta de acceso. Si se establece un filtro de ruta de acceso, la directiva solo se aplica a los archivos que coincidan con el filtro de ruta de acceso. Dejar este campo en blanco significa que la directiva se aplica a todos los archivos de la rama.

Puede especificar rutas de acceso absolutas (la ruta de acceso debe empezar por / o por un carácter comodín) y usar caracteres comodín. Ejemplos:

  • /WebApp/Models/Data.cs
  • /WebApp/*
  • */Models/Data.cs
  • *.cs

Se pueden especificar varias rutas de acceso usando ; como separador. Ejemplo:

  • /WebApp/Models/Data.cs;/ClientApp/Models/Data.cs

Las rutas de acceso que tengan ! antepuesto se excluyen si, de no llevarlo, se incluyeran. Ejemplo:

  • /WebApp/*;!/WebApp/Tests/* incluye todos los archivos en /WebApp excepto los archivos en /WebApp/Tests.
  • !/WebApp/Tests/* no especifica ningún archivo, ya que no se incluye nada en primer lugar.

El orden de los filtros es relevante. Los filtros se aplican de izquierda a derecha.

Preguntas y respuestas

¿Puedo enviar cambios directamente a ramas que tengan directivas de rama?

No se pueden enviar cambios directamente a ramas que tengan directivas de rama obligatorias, a menos que se tengan permisos para omitir directivas de rama. Los cambios en estas ramas solo se pueden realizar a través de solicitudes de incorporación de cambios. Sí se pueden enviar cambios directamente a las ramas que tengan directivas de rama opcionales, siempre y cuando no tengan directivas de rama obligatorias.

¿Qué es Autocompletar?

Las solicitudes de incorporación de cambios en ramas que tienen directivas de rama configuradas presentan el botón Establecer autocompletar. Seleccione esta opción para completar automáticamente la solicitud de incorporación de cambios cuando cumpla todas las directivas. La función Autocompletar resulta útil cuando está previsto que no haya problemas con los cambios.

¿Cuándo se comprueban las condiciones de una directiva de rama?

Las directivas de rama vuelven a evaluar en el servidor cuando los propietarios de solicitudes de incorporación de cambios envían cambios y cuando los revisores votan. Si una directiva desencadena una compilación, la compilación se establece en un estado en espera hasta que dicha compilación se complete.

¿Puedo usar definiciones de compilación XAML en las directivas de rama?

No, no se pueden usar definiciones de compilación XAML en las directivas de rama.

¿Qué caracteres comodín puedo usar para especificar revisores de código obligatorios?

Un único asterisco * detecta cualquier número de caracteres, incluidas barras diagonales / y barras diagonales inversas \. Un signo de interrogación ? detecta cualquier carácter único.

Ejemplos:

  • *.sql detecta todos los archivos con la extensión .sql.
  • /ConsoleApplication/* detecta todos los archivos de la carpeta denominada ConsoleApplication.
  • /.gitattributes detecta el archivo .gitattributes en la raíz del repositorio.
  • */.gitignore detecta cualquier archivo .gitignore en el repositorio.

¿Se distinguen mayúsculas de minúsculas en las rutas de acceso de revisor de código obligatorio?

No, las directivas de rama no distinguen mayúsculas de minúsculas.

¿Cómo puedo configurar varios usuarios como revisores obligatorios, pero requerir solo la aprobación de uno de ellos?

Puede agregar los usuarios a un grupo y agregar ese grupo como revisor. De este modo, cualquier miembro del grupo puede aprobar para cumplir el requisito de directiva.

Tengo permisos de omisión de directivas. ¿Por qué me siguen apareciendo errores de directiva en el estado de la solicitud de incorporación de cambios?

Las directivas configuradas siempre se evalúan para detectar cambios en las solicitudes de incorporación de cambios. En el caso de los usuarios que tienen permisos de omisión de directivas, el estado de la directiva que se notifica es únicamente a modo aviso. Si el usuario con permisos de omisión da su aprobación, el estado de error no impide que la solicitud de incorporación de cambios pueda completarse.

¿Por qué no puedo completar mis propias solicitudes de incorporación de cambios si tengo configurada la opción para permitir que los solicitantes aprueben sus propios cambios?

Tanto la directiva Requerir un número mínimo de revisores como la directiva Incluir automáticamente los revisores tienen opciones para permitir que los solicitantes aprueben sus propios cambios. En cada una de estas directivas, la configuración se aplica única y exclusivamente a esa directiva. No afecta a la otra.

Por ejemplo, su solicitud de incorporación de cambios tiene las siguientes directivas configuradas:

  • Requerir un número mínimo de revisores requiere que haya un revisor como mínimo.
  • Incluir automáticamente los revisores requiere como revisor al usuario o a un equipo del que el usuario forme parte.
  • Incluir automáticamente los revisores tiene habilitada la opción para permitir que los solicitantes aprueben sus propios cambios.
  • Requerir un número mínimo de revisores no tiene habilitada la opción para permitir que los solicitantes aprueben sus propios cambios.

En este caso, la aprobación cumple la directiva Incluir automáticamente los revisores, pero no la directiva Requiere un número mínimo de revisores, por lo que la solicitud de incorporación de cambios no puede completarse.

Puede haber otras directivas, como la que prohíbe que el insertador más reciente apruebe sus propios cambios, que le impidan aprobar sus propios cambios aun cuando se haya establecido la opción para permitir que los solicitantes aprueben sus propios cambios.

¿Qué ocurre cuando la ruta de acceso de los filtros de ruta de acceso no comienza por / ni por un carácter comodín?

Las rutas de acceso de los filtros de ruta de acceso que no comiencen por / ni por un carácter comodín no tendrán ningún efecto, y el filtro de ruta de acceso se evaluará como si esa ruta de acceso no se hubiera especificado. Esto se debe a que esta ruta de acceso no detecta el carácter / con el que comienza la ruta de acceso de archivo absoluta.