web-dev-qa-db-fra.com

Comment afficher les changements de P4 mis en attente?

Un membre de notre équipe (situé dans une région différente) a mis en suspens les changements de P4 avec la liste de modifications 1234.

Maintenant, si je veux voir quels fichiers sont modifiés snf quelles sont les modifications, comment puis-je faire cela?

Quelle est la commande P4 que je dois utiliser pour voir les modifications apportées par notre membre de l'équipe?

50
Mike

p4 describe -S 1234 devrait faire l'affaire, voir la documentation sur décrit .

Pour voir le contenu du fichier, vous décompressez les fichiers dans votre espace de travail (en supposant que vous disposez d'un espace de travail pour le même projet sur lequel votre collègue travaille).

Créez une nouvelle liste de modifications (vide) avec p4 change (par exemple 2345), puis utilisez p4 unshelve ( doc ) pour obtenir les fichiers modifiés dans votre espace de travail:

p4 unshelve -s 1234 -c 2345

Si vous ne voulez plus que les fichiers modifiés dans votre espace de travail, vous pouvez p4 revert -c 2345 leur.

55
jhwist

À l'aide de l'interface graphique, accédez à En attente et supprimez tous les filtres, sauf par utilisateur, où vous mettrez l'ID de l'autre développeur. De là, vous devriez pouvoir voir ses listes de modifications, y compris celles contenant des fichiers mis en attente. Cliquez avec le bouton droit de la souris sur l'icône Fichiers mis en attente et sélectionnez Annuler. Vous devrez avoir un espace de travail actif qui comprend les fichiers que vous essayez de décompresser.

32
Matthew White

À l'aide du client UI, appuyez sur Ctrl + G. La fenêtre de dialogue apparaît. Sélectionnez Changelist dans la liste déroulante et entrez le numéro de changelist.

11
Sergey Morozov

Supposons que la liste des modifications 123456 soit la liste des modifications mise en attente en question. Comme mentionné précédemment, la façon de répertorier les fichiers associés à cette liste de modifications est via le p4 describe -s <changelist> commande. Ainsi:

$ p4 describe -s 123456
Change 123456 by john.doe@JohnsBranch on 2013/10/24 15:38:10 *pending*

    [Shelving my changes for Jane.]
    Fix memory corruption caused by uninitialized pointer.

Affected files ...

... //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 edit

Une fois que vous connaissez le ou les fichiers en question, il existe deux façons de différencier les fichiers sans espace de travail correspondant. La méthode n ° 1 consiste à utiliser p4 print:

$ p4 print -q //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1       > /tmp/old
$ p4 print -q //depot/branches/JohnsBranch/kernel/vm/pageutils.c@=123456 > /tmp/new
$ diff /tmp/old /tmp/new    # Or use kdiff3, tkdiff, etc.
          ...
  <diff output here>

L'autre méthode consiste à utiliser p4 diff2:

$ p4 diff2 //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 //depot/branches/JohnsBranch/kernel/vm/pageutils.c@=123456
          ...
  <diff output here based on Perforce server's diff algorithm>

Les deux méthodes peuvent être facilement incorporées dans le langage de script de votre choix.

8
troydj

la solution de jhwist est bonne si vous voulez voir les différences des fichiers.

Si vous souhaitez voir uniquement les fichiers mis en attente, utilisez p4 describe -sS 1234.

Les minuscules s empêchent la sortie d'inclure les différences de fichier.

5
user1167662

Si vous souhaitez voir le contenu réel des fichiers, vous pouvez utiliser:

p4 print <file>@=<shelved_change>

Le @ = signifie regarder le changement mis en suspens, alors que @ signifie regarder le changement.

2
NateW

Dans P4V UI, sélectionnez

Search - > Go To

puis choisissez le type de liste des modifications (dans votre cas 'Liste des modifications en attente'), entrez le numéro de la liste des modifications et cliquez sur "OK".

2
Tomasz Maczyński

Si vous voulez voir niquement la liste des fichiers à l'intérieur d'une ChangeList (qu'il s'agisse d'un CL en attente, en attente ou soumis), sans données supplémentaires, grep le résultat:

p4 describe -S 12345 | grep -oP '(?=//).*(?=#)'
1
Noam Manos