Un re­po­si­to­rio almacena datos que pueden re­cu­pe­rar­se y mo­di­fi­car­se po­s­te­rio­r­me­n­te. Existen distintos tipos de re­po­si­to­rios, que pueden uti­li­zar­se para el control de versiones, metadatos y otros fines.

¿Qué es un re­po­si­to­rio?

“Re­po­si­to­rio” significa “al­ma­ce­na­mie­n­to” y procede de la palabra latina re­po­si­to­rium. En te­c­no­lo­gía de software, un re­po­si­to­rio es un archivo digital en el que se pueden almacenar y compartir datos, do­cu­me­n­tos, avances de de­sa­rro­llo, metadatos y programas. El control de versiones es otra ca­ra­c­te­rí­s­ti­ca de los re­po­si­to­rios. De­pe­n­die­n­do del uso previsto, esta te­c­no­lo­gía permite a grandes equipos o co­mu­ni­da­des que trabajan en todo el mundo colaborar en proyectos co­m­pa­r­ti­dos. Los tipos de re­po­si­to­rios di­s­po­ni­bles difieren en cuanto a su enfoque y es­tru­c­tu­ra. Los re­po­si­to­rios más conocidos son GitHub y Google Re­po­si­to­ry.

No­r­ma­l­me­n­te, la base de un re­po­si­to­rio es una base de datos, que, según los re­qui­si­tos, puede in­s­ta­lar­se en un disco duro local o en un servidor, o también puede di­s­tri­bui­r­se entre numerosos se­r­vi­do­res de una CDN (red de di­s­tri­bu­ción de co­n­te­ni­dos). Se crean catálogos de datos que contienen las formas y re­pre­se­n­ta­cio­nes de varios objetos al­ma­ce­na­dos y pro­po­r­cio­nan in­fo­r­ma­ción sobre su relación entre sí. Toda esta in­fo­r­ma­ción se almacena en forma de metadatos y se puede buscar, recuperar, modificar y adaptar en cualquier momento con los permisos adecuados.

¿Cómo se es­tru­c­tu­ra un re­po­si­to­rio?

Para ilustrar cómo se es­tru­c­tu­ra un re­po­si­to­rio, puedes vi­sua­li­zar un árbol. En el de­sa­rro­llo de software, puedes verlo reflejado incluso en la te­r­mi­no­lo­gía. Aquí se distingue entre el tronco, que contiene la versión actual de un proyecto y el código fuente, y las ramas, donde se almacenan las mo­di­fi­ca­cio­nes. Los cambios se vuelven a añadir po­s­te­rio­r­me­n­te al tronco para que todos los pa­r­ti­ci­pa­n­tes tengan acceso a ellos. El al­ma­ce­na­mie­n­to se realiza mediante etiquetas.

¿Qué tipos de re­po­si­to­rios hay?

No todos los re­po­si­to­rios son iguales. Se di­fe­re­n­cian por sus tipos de archivo. Existen distintos enfoques. Los más conocidos son los si­guie­n­tes.

Re­po­si­to­rio de gestión de versiones

En el sistema de gestión de versiones, el objetivo es almacenar los datos de forma clara, mientras se elaboran ló­gi­ca­me­n­te los pasos y las re­la­cio­nes en un archivo común. Los archivos de código fuente y otros datos se almacenan y archivan. Los datos pueden copiarse del re­po­si­to­rio a un disco duro local para que los de­sa­rro­lla­do­res sigan tra­ba­ja­n­do con ellos; proceso que se conoce como “checking out”. A co­n­ti­nua­ción, el de­sa­rro­lla­dor trabaja con los datos locales, rea­li­za­n­do cambios o de­s­ca­r­ta­n­do los cambios an­te­rio­res. Una vez co­m­ple­ta­do el trabajo, el último estado del proyecto se carga de nuevo en el re­po­si­to­rio, lo que se denomina “checking in”. Todos los cambios y co­me­n­ta­rios se registran durante este proceso.

Este enfoque tiene varias ventajas. Por un lado, los usuarios pueden colaborar en un proyecto sin so­bre­s­cri­bir versiones an­te­rio­res. En cambio, todas las ac­tua­li­za­cio­nes de estado se registran, lo que permite regresar a una versión anterior. Un re­po­si­to­rio permite a equipos pequeños y grandes colaborar en el mismo proyecto. Las ac­tua­li­za­cio­nes pueden hacerse si­mu­l­tá­nea­me­n­te sin so­bre­s­cri­bir estados ni perder cambios. Teó­ri­ca­me­n­te, todos los usuarios pueden continuar un proyecto en cualquier estado sin ningún riesgo.

Los sistemas de control de versiones más populares son CVS, GitHub y SVN.

Re­po­si­to­rio de metadatos

Un re­po­si­to­rio de metadatos suele uti­li­zar­se en in­frae­s­tru­c­tu­ras in­fo­r­má­ti­cas muy complejas. Un re­po­si­to­rio de este tipo contiene los datos de todo el sistema, así como in­fo­r­ma­ción sobre el contexto y el entorno de la in­frae­s­tru­c­tu­ra. La ventaja de este tipo de re­po­si­to­rio es que se pueden hacer cambios sin alterar el código fuente ni tener que im­ple­me­n­tar programas adi­cio­na­les. En su lugar, la tabla de la base de datos, que es la base del sistema co­rre­s­po­n­die­n­te, se adapta de forma sencilla. El re­po­si­to­rio de metadatos suele uti­li­zar­se en la in­te­gra­ción de apli­ca­cio­nes em­pre­sa­ria­les (UAI) y el al­ma­ce­na­mie­n­to de datos.

