Configuration pour les tests Plastic SCM
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Lorsque vous modifiez le fichier segment_plastic.go, vous devrez peut-être tester vos modifications sur une instance réelle de
Plastic SCM. Ce document vous permettra de vous familiariser avec Plastic SCM.
Le guide de contribution contient une section sur les conteneurs de développement et codespaces. Vous pouvez également configurer Plastic SCM à l'intérieur de ces environnements.
Configuration du serveur
Vous trouverez ici les instructions officielles de configuration. Voici un résumé :
Installation sur Debian ou dans un conteneur de développement
Commencez par ajouter le dépôt :
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
Installez ensuite le serveur : cette opération peut générer une erreur en fin d'installation voir ci-dessous
sudo apt-get install -y plasticscm-server-core
Une erreur peut survenir lors de la configuration du package installé. Dans ce cas, le serveur n'a pas été enregistré en tant que service. Ignorez cette erreur !
Configuration du serveur
La configuration du serveur s'effectue via :
sudo /opt/plasticscm5/server/plasticd configure \
--language=en \
--workingmode=NameWorkingMode \
--port=8087 \
--sslport=8088
Félicitations ! Votre serveur est configuré. Pour plus de détails, consultez les instructions officielles de configuration.
Démarrer le serveur
Si l'installation s'est déroulée sans erreur, le serveur est enregistré comme service et peut être démarré via :
sudo service plasticd start
Sinon, démarrez-le manuellement (par exemple dans le conteneur de développement) :
sudo /opt/plasticscm5/server/plasticd start
Cette opération bloquera le terminal actuel jusqu'à la fin du processus. Ouvrez un autre terminal pour continuer.
Votre serveur Plastic SCM devrait maintenant être démarré.
Configuration du client
Plastic SCM dispose, comme git, d'une interface en ligne de commande (et d'une interface graphique optionnelle).
Installation sur Debian ou dans un conteneur de développement
Voici les étapes pour installer l'interface en ligne de commande de Plastic SCM sur Debian ou dans un conteneur de développement :
sudo apt-get install -y plasticscm-client-core
Configuration du client
Pour connecter le client au serveur et créer un compte, exécutez :
cm configure \
--language=en \
--workingmode=NameWorkingMode \
--server=localhost \
--port=8087
Félicitations ! Votre client devrait maintenant être connecté à votre serveur. Pour en savoir plus, consultez les instructions officielles de configuration.
Vérifiez le bon fonctionnement et affichez les informations de licence via :
cm li
Tests pratiques
Passons aux choses sérieuses ! Le serveur héberge automatiquement un dépôt default avec la branche /main.
La commande CLI de Plastic SCM est : cm
Pour découvrir les fonctionnalités disponibles, exécutez :
cm showcommands --all
Créer un espace de travail local
Vous devez créer un espace de travail local pour utiliser Plastic :
cd ~
mkdir dev
cd dev
cm wk create workspace workspace rep:default
cd workspace
cm status
Ajouter des fichiers
Commencez par créer des fichiers locaux privés
echo "test" > myfile.txt
cm status --all
Ajoutez le fichier à vos modifications locales
cm add myfile.txt
cm status
Indice de test : Les fichiers Private (privés) et Added (ajoutés) doivent tous deux être comptabilisés dans la propriété Added du segment plastic.
Valider les modifications
Après avoir ajouté, modifié, déplacé ou supprimé des fichiers localement, vous devez les valider pour créer un nouveau jeu de modifications. Exécutez cette commande pour valider toutes les modifications locales :
cm status | cm ci . -c "my first commit"
Annuler les modifications locales
Si vous ne souhaitez pas ou ne pouvez pas valider vos modifications locales, utilisez la commande d'annulation. Cette commande annulera toutes les modifications locales :
cm status | cm undo .
Modifier, déplacer ou supprimer des fichiers
Toutes ces actions s'effectuent au niveau des fichiers. Vous pouvez exécuter cm status pour voir le suivi de vos actions par Plastic.
Utilisez la méthode de validation décrite précédemment pour valider vos modifications.
Indice de test : Ces modifications doivent être comptabilisées dans la propriété correspondante (Modified, Moved, Deleted)
du segment plastic.
Gestion des branches
Les bases de l'utilisation du client Plastic SCM sont décrites ci-dessus. Mais vous voudrez probablement approfondir en utilisant des branches ou des étiquettes, et en les fusionnant.
Créer une nouvelle branche
Pour créer une nouvelle branche basée sur le dernier jeu de modifications de la branche /main :
cm br /main/new-branch
Astuce : Pour lister toutes les branches :
cm find branches
Attribuer une étiquette au jeu de modifications actuel
Votre espace de travail reflète toujours un jeu de modifications spécifique (voir cm status). Vous pouvez attribuer une étiquette à ce jeu de modifications pour
une navigation rapide ou à des fins de documentation :
cm label mk "BL0001"
Astuce : Pour lister toutes les étiquettes :
cm find labels
Basculer votre espace de travail vers une branche
Pour basculer vers une branche :
cm switch /main/new-branch
cm status
Indice de test : Le nom de la branche doit apparaître dans la propriété Selector du segment plastic
Basculer vers un jeu de modifications
Chaque validation génère un numéro de jeu de modifications unique. Vous pouvez basculer vers ces jeux via :
cm switch cs:1
Indice de test : Le jeu de modifications doit apparaître dans la propriété Selector du segment plastic
Basculer vers une étiquette
Vous pouvez également basculer vers une étiquette via :
cm switch BL00001
Indice de test : L'étiquette doit apparaître dans la propriété Selector du segment plastic
Fusionner une branche
Pour fusionner une branche, vous devez d'abord basculer vers la branche destination de la fusion. Ensuite :
cm switch /main
cm merge /main/new-branch --merge
cm status
Astuce : Cela prépare uniquement la fusion localement. Vous devrez valider les modifications pour finaliser la fusion !
Indice de test : Une fusion en attente doit apparaître dans la propriété MergePending du segment plastic
Fusion sélective (cherry-pick)
Contrairement à la fusion classique qui intègre tous les changements d'une branche (et de ses parents), la fusion sélective n'intègre que les modifications d'un seul jeu de modifications spécifique :
cm merge cs:8 --merge --cherrypicking
Astuce : Cela prépare uniquement la fusion localement. Vous devrez valider les modifications pour finaliser la fusion !
Indice de test : Une fusion sélective en attente doit apparaître dans la propriété MergePending du segment plastic
Conflits de fusion
Plusieurs situations peuvent provoquer des conflits lors d'une fusion :
Jumeaux conflictuels (Evil Twin)
Se produit lorsqu'un fichier portant le même nom a été ajouté à la fois dans la branche source et la branche destination.
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
Astuce : Vous serez invité à résoudre immédiatement le conflit
Modifications des deux côtés
Se produit lorsqu'un fichier a été modifié à la fois dans la branche source et la branche destination.
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
Conseil : cela tentera d'ouvrir gtkmergetool, ce qui échouera dans le conteneur de développement !
Fichier modifié vs. fichier supprimé
Cela se produit lors d'une fusion où un fichier a été modifié d'un côté et supprimé de l'autre côté de la fusion.
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
Conseil : Cela vous invitera à résoudre directement le conflit de fusion.