Los desarrolladores del proyecto OpenBSD han publicado la versión 0.80 del sistema de control de versiones Got (Game of Trees), en el que el enfoque principal está en la simplicidad de diseño y uso. Para almacenar los datos versionados, Got utiliza un repositorio compatible con el formato de disco de los repositorios de Git, lo que permite trabajar con el repositorio utilizando herramientas de Got y Git. Por ejemplo, se pueden llevar a cabo trabajos con Git que no estén implementados en Got. El código se distribuye bajo la licencia libre ISC.
El proyecto tiene como objetivo principal apoyar el desarrollo de OpenBSD, teniendo en cuenta la especificidad del proyecto. Entre otras cosas, en Got se aplican las reglas de seguridad adoptadas en OpenBSD (como la separación de privilegios y el uso de las llamadas pledge y unveil) y el estilo de escritura de código. La herramienta está diseñada para un proceso de desarrollo con un repositorio centralizado y ramas locales para los desarrolladores, acceso externo por SSH y revisión de cambios por correo electrónico.
Para la gestión de versiones, se ofrece la utilidad got con un conjunto de comandos familiar. Para simplificar el trabajo, la utilidad admite solo el conjunto mínimo de comandos y opciones necesarias para llevar a cabo las operaciones básicas sin complicaciones adicionales. Para operaciones avanzadas, se sugiere usar el git habitual. Las operaciones de gestión del repositorio se han trasladado a la utilidad gotadmin, que realiza tareas como la inicialización del repositorio, el empaquetado de índices y la limpieza de datos. Para navegar por los datos en el repositorio, se ofrece la interfaz web gotwebd y la utilidad tog para la visualización interactiva del contenido del repositorio desde la línea de comandos.
Entre los cambios agregados:
- En el proceso del servidor gotd, que proporciona acceso de red al repositorio, se ha implementado la posibilidad de añadir reglas para autorizar operaciones de escritura y lectura vinculadas a repositorios específicos.
- Se han añadido nuevos procesos 'listen' y 'session' en gotd para rastrear las solicitudes al socket UNIX y gestionar las sesiones. Las operaciones de autenticación también se han trasladado a un proceso hijo separado.
- La aislamiento del proceso en segundo plano gotd ha sido trasladado de chroot al uso de la llamada del sistema unveil. Se eliminó la restricción de conexión a gotd para los usuarios sólo del grupo gotsh.
- En gotd se ha implementado un límite en el número de conexiones vinculado al uid.
- Se han añadido configuraciones en gotd.conf para gestionar conexiones, y el parámetro unix_socket' ha sido reemplazado por 'listen on'.
- El acceso a la información mostrada al ejecutar ‘gotctl info’ ahora se proporciona solo al usuario root.
- Se ha suspendido el desarrollo de la envoltura CGI sobre got — gotweb, para la cual se debe utilizar en su lugar la implementación FastCGI de gotwebd, cuyas capacidades se han ampliado significativamente. Por ejemplo, se ha añadido un motor de plantillas para simplificar el cambio de diseño de las páginas, una fuente RSS para seguir las etiquetas, y se ha mejorado la visualización de blobs y listas de commits.
- En los comandos got log, got diff y tog diff se ha implementado soporte para salida en formato diffstat.
- Se ha reducido el consumo de memoria al limitar el número de etiquetas almacenadas en la caché de objetos.
- En got patch se ha implementado la eliminación de archivos binarios.
Fuente: opennet.ru