Re­po­si­to­rio de software

Un re­po­si­to­rio de software es es­pe­cia­l­me­n­te im­po­r­ta­n­te para los usuarios de Linux. Un re­po­si­to­rio de software contiene paquetes de apli­ca­cio­nes y los metadatos co­rre­s­po­n­die­n­tes, como ex­pli­ca­cio­nes, ano­ta­cio­nes, de­pe­n­de­n­cias y cambios. La in­s­ta­la­ción y las ac­tua­li­za­cio­nes se realizan mediante un gestor de paquetes. De este modo, los usuarios no tienen que preo­cu­par­se de ac­tua­li­zar sus apli­ca­cio­nes. No­r­ma­l­me­n­te es la comunidad la que pro­po­r­cio­na las ac­tua­li­za­cio­nes y el sistema, el que se actualiza au­to­má­ti­ca­me­n­te. Los usuarios que mantienen los paquetes, conocidos como ma­n­te­ne­do­res de paquetes, suelen pro­po­r­cio­nar los datos ac­tua­li­za­dos y llevar a cabo el ma­n­te­ni­mie­n­to del re­s­pe­c­ti­vo re­po­si­to­rio de software.

Re­po­si­to­rio de se­r­vi­do­res de do­cu­me­n­tos

El término re­po­si­to­rio también se aplica a las pu­bli­ca­cio­nes extensas en red y a los se­r­vi­do­res de do­cu­me­n­tos, al menos en sentido figurado. Aunque algunas ca­ra­c­te­rí­s­ti­cas es­pe­cia­les del principio de re­po­si­to­rio no se aplican una a una, el pro­ce­di­mie­n­to sí se ha adaptado para su uso. Se­r­vi­do­res de do­cu­me­n­tos muy conocidos, como arXiv, publican artículos de biología, in­fo­r­má­ti­ca, ma­te­má­ti­cas, física y es­ta­dí­s­ti­ca. Un experto revisa los nuevos artículos y los aprueba o rechaza. A co­n­ti­nua­ción, los trabajos cie­n­tí­fi­cos pueden estar di­s­po­ni­bles para su descarga. Sin embargo, a di­fe­re­n­cia de un re­po­si­to­rio de control de versiones, no es posible editar los do­cu­me­n­tos.

Re­po­si­to­rio CASE

Un re­po­si­to­rio también se utiliza con fre­cue­n­cia en la in­ge­nie­ría de software asistida por ordenador (CASE). Se utiliza pri­n­ci­pa­l­me­n­te para almacenar datos del proyecto, do­cu­me­n­ta­ción y código fuente.

¿Qué re­po­si­to­rios son más útiles?

Existen numerosos tipos de re­po­si­to­rios para distintos fines. Hay que di­s­ti­n­guir entre las so­lu­cio­nes que son de código abierto y las que se ofrecen con fines co­me­r­cia­les. El re­po­si­to­rio de código abierto más popular es GitHub. Sin embargo, existen varias al­te­r­na­ti­vas a GitHub como Apache Allura, Bazaar, Gitolite, Mercurial o Sou­r­ce­Fo­r­ge. En nuestra Digital Guide en­co­n­tra­rás una co­m­pa­ra­ción entre GitHub y GitLab detallada. Entre los re­po­si­to­rios de software de pago más conocidos están Alie­n­brain, Bitkeeper, IBM Rational Synergy y MySQL Yum.

Que un re­po­si­to­rio sea más o menos adecuado para tu proyecto depende de tus ne­ce­si­da­des y de tu forma de trabajar. Para el trabajo en equipo, un re­po­si­to­rio puede mejorar los procesos y optimizar el flujo de trabajo. Aunque los co­la­bo­ra­do­res accedan a un proyecto y realicen cambios en di­fe­re­n­tes momentos y desde distintos lugares, el tronco siempre está a salvo. Se pueden probar so­lu­cio­nes sin poner en peligro los avances an­te­rio­res. Siempre es una buena idea probar una solución de código abierto antes de comprar una versión comercial.

¿Cómo funciona un re­po­si­to­rio?

Utilizado co­rre­c­ta­me­n­te, un re­po­si­to­rio ofrece varias ventajas. GitHub es un gran ejemplo de ello. Una vez que hayas instalado y co­n­fi­gu­ra­do GitHub, puedes utilizar la intuitiva interfaz de usuario para asignar y procesar tareas. Los cambios listados se realizan mediante los comandos commit y pull. De este modo, un re­s­po­n­sa­ble de equipo puede hacer un se­gui­mie­n­to de los pasos de progreso in­di­vi­dua­les y los miembros pueden seguir el proyecto hasta el más mínimo detalle. Para saber más sobre GitHub, echa un vistazo a nuestro tutorial de Git.

Ir al menú principal