Question

Je suis nouveau à Perforce (mais je suis assez expérimenté avec d'autres systèmes, la plupart du temps SVN).
Maintenant, je suis en train de faire un script des fenêtres simples de chauve-souris de construction qui a besoin de vérifier dans certains résultats de construction (controversés à certains, je sais, mais s'il vous plaît essayer de ne pas tenir compte car il est un autre débat). J'utilise p4 pour cela. Le problème est que je semble qu'il soit:

  • Utilisez le même "client" que sur d'autres machines (l'option -c). Cela aura une « racine », qui ressemble à elle spécifie le chemin absolu où la copie de travail va localement. Semble plutôt « wtf? » pour moi ...
  • créer interactivement un « client » pour chaque machine (correspondant à la configuration du système de fichiers local). L'interactivité est évidemment un deal-breaker pour un script automatisé.

Puis-je en quelque sorte il suffit d'utiliser le répertoire courant, comme je peux avec SVN?
Y at-il une meilleure option?

Était-ce utile?

La solution

Créer un espace de travail avec une racine de null et la carte du dépôt à ce client. Voici une spécification client exemple:

Client: client_name

Update: 2010/10/20 14:18:23

Access: 2010/10/20 14:20:53

Owner:  raven

Host:   ravens-pc

Description:
    Created by raven.

Root:   null

Options:    noallwrite noclobber nocompress unlocked modtime rmdir

SubmitOptions:  leaveunchanged

LineEnd:    local

View:
    //depot/... //client_name/...

La première chose que votre script doit faire est de passer à ce client en définissant la P4CLIENT de $ variable d'environnement $:

p4 set p4client=client_name

script va maintenant travailler dans le cadre de ce client. En vertu du fait que vous avez spécifié une racine de null, une synchronisation que vous faites sera par rapport au répertoire courant . Donc, si vous synchronisez // dépôt / foo / ... tandis que dans C: \ bar, vos fichiers apparaîtront dans C:. \ Bar \ foo

La dernière chose que votre script doit faire est clair que la variable P4CLIENT pour restaurer le système à la spécification du client par défaut:

p4 set p4client=

Autres conseils

Je vous suggère de créer un nouveau client chaque fois avec un modèle de client. Tout d'abord, créer manuellement un client en vue que vous le souhaitez dans les clients de construction réels. Ne spécifiez pas le propriétaire, le client ou les champs racine. Ensuite, chaque fois que vous voulez un nouveau client l'ont procédez comme suit:

p4 client -t my-client-template-name -o my-unique-client-name >clientspec.txt
p4 client -i <clientspec.txt

my-client-template-name est le client que vous avez créé dans la première étape. Bien sûr, quand vous avez terminé assurez-vous de faire ce qui suit:

p4 client -d my-unique-client-name

Vous pouvez créer de manière interactive un client sans éditeur en utilisant p4 client -i:

  

Le drapeau -i provoque une spécification du client doit être lu à partir de la     entrée standard. L'éditeur de l'utilisateur n'a pas invoqué

Dans votre builtscript vous auriez un modèle pour la vue du client, que vous modifiez à la volée pour la machine de construction en cours et passer à p4 client -i.

Apparemment, vous pouvez pré-créer un espace de travail client avec un répertoire racine de « null », ce qui entraînera Perforce à utiliser le répertoire de travail actuel en tant que root.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top