Réponse actualisée : Cela a été quelque peu délicat dans le passé, car il n'y avait pas de moyen intégré d'exclure un répertoire d'une commande Perforce. Depuis 2012, cela a changé. Vous pouvez consulter un bon article de perforce pour ce problème .
À partir de 2012.1, le P4IGNORE
peut être définie pour désigner un fichier à utiliser pour exclure des fichiers de Perforce. Le serveur Perforce (p4d) et le client (p4, P4V) doivent tous deux avoir la version 2012.1 ou supérieure. P4IGNORE
Le but de l'outil est d'ignorer les fichiers lors de l'ajout de nouveaux fichiers au dépôt et de la réconciliation des espaces de travail. Comme des fonctionnalités comparables dans d'autres systèmes de contrôle de version, P4IGNORE ne peut pas être utilisé pour ignorer des fichiers déjà sous le contrôle du dépôt.
P4Eclipse gère .p4ignore
selon ses propres termes. (voir le manuel concernant ce point ici )
Utilisation de vues client pour exclure des fichiers et des répertoires :
La méthode traditionnelle pour exclure des fichiers et des répertoires dans Perforce consiste à utiliser des mappages de clients d'exclusion. Consultez la référence de la commande Views pour une documentation complète. Exemple de vue :
Voir :
//depot/... //test_ws/depot/...
-//depot/dir/etc/... //test_ws/depot/dir/etc/...
Cette vue empêchera les fichiers dans dir/etc d'être ajoutés au dépôt. Si vous essayez d'exclure le répertoire des requêtes en lecture seule, utilisez la syntaxe client ou relative.
$ p4 files //depot/dir/etc/...
//depot/dir/etc/foo#1 - add change 1186 (text)
//depot/dir/etc/bar#1 - add change 1186 (text)
$ p4 files //test_ws/dir/etc/...
//test_ws/test_ignore/ignoredir/... - file(s) not in client view.
$ cd dir/etc
$ p4 files ...
... - file(s) not in client view.
Vous pouvez également utiliser des commandes shell pour filtrer votre sortie comme vous le souhaitez.
p4 files //depot/dir/... |
awk -F# '{print $1}' |
grep -v "//depot/dir/etc/" |
p4 -x - fstat
qui lance p4 fstat sur tous les fichiers sous " //depot/dir/
", sauf pour les fichiers sous " //depot/dir/etc/
". Cette exclusion de répertoire est réalisée en listant tous les fichiers, puis en utilisant grep pour supprimer les fichiers qui se trouvent sous le répertoire à exclure. La barre oblique de fin de ligne dans " //depot/dir/etc/
"est nécessaire pour éviter de faire correspondre des répertoires sous " //depot/dir/
"qui commencent par "etc" (par exemple, " //depot/dir/etc2009
").
Note :
La commande awk suppose qu'aucun nom de fichier ne contient le caractère "#". La commande grep peut également lire ses motifs depuis un fichier, ce qui est utile si vous devez exclure plusieurs répertoires. Nous utilisons les drapeaux '-x -' avec la commande p4 pour utiliser l'entrée comme argument de la commande correspondante ; voir les options globales de la ligne de commande Perforce pour plus d'informations.