67 votes

Comment recherchez-vous le texte des descriptions de liste de modifications dans Perforce?

À l'occasion, je souhaite consulter le texte des descriptions de liste de modifications dans Perforce. Il ne semble pas y avoir de moyen de faire cela en P4V. Je peux le faire en redirigeant la sortie de la commande changes vers un fichier ...

 p4 changes -l > p4changes.txt
 

... (le commutateur -l lui dit de vider le texte intégral des descriptions de la liste de modifications), puis d'effectuer une recherche dans le fichier, mais cela est plutôt fastidieux. Quelqu'un at-il trouvé un meilleur moyen?

63voto

Greg Whitfield Points 3651

Lorsque le volet de liste de modifications soumis a le focus, une combinaison de touches CTRL + F vous permet d'effectuer une recherche de texte arbitraire, y compris des descriptions de liste de modifications.

La seule limite est qu'il ne recherche que les listes de modifications extraites du serveur. Vous devrez donc peut-être augmenter le nombre récupéré. Pour ce faire, utilisez le paramètre "Nombre de listes de modifications, travaux, correspondances de branches ou étiquettes à récupérer à la fois" que vous pouvez trouver en sélectionnant Édition-> Préférences-> Données du serveur.

19voto

Paul Medcraft Points 647

changements p4 -L | grep -B 3 chaîne de recherche

-B 3 signifie afficher 3 lignes avant la chaîne correspondante, cela devrait suffire à afficher l'ID de modification avec pour 2 commentaires de ligne, mais vous pouvez le modifier si nécessaire.

17voto

jop Points 31978

J'utilise p4sql et lance une requête sur la base de données "changes". Voici le schéma de base de données Perforce

La requête ressemble à ceci (non testé)

 select change from changes where description like '%text%' and p4options = 'longdesc'
 

edit: ajout de p4options pour retourner plus de 31 caractères dans la description.

7voto

Julian Martin Points 156

Voici une version Powershell de la réponse "grep" de Paul. De nouveau, il recherche la chaîne spécifiée dans la description du changement et renvoie les 3 lignes qui le précèdent pour inclure l'identifiant du changement:

 p4 changes -L | select-string "search string" -Context (3,0)
 

1voto

Mark Points 6505

Utiliser p4sql est vraiment le seul moyen de faire efficacement ce que vous voulez. Je ne suis au courant d'aucun autre moyen. Bien entendu, l’avantage est que vous pouvez utiliser les instructions de sélection pour limiter la plage de valeurs de la liste de modifications (via la date, l’utilisateur, etc.). Votre méthode fonctionnera mais deviendra très lourde à mesure que vous générez plus de listes de modifications. Vous pouvez limiter la portée de la commande changes, mais vous n'obtiendrez pas la souplesse de p4sql.

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