103 votes

Pouvez-vous « ignorer » un fichier dans Perforce ?

J'ai parfois l'utilisation de la fonction "Concilier Travailler Hors connexion..." qui se trouve dans Perforce est P4V IDE pour synchroniser tous les fichiers que j'ai travaillé tout en étant déconnecté du P4 depot. Il lance une autre fenêtre qui effectue un "Dossier Diff'.

J'ai des fichiers que je ne veux plus jamais de vérifier dans le contrôle de source (comme ceux trouvés dans le dossier bin comme des Dll, le code généré à la sortie, etc.) Est-il un moyen de filtrer les fichiers/dossiers hors de comparaître en tant que "nouveau" qui pourraient être ajoutés. Ils ont tendance à encombrer la liste des fichiers que je suis réellement intéressé. Ne P4 ont l'équivalent de la Subversion "ignorer le fichier'?

60voto

raven Points 9396

À partir de la version 2012.1, Perforce prend en charge l' P4IGNORE variable d'environnement. J'ai mis à jour ma réponse à cette question sur d'ignorer les répertoires avec une explication de la façon dont il fonctionne. Puis j'ai remarqué que cette réponse, qui est maintenant superflu, je suppose.


En supposant que vous avez un client nommé "le CLIENT", un répertoire nommé "toto" (situé à la racine de votre projet), et que vous souhaitez ignorer .dll fichiers dans l'arborescence de répertoire, vous pouvez ajouter les lignes suivantes à votre espace de travail à accomplir ce:

-//depot/foo/*.dll //CLIENT/foo/*.dll
-//depot/foo/.../*.dll //CLIENT/foo/.../*.dll

La première ligne supprime le répertoire "toto" et la deuxième ligne supprime de tous les sous répertoires. Maintenant, lorsque vous Réconcilier Travailler Hors connexion...', tous les .les fichiers dll sera déplacé dans "Fichiers Exclus" dossiers dans la partie inférieure du dossier diff affichage. Ils seront hors de votre chemin, mais ne peut toujours voir et de manipuler si vous en avez vraiment besoin.

Vous pouvez également le faire d'une autre manière, ce qui permettra de réduire votre "Exclus dossier" Fichiers à un seul, mais vous ne serez pas en mesure de manipuler les fichiers qu'il contient, car le chemin sera endommagé (mais si vous voulez juste sortir de votre chemin, il n'a pas d'importance).

-//depot/foo.../*.dll //CLIENT/foo.../*.dll

54voto

Colonel Panic Points 18390

Oui, Mais.

Perforce version 2012.1 ajouté une fonctionnalité connue sous le nom p4ignore, inspiré par Git. Cependant le Perforce développeurs ont fait un changement dans le comportement, sans justification, ce qui arrive à rendre la fonction beaucoup moins utiles.

Alors que Git prend règles de tous les .gitignore fichiers, Perforce ne savez pas où chercher jusqu'à ce que vous indiquez un nom de fichier dans une variable d'environnement P4IGNORE. Cette liberté est une malédiction. Vous ne pouvez pas pirater sur deux référentiels qui utilisent des noms différents pour leur ignorer les fichiers.

Aussi, Nécessairement, de l'ignorer fonctionnalité n'est pas sorti de la boîte. Vous pouvez le régler assez facilement pour vous-même, mais d'autres n'en bénéficient pas, à moins qu'ils explicitement opt-in. Un contributeur qui n'a pas risquez de commettre des fichiers indésirables (par exemple. un bin dossier créé par un script de compilation).

Git est ignorer la fonction est grand parce qu'il fonctionne hors de la boîte. Si l' .gitignore des fichiers sont ajoutés au référentiel (tout le monde fait ça), ils vont travailler hors de la boîte pour tout le monde. On ne s'accidentellement publier sa clé privée.

De manière amusante, le Perforce docs affiche".p4ignore " comme un exemple ignorer la règle, qui est à l'envers! Si les règles sont utiles, ils doivent être partagés dans le cadre du référentiel.


Perforce pourrait encore en faire bon sur la fonctionnalité. Choisissez une convention pour les noms de fichier, disons p4ignore.txt, de sorte que la fonction fonctionne hors de la boîte. Baisse de l' P4IGNORE variable d'environnement, il est contre-productif. Modifier les documents, d'encourager les développeurs pour le partage de ces règles. Laissez utilisateurs d'écrire des règles personnelles dans un fichier dans son dossier de départ, que Git n'.

Si vous connaissez quelqu'un à Perforce, veuillez les envoyer par courriel ce post.

22voto

svec Points 2050

Cela fonctionne de la manière de Perforce 2013.1, la nouvelle P4IGNORE mécanisme a été ajouté dans la version, 2012.1, décrites sur le Perforce blog ici:

http://www.perforce.com/blog/120130/new-20121-p4ignore

Comme il est décrit actuellement, vous définissez une variable d'environnement "P4IGNORE" pour un nom de fichier qui contient une liste des fichiers à ignorer.

De sorte que vous pouvez vérifier pour voir comment vous l'aimez.

7voto

Mike Burrows Points 126

Si vous voulez une solution qui s'appliquent à tous les travaux des espaces sans avoir besoin d'être copié autour de vous, vous (ou votre administrateur de système) peut refuser la communication de ces types de fichiers grâce à l'utilisation des lignes comme ci-dessous dans le p4 protéger la table:

write user * * -//.../*.suo
write user * * -//.../*.obj
write user * * -//.../*.ccscc

Je me souviens de le faire avant, mais je n'ai pas les autorisations nécessaires pour tester cette ici. Découvrez Perforce du Sysadmin guide et de l'essayer

6voto

Chance Points 1389

Perforce des cours d'eau rend ignorant des fichiers beaucoup plus facile, à partir de la version 2011.1. Selon la documentation, vous pouvez ignorer certaines extensions ou de certains chemins d'accès dans votre répertoire.

D' p4 help stream

Ignored: Optional; a list of file or directory names to be ignored in
                 client views. For example:

                     /tmp      # ignores files named 'tmp'
                     /tmp/...  # ignores dirs named 'tmp'
                     .tmp      # ignores file names ending in '.tmp'

                 Lines in the Ignored field may appear in any order.  Ignored
                 names are inherited by child stream client views.

Essentiellement, cela fait quoi @raven réponse précise, mais se fait plus facilement avec des cours d'eau, comme il propage automatiquement à chaque espace de travail à l'aide de ce cours d'eau. Elle s'applique aussi aux flux de l'héritage du flux dans laquelle vous spécifiez les ignorer types.

Vous pouvez modifier le flux via p4 stream //stream_depot/stream_name ou à droite sur le flux dans p4v du flux de vue.

Et comme @svec noter, la possibilité de spécifier ignorer les fichiers par espace de travail est à venir, et est en fait en P4 2012.1 bêta.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X