Aller au contenu principal

Configuration pour les tests Plastic SCM

Traduction Bêta Non Officielle

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.