Configuración para pruebas con Plastic SCM
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.