web-dev-qa-db-fra.com

Comment répertorier tous les fichiers modifiés par une liste de modifications forcée

J'ai une liste de modifications spécifique et, à partir de la ligne de commande, je souhaite répertorier tous les fichiers qui faisaient partie de cette liste de modifications. Comment puis-je faire cela?

30
coffee

C'est la commande décrire . Pour décrire une liste de modifications particulière, vous voulez p4 describe <changelist number>.

Mise à jour:

Si vous ne souhaitez que les noms de fichiers, vous pouvez utiliser la commande files avec l'option -F pour remplacer le format de sortie: p4 -Ztag -F "%depotFile%" files @=<changelist>

Voir http://www.perforce.com/blog/130826/fun-formatting pour plus d'informations sur l'option -F.

42
Mike O'Connor

ser114245 a donné la meilleure réponse, mais uniquement dans un commentaire. J'ajoute comme réponse pour lui donner plus de visibilité, et pour s'améliorer un peu.

Pour le changement 12345, c'est le plus proche que vous pouvez obtenir avec juste un p4 commande

p4 files @=12345

qui ne donne que cette sortie

//depot/file1#3 - delete change 3 (text)
//depot/file2#3 - edit change 3 (text)
//depot/file5#1 - add change 3 (text)

Si vous souhaitez supprimer les informations superflues sur chaque fichier, vous devrez traiter cette sortie via plusieurs outils sur la ligne de commande. En supposant un environnement unixy standard, vous pouvez utiliser une seule commande sed comme ceci

p4 files @=12345 | sed s/#.*//

pour obtenir le résultat souhaité

//depot/file1
//depot/file2
//depot/file5

--- réponse actuellement acceptée par Mike

p4 describe 12345

ce qui donne tous ces détails supplémentaires dans la sortie

Change 12345 by day@client1 on 2013/06/21 00:25:28

    Some example changes

Affected files ...

... //depot/file1#3 delete
... //depot/file2#3 edit
... //depot/file5#1 add

Differences ...

==== //depot/file2#3 (text) ====

1c1
< This is file 2
---
> This is file 2 - edited

Cela a été amélioré par réponse de Doug qui utilise grep et awk pour filtrer le bruit et laisser les fichiers modifiés, mais la commande est assez longue

p4 describe -s 12345 | grep '^\.\.\.' | awk '{print $2}'

Je pense que la solution donnée ici est plus nette.

34
Day

La réponse de Mike O'Connor m'a également aidé.

En ce qui concerne le simple fait de modifier une liste de fichiers, ne pourrait-il pas être aussi simple que cela?

p4 describe -s {change number} | grep '^\.\.\.' | awk '{print $2}'

c'est ce que je vais utiliser.

7
Doug

Si votre liste de modifications est toujours en attente, vous pouvez exécuter p4 opened ou p4 opened -c <changeListNumber> pour un numéro de liste de modifications spécifique (non soumis).

De la documentation officielle : "Liste des fichiers ouverts dans les listes de modifications en attente."

4
Richard

p4 change -o

Il a la liste des fichiers à la fin.