uVersion
Español
Descargar →

Wiki

Distribución

Copiar archivos (plugins, contenido compartido) de un repositorio origen a un repositorio destino mediante patrones de ruta. Publicación, remapeo, bloqueos omitidos.

Introducción

La distribución copia archivos (un plugin, un paquete de contenido compartido) de un repositorio origen a un repositorio destino, limitándose a patrones de ruta. Crea nuevas revisiones en el destino, de modo que la sincronización incremental habitual propaga el contenido a los clientes. Es la manera de compartir un mismo plugin entre varios proyectos sin copiar y pegar manualmente.

Acceso y roles

Un modelo de acceso distinto al de las demás pestañas La distribución no está protegida como las demás pestañas. Requiere la capacidad manage_rules, que poseen admin y lead en todo el servidor. Un project_admin, que no posee ninguna capacidad, no tiene acceso. Un lead, en cambio, puede vincular cualquier repositorio con cualquier otro.

Crear un vínculo

1. Abrir la pestaña Distribution

La pestaña Distribution está en la fila SERVER: un vínculo conecta dos repositorios, por lo que no depende del repositorio elegido en la fila PROJECT. Haga clic en + New Link, arriba a la derecha: se abre la ventana New Distribution Link.

2. Elegir el origen, el destino y las rutas

Source Repository es el repositorio del que provienen los archivos, Target Repository el de destino: el origen elegido desaparece de la lista de destinos, un vínculo no puede volver sobre sí mismo. Path Patterns toma un patrón por línea (por ejemplo Plugins/MyPlugin/, Content/SharedAssets/), y se requiere al menos uno: sin patrón, no se copiaría nada.

La ventana New Distribution Link: los menús Source Repository y Target Repository, la zona Path Patterns (one per line) rellena con dos patrones, y los botones Cancel y Create Link.

3. Confirmar con Create Link

El vínculo aparece de inmediato en la lista. Un vínculo que ya existe entre los mismos dos repositorios se rechaza (conflicto): edite el existente en lugar de crear un segundo.

Patrones de ruta

Un patrón coincide con una ruta si aparece en cualquier parte de ella (búsqueda de tipo «contiene»). Así, un patrón Plugins/uVersion coincide con DefaultProject/Plugins/uVersion/Source/Foo.cpp sea cual sea el prefijo de proyecto. La barra final no cambia nada.

Publicar

1. Localizar el vínculo y sus acciones

Cada vínculo ocupa una fila de la lista: source → cible, sus patrones en forma de píldoras, quién lo creó y la fecha de la última publicación. Las acciones se agrupan a la derecha de la fila: Show pending files (icono de archivo), Publish history (reloj), Publish, el interruptor que activa o desactiva el vínculo, y la eliminación.

2. Comprobar lo que va a salir

Show pending files despliega, bajo la fila, la lista de los archivos que difieren, con su revisión de origen y un total en el título (Pending Files (N)). Cada uno lleva su estado: new, modified o locked. Si todo está al día, el panel lo indica.

El panel Pending Files desplegado bajo una fila de vínculo: las rutas marcadas como new, modified o locked con su revisión de origen, y encima de la lista el aviso verde dejado por la última publicación.

3. Publicar

El botón Publish ejecuta la copia. Un aviso verde resume «Published: X source files found, Y updated, Z skipped (locked), W unchanged». El botón está deshabilitado mientras el vínculo esté inactivo, y publicar un vínculo inactivo devuelve un error explícito.

Un archivo bloqueado en el destino se omite, no se sobrescribe. Un archivo con contenido idéntico (mismo hash) se cuenta como sin cambios y se omite. La publicación es atómica (una sola transacción).

Publish history (reloj) da luego las 50 últimas publicaciones: cuántos archivos actualizados y omitidos, por quién y cuándo.

Remapeo y revisiones

La ruta se reescribe para el destino: uVersion retira lo que precede al patrón que coincidió y luego añade el prefijo detectado en el destino. Ejemplo: origen DefaultProject/Plugins/uVersion/foo.cpp, patrón Plugins/uVersion, prefijo de destino CineDroneStudio/CineDroneStudio/Plugins/uVersion/foo.cpp. El prefijo de destino se deduce de un archivo existente del destino (gestiona repositorios con o sin subcarpeta de proyecto).

Numeración de revisión Las revisiones distribuidas usan un contador global por encima de la revisión actual del destino, para que la sincronización incremental las recupere. El historial por archivo puede, por tanto, «saltar» (p. ej. rev 1 y luego rev 200): es cosmético. Los chunks se comparten (sin duplicación de datos, solo un incremento de referencia).

Errores frecuentes

«Publish» está en gris

El vínculo está inactivo. Actívelo primero. Publicar un vínculo inactivo devuelve un error explícito.

Un archivo no se actualiza en el destino

O bien está bloqueado en el lado del destino (entonces se omite y se cuenta como «locked»), o bien su contenido ya es idéntico (contado como «unchanged»). Consulte el resumen de publicación y la lista de pending files.

Un project_admin no ve la pestaña

Es intencionado: la distribución requiere manage_rules (admin o lead). Un project_admin no tiene acceso, ni siquiera en sus propios repositorios.