web-dev-qa-db-fra.com

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

À l'occasion, je me retrouve à vouloir rechercher le texte des descriptions de listes de modifications dans Perforce. Il ne semble pas y avoir de moyen de le faire dans 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 indique de vider le texte intégral des descriptions de la liste des modifications) puis de rechercher le fichier, mais c'est plutôt lourd. Quelqu'un a-t-il trouvé un meilleur moyen?

65
raven

Lorsque le volet de liste de modifications soumis a le focus, un CTRL + F vous permet d'effectuer une recherche de texte arbitraire, qui inclut des descriptions de liste de modifications.

La seule limitation est qu'il recherche uniquement les listes de modifications extraites du serveur, vous devrez donc peut-être augmenter le nombre récupéré. Cela se fait via le paramètre "Nombre de listes de modifications, de travaux, de mappages de branches ou d'étiquettes à récupérer à la fois" qui peut être trouvé en accédant à Edition-> Préférences-> Données du serveur.

61
Greg Whitfield

p4 changes -L | grep -B 3 searchstring

-B 3 signifie afficher 3 lignes avant la chaîne correspondante, devrait être suffisant pour afficher l'identifiant de changement avec des commentaires de 2 lignes, mais vous pouvez le modifier si nécessaire.

19
Paul Medcraft

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 des p4options pour retourner plus de 31 caractères dans la description.

17
jop

Voici une version Powershell de la réponse "grep" de Paul. Encore une fois, 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'ID de changement:

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

Pourquoi rediriger vers un fichier lorsque vous pouvez diriger la sortie via less et utiliser la recherche de less?

p4 changes -l | less

Et puis appuyez sur / à Demander une chaîne de recherche. Après, n passera au match suivant, et Shift+n passera à la précédente.

Une implémentation de less pour Windows est disponible dans le cadre de nxUtils .

3
jamesdlin

Eddie on Games a publié sa Perforce Changelist Search 0.1 sur http://www.eddiescholtz.com/blog/archives/1

Mais j'aime utiliser mon éditeur de texte préféré avec le simple: p4 changes -s soumis // prog/stuff/main/...> temp.txt

1
WireGuy

Utiliser p4sql est vraiment le seul moyen de faire efficacement ce que vous voulez. Je ne connais pas d'autre moyen. L'avantage est bien sûr que vous pouvez utiliser les instructions select pour limiter la plage de valeurs de la liste des modifications (via date, utilisateur, etc.). Votre méthode fonctionnera mais deviendra très fastidieuse à 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 flexibilité de p4sql.

1
Mark

Si vous aimez toujours votre ligne de commande, vous pouvez écrire un petit script Perl qui:

  • modifie le séparateur d'enregistrements $/pour doubler la nouvelle ligne "\ n\n" afin de filtrer l'entrée en enregistrements complets de la sortie p4 ztagged.
  • scanne la partie '/ ^ ... desc /..//' avec les expressions régulières des arguments.

l'utilisation serait quelque chose comme 'p4 -ztag change -l | yourperlfilter.pl searchterm1 searchterm2 '

si cela fonctionnait bien, vous pourriez l'intégrer dans le menu des outils p4win .

0
Epu