Requerimiento de creación de las ramas en carpetas
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Cuando muchas personas colaboran en un repositorio, la cantidad y los nombres de las ramas pueden descontrolarse rápidamente.
Las carpetas jerárquicas de rama son una manera eficaz de poner orden al caos.
Azure DevOps Services, TFS y Visual Studio tratan /
como un separador de carpetas y contraerán automáticamente las carpetas de forma predeterminada.
De este modo, no es necesario desplazarse por cada rama para encontrar la que se está buscando.
Tampoco hace falta depender de que los demás usuarios lo hagan bien.
Azure Repos y TFS pueden exigir un uso correcto de las carpetas de rama.
Planificación
Decida la estructura de carpetas que quiere permitir. Por ejemplo, configuraremos el repositorio para aplicar las reglas siguientes:
- En la raíz del repositorio solo puede existir
main
. - Todos los usuarios podrán crear ramas en las carpetas
feature/
yusers/
. - Los administradores podrán crear ramas en la carpeta
release/
.
Nota:
Para obtener más ejemplos e información sobre las estrategias de nomenclatura de ramas, consulte Adopción de una estrategia de bifurcación de Git.
Preparación
- Necesitará el comando de Control de versiones de Team Foundation (
tf.exe
). - Necesitará la dirección URL de la cuenta o colección, el nombre del proyecto y el nombre del repositorio. Para este ejemplo, usaremos
https://fabrikam-fiber.visualstudio.com
,FabrikamProject
yFabrikamRepo
.
Nota:
El comando tf.exe
se instala de forma predeterminada con Visual Studio.
Puede acceder a él a través del Símbolo del sistema para desarrolladores.
Para obtener opciones adicionales, descargue Team Explorer.
Aplicación de permisos
Ejecute los comandos siguientes en el Símbolo del sistema para desarrolladores, en Inicio>Visual Studio>Símbolo del sistema para desarrolladores. Cada comando está precedido de una explicación de lo que hace. Si no tiene un token de acceso personal almacenado en caché (por ejemplo, al iniciar sesión en el portal web de Azure DevOps Services), se le pedirá que inicie sesión.
En primer lugar, bloquee el permiso CreateBranch en la raíz del repositorio para los colaboradores del proyecto.
tf git permission /deny:CreateBranch /group:[FabrikamProject]\Contributors /collection:https://dev.azure.com/fabrikam-fiber/ /teamproject:FabrikamProject /repository:FabrikamRepo
Después, permita a los colaboradores crear ramas en feature
y users
.
tf git permission /allow:CreateBranch /group:[FabrikamProject]\Contributors /collection:https://dev.azure.com/fabrikam-fiber/ /teamproject:FabrikamProject /repository:FabrikamRepo /branch:feature
tf git permission /allow:CreateBranch /group:[FabrikamProject]\Contributors /collection:https://dev.azure.com/fabrikam-fiber/ /teamproject:FabrikamProject /repository:FabrikamRepo /branch:users
Permita a los administradores crear ramas en release
.
tf git permission /allow:CreateBranch /group:"[FabrikamProject]\Project Administrators" /collection:https://dev.azure.com/fabrikam-fiber/ /teamproject:FabrikamProject /repository:FabrikamRepo /branch:release
Por último, permita a los administradores crear una rama denominada main
(por si en algún momento se elimina accidentalmente).
tf git permission /allow:CreateBranch /group:"[FabrikamProject]\Project Administrators" /collection:https://dev.azure.com/fabrikam-fiber/ /teamproject:FabrikamProject /repository:FabrikamRepo /branch:main
Nota:
Para obtener más información, consulte tf git permission. También puede acceder a la ayuda de estos comandos desde la línea de comandos mediante la ejecución de tf git /?
y tf git permission /?
.
Cambio del nombre de las ramas antiguas
Abra el repositorio en la Web y seleccione la vista Ramas.
Busque la rama existente. Si no la ve, es posible que tenga que buscar en la pestaña Todo.
Seleccione el menú contextual (el botón
...
) y elija Nueva rama.Escriba el nuevo nombre de la rama, por ejemplo, users/frank/readme-fix. Seleccione Crear rama.
Elija el icono de papelera de color rojo situado junto al nombre de la rama antigua para eliminarla.
Nota:
No se migrarán los permisos personalizados ni las directivas de rama que haya configurado.