Comment définir les valeurs par défaut pour le client perforce specs
-
13-09-2020 - |
Question
Je suis en train de découvrir comment modifier la configuration par défaut du Client Spec options et de présenter des options.
set P4CLIENT=my_new_client_1
p4 client
Donne-moi la spécification suivante par défaut-spec:
Client: my_new_client_1
...
Options: noallwrite noclobber nocompress unlocked nomodtime normdir
SubmitOptions: submitunchanged
...
Maintenant sur ma machine, je veux toujours utiliser revertunchanged
, rmdir
par exemple, mais il semble que j'ai besoin de vous rappeler de le définir manuellement à chaque fois que je créer un nouveau client.
Est-il un moyen pour y parvenir?p4 ensemble ne semble affecter que les choses qui peuvent être définies par des variables d'environnement.
La solution
Vous ne pouvez pas modifier le modèle de spécification du client par défaut (sauf si vous êtes l'administrateur du système Perforce), mais vous pouvez configurer et utiliser votre propre modèle.Vous créeriez d'abord un client factice avec une spécification client qui a les valeurs souhaitées:
Client: my_template_client
...
Options: noallwrite noclobber nocompress unlocked nomodtime rmdir
SubmitOptions: revertunchanged
...
Ensuite, vous devez simplement spécifier que le client factice doit être utilisé comme modèle lors de la création de nouveaux clients:
p4 client -t my_template_client my_new_client_1
Autres conseils
La première réponse ici était incorrecte:
Vous pouvez créer un ClientPec par défaut dans Perforce à l'aide de déclencheurs.
Essentiellement, vous créez un script qui fonctionne sur le serveur et fonctionne chaque fois que quelqu'un est une forme de la forme du client. Ce script devrait vérifier si le ClientPec existe déjà, puis substituez une "défaillance" sensée si elle ne le fait pas (s'il s'agit d'un nouveau clientPEC).
Notez que cela fonctionne bien et bien, et il est même dans le Guide P4 Sysadmin (l'exemple exact que vous recherchez est là!) Mais cela peut être un peu difficile à déboguer, car les déclencheurs fonctionnent sur le serveur, pas sur le client!
manuel: http://www.perforce.com/perforce/r10. 1 / Manuels / P4SAG / 06_SCRIPTING.HTML
exemple spécifique exemple: http://www.perforce.com/perforce/ R10.1 / Manuels / P4SAG / 06_SCRIPTING.HTML # 1057213
Le Serveur Perforce Package de Déploiement (SDP), une référence de mise en œuvre de meilleures pratiques pour l'exploitation d'une Perforce Hélice serveur de Base, comprend des exemples de déclencheurs pour exactement cet effet.Voir:
- SetWsOptions.py - https://swarm.workshop.perforce.com/projects/perforce-software-sdp/files/main/Server/Unix/p4/common/bin/triggers/SetWsOptions.py
- SetWsOptionsAndView.py - https://swarm.workshop.perforce.com/projects/perforce-software-sdp/files/main/Server/Unix/p4/common/bin/triggers/SetWsOptionsAndView.py
À l'aide de la p4 client -t <template_client>
est utile et c'est quelque chose d'un utilisateur normal ne peut faire, et a un P4V (graphical user interface) de l'équivalent.Seulement Perforce des super-utilisateurs peut mess avec des déclencheurs.
Il y a une autre astuce pour un super utilisateur pour être pris en compte:Ils peuvent désigner un client spec pour être utilisé comme un défaut, si l'utilisateur ne spécifie pas l'un avec -t <template_client>
.Qui peut être fait par le réglage de la configurables de modèle.client.Voir: https://www.perforce.com/manuals/cmdref/Content/CmdRef/configurables.configurables.html#template.client
Une autre suggestion:Je suggère de changer la valeur par défaut de submitunchanged
pour leaveunchanged
plutôt que de revertunchanged
(comme dans l'exemple de déclencheurs ci-dessus).À l'aide de leaveunchanged
est mieux parce que, si vous voulez que le fichier est extrait, à l'aide de leaveunchanged
plutôt que de revertunchanged
vous évite d'avoir à naviguer vers le fichier pour le consulter à nouveau.C'est une petite chose, mais optimal pour aller avec leaveunchanged.Si vous ne voulez revenir le fichier modifié, il est plus facile de revenir qu'à la caisse de nouveau qui pourrait avoir besoin de plus de la navigation ou de frappe.