Ir al contenido

Git

El plugin Git lee lo que el repositorio sabe de la raíz. Escribe la etiqueta que pide eidos version record --tag, el git mv o git rm detrás de un renombrado o borrado, el commit, el pull y la publicación que una persona hace en Source control y, solo donde los activas en tus ajustes privados, una recuperación automática, un guardado automático y su publicación. Activo por defecto donde la raíz está dentro de un repositorio, desactivado fuera de uno.

  • File history, una vista en la barra lateral auxiliar: los commits que tocaron el Blueprint (el plano) abierto, del más reciente al más antiguo, siguiendo los renombrados, cada uno con un botón Diff que abre las dos versiones en el visor de esta máquina.
  • Source control, una actividad en la barra de actividad con el recuento de cambios en su icono: qué cambió bajo la raíz (git status solo sobre la raíz), cada ruta con su marca y una casilla marcada por defecto, un mensaje y Commit, que prepara y hace commit de las rutas marcadas y nada más (git add -A -- <paths>, después git commit -m <message> -- <paths>). Un renombrado hace commit también de la ruta de la que vino, y un borrado ya preparado (la página borra con git rm) se incluye tal como está. Las negativas de git se muestran tal como git las dijo. Los últimos 50 commits del repositorio están debajo, y un ojo en una fila abre la página del archivo.
  • Summarize, junto a Commit cuando Plato está activo, le pide a Plato un mensaje de una línea para los cambios marcados y lo pone en la caja para editarlo o hacer commit tal cual. Lo que se le pide a Plato lo redacta la raíz, en Commit messages en la página de Plato.
  • Fetch, bajo la cabecera de Source control cuando la rama tiene un remoto, lee lo que tiene el remoto sin cambiar nada bajo la raíz, y la fila junto a él dice cuántos commits hay para traer del upstream (“2 commits to pull from origin/main”). Pull, presente mientras haya commits para traer, hace fetch y después lleva la rama hasta su upstream solo cuando es un fast-forward: nunca crea un commit de merge ni hace rebase, y cuando tu rama y el upstream han avanzado cada uno por su lado, dice lo que dijo git y deja el resto a tu propia herramienta.
  • Publish, en la cabecera de Source control cuando la rama tiene un remoto, hace fetch y después push de la rama a él (a su upstream, o a origin fijando el upstream la primera vez), mostrando cuántos commits no ha visto el remoto. Mientras el upstream tenga commits que tu rama no tiene, Publish está desactivado y la fila bajo la cabecera dice que los traigas primero.
  • Auto save, un ajuste privado en la página del plugin, hace commit de cada cambio bajo la raíz cada 5, 15, 30 o 60 minutos, con el resumen de Plato como mensaje cuando Plato responde y una simple lista de los archivos cuando no; con publish activo, se hace push de cada uno en cuanto se crea, después de un fetch, y se deja sin push mientras haya commits para traer, diciendo cuántos. El último se muestra arriba en Source control. Un commit o un push que espera una clave de firma o un remoto se detiene al cabo de un rato y lo dice, y la página nunca lo espera.
  • Auto fetch, un ajuste privado en la página del plugin, hace fetch cada 5, 15, 30 o 60 minutos, la primera vez poco después de arrancar el servidor, para que la cuenta de commits por traer siga al día. Desactivado por defecto. Un fetch nunca se detiene a pedir una contraseña, y en macOS y Linux tampoco la frase de paso de una clave: un remoto que necesita una que tu gestor de credenciales o tu agente ssh no da falla con las palabras de git.
  • Un comentario cuando nadie actúa como un usuario listado se firma con la identidad de git, emparejada con un usuario listado cuando uno tiene ese email. Comments →
  • Un renombrado o borrado de un archivo bajo seguimiento, desde la página o la terminal, es git mv o git rm, así que el historial sigue. Una ruta sin seguimiento, una raíz fuera de un repositorio o un git que se niega devuelve la operación y sigue un renombrado o borrado normal.

Un documento de nivel superior, el documento del Framework (el marco) y un lienzo no tienen vista de historial. No hay blame, ni cambio de rama, ni merge ni rebase: un pull solo avanza en fast-forward.

  • .eidos/plugins/git/local.yaml: los ajustes de una persona, fijados en la página del plugin bajo privado y nunca en commit: diff_viewer, un comando con {a} y {b} para los dos archivos (code --diff {a} {b}); auto_save, off o 5, 15, 30, 60 minutos; publish, si se hace push de cada guardado automático; auto_fetch, off o 5, 15, 30, 60 minutos. Un guardado automático nunca empieza en un clon porque otra persona activó el suyo.

El plugin no tiene ajustes compartidos más allá de su interruptor y no guarda ningún otro archivo.

No hay eidos git: el repositorio se lee con el propio git. Lo que el plugin aporta a la CLI son las versiones registradas.

Ventana de terminal
eidos version record 1.0.0 # a row naming HEAD
eidos version record 1.0.0 --commit a1b2c3d --tag # names that commit and tags it blueprints/1.0.0
git log --follow -- Blueprints/specs/login.md # the commits that touched a blueprint
git show a1b2c3d:Blueprints/specs/login.md # the blueprint as it was

Con el plugin desactivado, registrar lo dice y eidos version lista lo registrado. eidos version →

Nada propio. Desactivado, fuera de un repositorio o sin un binario git, el plugin responde vacío, no lanza nada y su página dice cuál de los tres casos es.