J'utilise parfois la fonction 'Réconcilier le travail hors ligne ...' trouvée dans P4V IDE de Perforce pour synchroniser tous les fichiers sur lesquels j'ai travaillé en étant déconnecté du dépôt P4. Il lance une autre fenêtre qui exécute une 'Folder Diff'.
J'ai des fichiers que je ne veux jamais archiver dans le contrôle de code source (comme ceux trouvés dans le dossier bin comme les DLL, la sortie générée par le code, etc.) Existe-t-il un moyen de filtrer ces fichiers / dossiers pour qu'ils n'apparaissent pas comme «nouveaux» qui pourraient être ajoutée. Ils ont tendance à encombrer la liste des fichiers qui m'intéressent réellement. P4 a-t-il l'équivalent de la fonction «ignorer les fichiers» de Subversion?
Réponses:
Depuis la version 2012.1, Perforce prend en charge la
P4IGNORE
variable d'environnement. J'ai mis à jour ma réponse à cette question sur l'ignorance des répertoires en expliquant comment cela fonctionne. Puis j'ai remarqué cette réponse, qui est maintenant superflue je suppose.En supposant que vous ayez un client nommé «CLIENT», un répertoire nommé «foo» (situé à la racine de votre projet), et que vous souhaitiez ignorer tous les fichiers .dll de cette arborescence de répertoires, vous pouvez ajouter les lignes suivantes à la vue de votre espace de travail pour accomplir ce:
La première ligne les supprime du répertoire "foo" et la deuxième ligne les supprime de tous les sous-répertoires. Désormais, lorsque vous "Réconciliez le travail hors ligne ...", tous les fichiers .dll seront déplacés dans les dossiers "Fichiers exclus" au bas de l'affichage des différences de dossier. Ils seront hors de votre chemin, mais peuvent toujours les voir et les manipuler si vous en avez vraiment besoin.
Vous pouvez également le faire d'une autre manière, ce qui réduira votre dossier "Fichiers exclus" à un seul, mais vous ne pourrez manipuler aucun des fichiers qu'il contient car le chemin sera corrompu (mais si vous voulez simplement qu'ils sortent de votre chemin, peu importe).
la source
Reconcile Offline Work
boîte de dialogue. Cela fonctionne si vous l'ouvrez à l'intérieur,Advanced Reconcile...
mais cela ne sert à rien car dans 99,9% du temps, vous n'avez pas besoin ou ne souhaitez pas utiliser la boîte de dialogue avancée.Oui mais.
Perforce version 2012.1 a ajouté une fonctionnalité connue sous le nom de p4ignore , inspirée de Git. Cependant, les développeurs Perforce ont modifié le comportement, sans justification, ce qui rend la fonctionnalité beaucoup moins utile.
Alors que Git prend les règles de tous les
.gitignore
fichiers, Perforce ne sait pas où chercher tant que vous n'avez pas spécifié un nom de fichier dans une variable d'environnementP4IGNORE
. Cette liberté est une malédiction. Vous ne pouvez pas pirater deux référentiels qui utilisent des noms différents pour leurs fichiers ignorés.De plus, la fonction d'ignorer de Perforce ne fonctionne pas correctement. Vous pouvez le configurer assez facilement pour vous-même, mais les autres ne bénéficient pas à moins qu'ils ne se déclarent explicitement. Un contributeur qui ne l'a pas fait peut commettre accidentellement des fichiers indésirables (par exemple, un
bin
dossier créé par un script de construction).La fonctionnalité d'ignorer de Git est excellente car elle fonctionne parfaitement. Si les
.gitignore
fichiers sont ajoutés au référentiel ( tout le monde le fait ), ils fonctionneront pour tout le monde. Personne ne publiera accidentellement sa clé privée.De manière amusante, la documentation Perforce montre '.p4ignore' comme exemple de règle d'ignorer, qui est à l'envers! Si les règles sont utiles, elles doivent être partagées dans le cadre du référentiel.
Perforce pourrait encore tirer parti de la fonctionnalité. Choisissez une convention pour les noms de fichiers, par exemple
p4ignore.txt
, pour que la fonctionnalité fonctionne correctement. Supprimez laP4IGNORE
variable d'environnement, c'est contre-productif. Modifiez les documents pour encourager les développeurs à partager des règles utiles. Permettez aux utilisateurs d'écrire des règles personnelles dans un fichier de leur dossier personnel, comme le fait Git .Si vous connaissez quelqu'un chez Perforce, veuillez lui envoyer ce message par e-mail.
la source
Cela fonctionne à partir de Perforce 2013.1, le nouveau mécanisme P4IGNORE a été ajouté pour la première fois dans la version 2012.1, décrit sur le blog Perforce ici:
Comme il est actuellement décrit, vous définissez une variable d'environnement "P4IGNORE" sur un nom de fichier qui contient une liste des fichiers à ignorer.
Vous pouvez donc le vérifier pour voir comment vous l'aimez.
la source
Si vous voulez une solution qui s'appliquera à tous les espaces de travail sans avoir besoin d'être copiée, vous (ou votre administrateur système) pouvez refuser la soumission de ces types de fichiers en utilisant des lignes comme ci-dessous dans le tableau p4 protect:
Je me souviens avoir fait cela avant, mais je n'ai pas les autorisations nécessaires pour tester cela ici. Consultez le guide Sysadmin de Perforce et essayez-le
la source
Perforce Streams permet d'ignorer les fichiers beaucoup plus facilement, à partir de la version 2011.1. Selon la documentation, vous pouvez ignorer certaines extensions ou certains chemins de votre répertoire.
De
p4 help stream
Cela fait essentiellement ce que la réponse de @ raven spécifie, mais cela se fait plus facilement avec les flux, car il se propage automatiquement à chaque espace de travail utilisant ce flux. Elle s'applique également à tous les flux héritant du flux dans lequel vous spécifiez les types ignorés.
Vous pouvez modifier le flux via
p4 stream //stream_depot/stream_name
ou en cliquant avec le bouton droit sur le flux dans la vue de flux de p4v.Et comme @svec l'a noté, la possibilité de spécifier des fichiers ignorés par espace de travail arrive bientôt, et est en fait dans P4 2012.1 beta.
la source
La suggestion de Will d'utiliser
.p4ignore
uniquement semble fonctionner avec le plugin WebSphere Studio (P4WSAD). Je l'ai juste essayé sur ma boîte Windows locale et tous les fichiers et répertoires que j'ai énumérés n'ont pas été ignorés.La suggestion de Raven de modifier les spécifications de votre client est la bonne manière sous Perforce. Une bonne organisation de votre code / données / exécutables et des fichiers de sortie générés rendra le processus d'exclusion des fichiers de l'archivage beaucoup plus facile.
Comme approche plus draconienne, vous pouvez toujours écrire un déclencheur de soumission qui rejettera la soumission des listes de modifications si elles contiennent un certain fichier ou des fichiers avec une certaine extension, etc.
la source
RÉPONSE HISTORIQUE - n'est plus correcte. Au moment où cela a été écrit à l'origine, c'était vrai;
Vous ne pouvez pas écrire et archiver un fichier que le serveur utilisera pour créer des règles d'ignorance; le modèle général de fichier glob ou regexp ignore dans perforce.
D'autres réponses ont des configurations de serveur globales qui sont globales (et non par dossier). Les autres réponses montrent des éléments qui pourraient fonctionner pour vous, si vous voulez une ligne dans votre vue par dossier multiplié par le nombre d'extensions que vous souhaitez ignorer dans ce dossier unique, ou qui fournissent cette fonctionnalité uniquement dans les plug-ins WebSphere Studio, ou fournissent des fonctionnalités pour le serveur administrateurs, mais non disponible pour les utilisateurs.
Bref, je trouve Perforce vraiment faible dans ce domaine. Bien que j'apprécie que ceux qui utilisent le plugin Eclipse puissent l'utiliser
.p4ignore
, et je pense que c'est génial, cela laisse ceux d'entre nous qui ne le font pas, dans le noir.MISE À JOUR: Voir la réponse acceptée pour la nouvelle fonctionnalité P4IGNORE ajoutée mi-2012.
la source
J'ai trouvé qu'il était plus facile de réconcilier le travail hors ligne à l'aide d'un script BASH comme celui-ci:
J'ai adapté cela à partir de cet article de la base de connaissances Perforce .
la source
Je recherche également une solution de type .p4ignore (et non une solution liée à un IDE particulier). Jusqu'à présent, la chose la plus proche que j'ai trouvée est p4delta. On dirait que cela fera exactement ce que l'affiche originale demandait, mais à travers une autre couche d'indirection.
http://p4delta.sourceforge.net
Malheureusement, bien que cela semble produire la bonne liste de fichiers, je ne peux pas faire fonctionner "p4delta --execute" ("Impossible de modifier une chaîne figée") et le projet n'a pas été mis à jour dans l'année. Peut-être que d'autres auront plus de chance.
la source
Si vous utilisez le plugin Eclipse Perforce, la documentation du plugin répertorie plusieurs façons d'ignorer les fichiers.
la source