Avant de synchroniser mon client Perforce dans la matinée, j'aimerais Lire les diffs et Journal des messages pour tous les changelistes qui me toucheront. Malheureusement, cependant, je ne trouve pas un moyen simple d'énumérer de tels changements à l'aide de modifications Y a-t-il une manière que je puisse répertorier tous les changelistes soumis depuis la dernière synchronisation de mon client? Si je peux obtenir les descriptions complètes et diffèrent des révisions de dépôt précédentes, comme P4 CODE> ou P4V. Je soupçonne que je manque quelque chose de simple, cependant. P>
p4 décrit code> pour un seul changeliste, ce serait encore meilleur. P>
6 Réponses :
est la réponse à Cette question du tout utile ? p>
De ce que je me souviens que vous devez stocker la dernière date / heure que vous avez synchronisée, puis analysez la sortie des modifications P4 -T code> pour afficher ces changelistes après votre date. P>
Avec le temps, vous pouvez finir par construire beaucoup de petits extraits de code autour de votre utilisation de perforce. C'est peut-être une bonne idée de les regrouper tout dans un script wrapper qui invoque P4 pour vous et transmet des commandes sur elles, avec ou sans étapes personnalisées supplémentaires. P>
Si vous utilisez ce type d'emballage avec une discipline (c.-à-d. Invoquant P4 directement) Il est trivial de le faire stocker le dernier changement que vous avez synchronisé. P>
À mon ancien emploi, l'équipe de construction avait écrit une wrapper P4 pour nous, mais je n'ai pas vu le besoin de le ramener à mon nouveau. Peut-être que j'aurais dû avoir ...
Dans un fichier de commandes DOS, vous pouvez faire quelque chose comme ce qui suit: Il vous donnera la liste de tous les changements P4 qui sont entre ceux qui ont été synchronisés sur votre client. et la Changeelist qui a été récemment soumise. P> Vous pouvez remplacer la dernière ligne avec ce qui suit si vous souhaitez obtenir les descriptions de ChangeList et diffs: p> Je vous suggère de piloter ces données dans un fichier afin qu'il soit plus facile de revoir. P> p>
Ça ne marche pas. De ce que je peux voir, il ressemble à% de_changelist% n'est pas défini sur le dernier changelist, je synchis mon client, mais le dernier soumis i> de ou en attente i> sur mon client, qui est assez différent. Relecture des changements P4 Manpage suggère que cette observation soit correcte.
La réponse simple est la suivante:
p4 diff2 -du ...#have ...#head
Je viens de l'essayer: modifications P4 -L //Name Client_Name /..#> avoir ' code> et comparé visuellement avec P4V. Ça marche! Merci beaucoup.
méfiez! strong> ne liste pas les changelistes contenant uniquement des fichiers nouveaux / ajoutés. p> Votre meilleur pari est de mettre en cache le dernier point de synchronisation, quelque chose comme p> avec cette méthode, vous obtiendrez de faux positifs si vous avez soumis ou choisi des changelistes depuis la dernière fois que vous avez mis à jour le cache de point de synchronisation. , mais il est préférable de répertorier un changement de changeliste supplémentaire que de manquer une, en particulier un contenant tout le nouveau code. P> N'essayez pas ceci à la maison strong> P > Pour la postérité, voici quelques autres choses que j'ai essayées dans le passé qui a finalement échoué: p> couvre le cas des changelistes contenant tous les ajouts, mais le La sortie finale comprend faussement des changements plus anciens pour les fichiers supprimés à #Have. Aussi perf peux être assez mauvais si vous avez beaucoup d'histoire dans le dépôt. P>
p4 sync -n ... | cut -f1 -d' ' | p4 -x- changes -m1 | sort | uniq
Woah. Est la perforce vivant dans les âges sombres ici ou quoi?
Je n'irais pas aussi loin. C'est juste que #Have est défini comme "l'ensemble de toutes les révisions synchronisées sur ce client" et de nouveaux fichiers ne sont pas dans cet ensemble.
Les nouvelles versions de P4V (à partir de 2009.2, peut-être 2009.1) ont quelque chose appelé un tableau de bord contenant plusieurs "tâches". L'un d'entre eux est des changelistes qui n'ont pas encore été synchronisés vers votre espace de travail. p>
Dans la barre de menus, allez voir -> Dashboard. Il y a une icône de vitesse à droite de la barre d'onglets de tableau de bord qui vous permet de configurer vos options. L'un d'entre eux est "Les fichiers de mon espace de travail ne sont pas aux dernières révisions". Les fichiers non mcs sont organisés par Changeelist. p>
C'est exactement ce que j'aimerais imiter avec P4 à la ligne de commande, c'est-à-dire la liste de Changeelist soumis que je n'ai pas encore mis à jour dans mon espace de travail. P4 Mettre à jour -N me donne les fichiers, tandis que j'aimerais que la Changeelist. Et juste comme la mise à jour P4, je ne devrais pas avoir à spécifier de trajectoire de dépôt ni à l'IMHO similaire. Comment fait cela? @ P4 de la mise à jour de Timbo | CUT -F1 -D '' | P4 -X- changements -M1 | Trier | Le commandement UNIQ fonctionne, mais comme il propose des remarques peut être assez lent. Toute autre solution?
Merci à tous, je vais les essayer comme je vais en accepter un s'il s'avère bien. J'espérais éviter l'approche du script, mais cela semble basé sur ces réponses que c'est la voie à suivre.