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
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
- Pestaña Distribution → New Link.
- Source Repository: el repositorio del que provienen los archivos.
- Target Repository: el repositorio de destino (el origen elegido se retira de la lista; origen y destino no pueden ser el mismo).
- Path Patterns: un patrón por línea (p. ej.
Plugins/MyPlugin/,Content/SharedAssets/). Se requiere al menos uno. - Confirme con Create Link.
Un vínculo que ya existe entre los mismos dos repositorios se rechaza (conflicto). Cada fila muestra
source → cible, sus patrones, quién lo creó y la fecha de la última publicación.
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
Tres acciones sobre cada vínculo:
- Show pending files (icono de archivo): lista los archivos que difieren, marcados como new, modified o locked, con su revisión.
- Publish history (reloj): las 50 últimas publicaciones (cuántos actualizados / omitidos, quién, cuándo).
- Publish (enviar): ejecuta la copia. Un aviso resume «X archivos de origen encontrados, Y actualizados, Z omitidos (bloqueados), W sin cambios». Deshabilitado si el vínculo está inactivo.
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).
También puede activar / desactivar o eliminar un vínculo.
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).
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.