Saltar al contenido principal

Configuración para pruebas con Plastic SCM

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Al modificar el archivo segment_plastic.go, es posible que necesites probar tus cambios contra una instancia real de Plastic SCM. Este documento te pondrá al día con Plastic SCM.

En el documento de contribución hay una sección sobre contenedores de desarrollo y codespaces. También puedes configurar Plastic SCM dentro de estos entornos.

Configuración del servidor

Aquí encontrarás las instrucciones oficiales de configuración. Te lo resumo brevemente:

Instalación en Debian o en dev-container

Primero agrega el repositorio:

sudo apt-get update
sudo apt-get install -y apt-transport-https
wget -qO - https://www.plasticscm.com/plasticrepo/stable/debian/Release.key | \
gpg --dearmor | sudo tee /usr/share/keyrings/plasticscm-stable.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/plasticscm-stable.gpg] \
https://www.plasticscm.com/plasticrepo/stable/debian ./" | \
sudo tee /etc/apt/sources.list.d/plasticscm-stable.list
sudo apt-get update

Luego instala el servidor: esto podría generar un error al final de la configuración consulta más abajo

sudo apt-get install -y plasticscm-server-core

Es posible que aparezca un error durante la configuración del paquete instalado. En ese caso, el servidor no se registró como servicio. ¡Ignóralo!

Configuración del servidor

La configuración del servidor se realiza mediante:

sudo /opt/plasticscm5/server/plasticd configure \
--language=en \
--workingmode=NameWorkingMode \
--port=8087 \
--sslport=8088

¡Felicidades! Tu servidor está configurado. Más detalles en las instrucciones oficiales de configuración.

Ejecutar el servidor

Si la instalación fue exitosa, se registró correctamente como servicio y puede iniciarse con:

sudo service plasticd start

Si no, debes iniciarlo manualmente (por ejemplo dentro del dev-container):

sudo /opt/plasticscm5/server/plasticd start

Esto bloqueará la terminal actual hasta que finalice el proceso del servidor. Quizás necesites abrir otra terminal para continuar.

Tu servidor de Plastic SCM debería estar en ejecución ahora.

Configuración del cliente

Plastic SCM incluye, al igual que git, una CLI (+ interfaz de usuario opcional)

Instalación en Debian o en dev-container

Pasos para instalar la CLI de Plastic SCM en Debian o en el dev-container:

sudo apt-get install -y plasticscm-client-core

Configuración del cliente

Para conectar el cliente al servidor y configurar una cuenta, ejecuta:

cm configure \
--language=en \
--workingmode=NameWorkingMode \
--server=localhost \
--port=8087

¡Felicidades! Tu cliente ahora debería estar conectado al servidor. Más detalles en las instrucciones oficiales de configuración.

Puedes verificar el funcionamiento y mostrar información de licencia con:

cm li

Realizando pruebas

¡Llegó la parte divertida! El servidor crea automáticamente un repositorio default con la rama /main.

El comando CLI de Plastic SCM es: cm

Si necesitas explorar sus funcionalidades, ejecuta:

cm showcommands --all

Crear un área de trabajo local

Necesitas un área de trabajo local para usar Plastic:

cd ~
mkdir dev
cd dev
cm wk create workspace workspace rep:default
cd workspace
cm status

Agregar archivos

Comienza creando archivos locales privados

echo "test" > myfile.txt
cm status --all

Agrega el archivo a tus cambios locales

cm add myfile.txt
cm status

Nota para pruebas: Tanto los archivos Private como Added deben contabilizarse en la propiedad Added del segmento plastic.

Confirmar cambios

Después de añadir, modificar, mover o eliminar archivos localmente, querrás confirmarlos para crear un nuevo conjunto de cambios. Ejecuta este comando para confirmar todos los cambios locales:

cm status | cm ci . -c "my first commit"

Deshacer cambios locales

Si no quieres o no puedes confirmar tus cambios locales, existe un comando para deshacer. Esto revertirá todos los cambios locales:

cm status | cm undo .

Modificar, mover o eliminar archivos

Todas estas acciones se realizan a nivel de archivos. Puedes ejecutar cm status para ver cómo Plastic rastrea tus acciones. Usa el método de confirmación descrito anteriormente para confirmar tus cambios.

