0 votes

Comment détecter l'utilisation de la fonction "reopen for edit" de Perforce à partir d'un script ?

Je travaille sur un script pour interagir avec Perforce, qui entre autres choses doit être capable de comprendre les changelists en attente. Pour cela, j'utilise ' p4 describe et p4 opened qui sont assez simples. Par exemple, un fichier ouvert pour être édité s'affiche comme ceci (à partir de p4 opened) :

//source/stuff/things.h#1 add default change (text)

Ce que je ne peut pas est de savoir comment détecter les cas où un utilisateur a créé une branche dans un fichier et a ensuite utilisé la commande "Réouvrir pour modifier" sur ce fichier (ce qui revient à utiliser ' p4 edit ' sur le fichier à brancher) avant de le soumettre. Il en va de même pour l'intégration d'un fichier et l'utilisation de 'Reopen for edit' avant de soumettre l'intégration. Dans le cas d'une branche, le fichier apparaît comme un "ajout" sans indication qu'il y a également une branche en cours (l'exemple ci-dessus pourrait donc être soit un véritable ajout, soit une branche réouverte). Dans le cas de l'intégration, le fichier est affiché comme une "édition". Dans les deux cas, après avoir soumis la modification, je peux voir que le fichier a été branché/intégré, mais j'ai besoin de pouvoir le faire pour les modifications en attente. En théorie, j'espère voir quelque chose comme ceci, où things.h est branché et édité à partir de thangs.h :

//source/stuff/things.h#1 add default change (text)
  branch from //source/other/thangs.h#42

Quelqu'un connaît-il un moyen d'y parvenir ? Je précise également que j'utilise une version ancienne de Perforce (2004). Il se peut donc que ce soit possible dans les versions plus récentes et que je doive simplement mettre à jour mon logiciel.

2voto

Paul Du Bois Points 792

" p4 résolu "fait presque exactement ce que vous voulez, mais malheureusement il est nouveau dans la version 2007.2.

[C:\dfp\Common\Code\Python]p4 opened foo.py
//buddha/Common/Code/Python/foo.py#1 - add default change (kxtext)

[C:\dfp\Common\Code\Python]p4 resolved foo.py
c:\dfp\Common\Code\Python\foo.py - branch from //buddha/Common/Code/Python/memdump.py#1,#30

Vous ne serez probablement pas en mesure de détecter les problèmes avant que l'utilisateur n'exécute "resolve", mais il devra les résoudre avant de les soumettre.

0voto

Mark Points 6505

Je ne pense pas que cela soit possible lorsqu'on émet un "reopen for edit". Comme vous l'avez déjà indiqué, la commande de réouverture changera l'état d'un fichier en quelque chose de différent. J'ai effectué un test local (j'utilise la version 2008.2). Il semble qu'il y ait eu quelques changements dans la façon dont perforce rend compte de l'état d'ajout/modification des fichiers depuis votre version, mais ce que vous essayez de faire ne semble toujours pas possible.

d:\sandbox\ctg_test>p4 integ test.txt test_branch.txt
//ctg_test/test_branch.txt#1 - branch/sync from //ctg_test/Test.txt#1,#15

d:\sandbox\ctg_test>p4 opened
//ctg_test/test_branch.txt#1 - branch default change (text)

Notez que la commande ouverte affiche maintenant 'branch' pour l'état du fichier au lieu de add qui, je pense, était affiché avec votre version du serveur. Mais la cerise sur le gâteau :

d:\sandbox\ctg_test>p4 edit test_branch.txt
//ctg_test/test_branch.txt#1 - reopened for add

d:\sandbox\ctg_test>p4 opened
//ctg_test/test_branch.txt#1 - add default change (text)

J'ai essayé de regarder avec l'option -ztag pour voir si plus d'informations étaient données :

d:\sandbox\ctg_test>p4 -ztag opened
... depotFile //ctg_test/test_branch.txt
... clientFile //client-mark.allender/ctg_test/test_branch.txt
... rev 1
... action add
... change default
... type text
... user mark.allender
... client client-mark.allender

p4 fstat n'a pas aidé non plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X