Una de las características más interesantes de Perforce es la posibilidad de crear ramas. Las ramas son muy sencillas de crear y también resulta muy fácil mover cambios entre distintas ramas (como se verá más adelante). Las ramas también nos permiten realizar trabajos muy experimentales dentro de un entorno de “sandbox”, sin necesidad de tener que preocuparnos por las colisiones con otros usuarios o por desestabilizar el árbol principal. Además, las ramas proporcionan el aislamiento necesario frente a los errores que se cometen cuando se aprende a manejar el sistema Perforce. Vistas estas ventajas es lógico que cada proyecto disponga de su propia rama y en FreeBSD recomendamos encarecidamente este esquema. También se recomienda la aplicación frecuente de los cambios realizados.
El repositorio Perforce (conocido
como el “depósito”, o “depot” en
la jerga de Perforce)
es un único árbol plano. Se accede a cada fichero a
través de una
sencilla ruta bajo el directorio //depot
, tanto si se trata de un
fichero de nueva creación como si proviene de una
ramificación.
Esto supone una gran diferencia con respecto a sistemas como CVS,
donde cada rama se encuentra en la misma ruta que su rama padre.
En Perforce el servidor mantiene las
relaciones entre los ficheros padre e hijo, pero los
ficheros en sí están bajo sus propias rutas.
El primer para para crear una rama consiste en crear una
especificación de rama. Es similar a la especificación
de un cliente,
pero se crea mediante la orden p4 branch
nombre_de_rama
.
Veamos los campos más importantes:
Branch
El nombre de la rama. Puede ser cualquier nombre, pero
debe ser único en el repositorio. La convención
que se usa en FreeBSD es
nombre_de_usuario
_nombre_del_proyecto
.
Description
Puede poner aquí un texto simple que describa la rama.
View
Esto es la asociación de la rama. En lugar de asociar desde el “depósito” hacia la máquina local como una asociación de cliente, se crea una asociación entre la rama padre y la rama hija dentro del “depósito”. Por ejemplo, puede querer crear una rama del proyecto smpng. La asociación resultaría en algo parecido a esto:
//depot/projects/smpng/... //depot/projects/mi-super-smpng/...
O puede crear una rama totalmente nueva a partir de las fuentes de FreeBSD:
//depot/vendor/freebsd/... //depot/projects/mi-nuevo-proyecto/...
Esto asociará el HEAD del árbol de FreeBSD a su nueva rama.
La creación de la especificación de rama únicamente graba la especificación en sí misma dentro del servidor. No modifica el “depósito” ni cambia ningún fichero. El directorio que se declara en la rama permanece vacío en el servidor hasta que se comience a llenar.
Para rellenar la rama primero debemos editar el cliente con
la orden p4 client
y asegurarnos de que el
directorio de rama está asociado en el cliente. Puede ser
necesario añadir una línea View
como esta:
//depot/projects/mi-nuevo-proyecto/... //micliente
/mi-nuevo-proyecto/...
El siguiente paso consiste en ejecutar p4
integrate
, como se describe en la siguiente
sección.
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Si tiene dudas sobre FreeBSD consulte la
documentación antes de escribir a la lista
<questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a
<doc@FreeBSD.org>.