Nota para pruebas: Todos estos cambios deben reflejarse en la propiedad correspondiente (Modified, Moved, Deleted) del segmento plastic.

Ramificación

Anteriormente se describieron los conceptos básicos del cliente de Plastic SCM. Pero probablemente querrás profundizar usando ramas, etiquetas y fusiones.

Crear una nueva rama

Para crear una nueva rama basada en el último conjunto de cambios de la rama /main ejecuta:

cm br /main/new-branch

Pista: Para listar todas las ramas usa:

cm find branches

Asignar una etiqueta al conjunto de cambios actual

Tu espacio de trabajo siempre reflejará un conjunto de cambios específico (ver cm status). Puedes asignar una etiqueta a ese conjunto para navegación rápida o documentación:

cm label mk "BL0001"

Pista: Para listar todas las etiquetas usa:

cm find labels

Cambiar tu espacio de trabajo a una rama

Para cambiar a una rama usa:

cm switch /main/new-branch
cm status

Nota para pruebas: El nombre de la rama debe reflejarse en la propiedad Selector del segmento plastic

Cambiar a un conjunto de cambios

Cada confirmación recibe un número único de conjunto de cambios. Puedes cambiar a ellos mediante:

cm switch cs:1

Nota para pruebas: El conjunto de cambios debe reflejarse en la propiedad Selector del segmento plastic

Cambiar a una etiqueta

También puedes cambiar a una etiqueta mediante:

cm switch BL00001

Nota para pruebas: La etiqueta debe reflejarse en la propiedad Selector del segmento plastic

Fusionar una rama

Para fusionar una rama, primero debes cambiar a la rama destino de la fusión. Luego puedes fusionar otra rama mediante:

cm switch /main
cm merge /main/new-branch --merge
cm status

Nota: ¡Esto solo preparará la fusión localmente! Tendrás que confirmar los cambios para completarla.

Nota para pruebas: Una fusión pendiente debe reflejarse en la propiedad MergePending del segmento plastic

Fusión selectiva (cherry-pick)

Mientras la fusión anterior incorpora todos los cambios de una rama (y sus ancestros), existe una fusión selectiva que incorpora solo los cambios de un único conjunto de cambios:

cm merge cs:8 --merge --cherrypicking

Nota: ¡Esto solo preparará la fusión localmente! Tendrás que confirmar los cambios para completarla.

Nota para pruebas: Una fusión selectiva pendiente debe reflejarse en la propiedad MergePending del segmento plastic

Conflictos de fusión

Existen múltiples causas para conflictos durante las fusiones:

Evil Twin (Gemelo malvado)

Ocurre cuando se fusionan dos archivos con el mismo nombre añadidos tanto en la rama origen como en la destino.

cm br mk /main/sub-branch
cm switch /main/sub-branch
echo "1" > twin.txt
cm add twin.txt
cm ci twin.txt

cm switch /main
echo "2" > twin.txt
cm add twin.txt
cm ci twin.txt

cm merge /main/sub-branch --merge

Nota: Esto te pedirá resolver el conflicto directamente.

Cambios en ambos lados

Ocurre cuando se fusiona un archivo modificado tanto en la rama origen como en la destino.

cm switch /main
echo "base" > file.txt
cm add file.txt
cm ci file.txt

cm br mk /main/test

echo "on main" > file.txt
cm ci file.txt

cm switch /main/test
echo "on test" > file.txt
cm ci file.txt

cm switch /main
cm merge /main/test --merge

Nota: esto intentará abrir gtkmergetool, lo cual fallará dentro del contenedor de desarrollo.

Archivo modificado vs. eliminado

Esto sucede cuando se realiza una fusión en la que un archivo fue modificado en un lado y eliminado en el otro lado de la fusión.

cm switch /main
echo "base" > deleteme.txt
cm add deleteme.txt
cm ci deleteme.txt

cm br mk /main/del

rm deleteme.txt
cm ci --all

cm switch /main/del
echo "on del" > deleteme.txt
cm ci deleteme.txt

cm switch /main
cm merge /main/del --merge

Nota: Esto te pedirá que resuelvas directamente el conflicto de fusión.