À 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?
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.
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.
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.
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)
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 .
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
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.
Si vous aimez toujours votre ligne de commande, vous pouvez écrire un petit script Perl qui:
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 .