Question

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 vérifier au contrôle de code 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 de l'ignorer fichier, la fonction?

Était-ce utile?

La solution

À partir de la version 2012.1, Perforce prend en charge la P4IGNORE variable d'environnement.J'ai mis à jour ma réponse cette question à propos 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 tous .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

Autres conseils

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 les 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, l' 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 la P4IGNORE variable d'environnement, il est contre-productif.Modifier les documents, d'encourager les développeurs de partager des règles.Laissez utilisateurs d'écrire des règles personnelles dans un fichier dans son dossier d'accueil, que Git n'.

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

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:

https://www.perforce.com/blog/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.

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'aide de 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 est Sysadmin guide et de l'essayer

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

À partir de 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 clic droit 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 dans P4 2012.1 bêta.

Sera la suggestion de l'aide .p4ignore ne semble travailler avec WebSphere Studio (P4WSAD) plugin.Je l'ai juste essayé sur mon local zone de windows et tous les fichiers et répertoires que j'ai énumérés sont pas ignoré.

Raven suggestion de modification de votre client spec est la bonne manière, en vertu de Perforce.Une bonne organisation de votre code/données/fichiers exécutables et les fichiers de sortie générés rendra le processus de l'exclusion des fichiers de contrôle en beaucoup plus facile.

En tant que plus draconiennes approche, vous pouvez toujours écrire un bouton déclencheur qui permettra de rejeter la soumission de modifier les listes si elles contiennent un certain fichier ou des fichiers avec une certaine extension, etc.

HISTORIQUE RÉPONSE - n'est plus correct.Au moment où cette lettre a été écrite à l'origine, c'était la vérité;

Vous ne pouvez pas écrire et enregistrer un fichier que le serveur va utiliser pour faire ignorer les règles;général glob ou regexp modèle de fichier ignorer dans perforce.

D'autres réponses ont mondial configurations de serveur global (et non pas par dossier).Les autres réponses montre des choses qui pourraient travailler pour vous, si vous voulez une ligne dans votre point de vue par dossier multiplié par le nombre d'extensions que vous souhaitez ignorer dans ce dossier unique, ou qui offrent cette fonctionnalité dans WebSphere Studio plugins seulement, ou de fournir des capacités pour les administrateurs de serveur, mais pas à la disposition des utilisateurs.

En bref, je trouve Perforce vraiment faible dans ce domaine.Même si j'apprécie que ceux qui utilisent le Plugin Eclipse pouvez utiliser .p4ignore, et je pense que c'est génial, il laisse ceux d'entre nous qui ne sont pas dans l'obscurité.

Mise à JOUR:Voir accepté de répondre à de nouveaux P4IGNORE capacité ajoutée à la mi-2012.

J'ai trouvé qu'il est plus facile de concilier travailler hors connexion à l'aide d'un script BASH comme celui-ci:

#!/bin/bash
# reconcile P4 offline work, assuming P4CLIENT is set
if [ -z "$P4CLIENT" ] ; then echo "P4CLIENT is not set"; exit 1; fi
unset PWD # confuses P4 on Windows/CYGWIN

# delete filew that are no longer present
p4 diff -sd ... | p4 -x - delete

# checkout files that have been changed.  
# I don't run this step.  Instead I just checkout everything, 
# then revert unchanged files before committing.
p4 diff -se ... | pr -x - edit

# Add new files, ignoring subversion info, EMACS backups, log files
# Filter output to see only added files and real errors
find . -type f \
 | grep -v -E '(\.svn)|(/build.*/)|(/\.settings)|~|#|(\.log)' \
 | p4 -x - add \
 | grep -v -E '(currently opened for add)|(existing file)|(already opened for edit)'

J'ai adapté cette de cette Perforce article de Base de Connaissances.

Je suis à la recherche d'un .p4ignore comme solution (et non pas lié à un IDE).Jusqu'à présent, la chose la plus proche que j'ai trouvé est p4delta.On dirait qu'elle va faire exactement ce que l'affiche originale a été demandé, mais par une autre couche d'indirection.

http://p4delta.sourceforge.net

Malheureusement, tout cela ne semble obtenir une bonne liste de fichiers, je ne peux pas obtenir "p4delta --execute" pour le travail ("ne Peut pas modifier une gelée de chaîne") et le projet n'a pas été mis à jour dans l'année.Peut-être que d'autres auront plus de chance.

Si vous utilisez Eclipse Perforce plugin, puis le plugin documentation les listes de plusieurs façons pour ignorer les fichiers.

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