2 votes

Comment supprimer un dépôt de flux dans Perforce ?

En gros, ce que je veux faire, c'est supprimer un dépôt du serveur. J'ai accès à la fois à P4Admin et à P4Helix.

Je comprends maintenant que je dois d'abord supprimer tous les espaces de travail, puis les flux, puis le dépôt. Mais je cherche une solution de contournement à ce processus (personnellement je trouve cela stupide, que se passe-t-il si quelqu'un a quitté l'entreprise et ne veut pas coopérer ?), en existe-t-il une ?

Puis-je forcer la suppression d'un dépôt et de ses flux sans aller voir tous les utilisateurs qui ont pu utiliser ce dépôt et leur demander de supprimer leurs espaces de travail ?

3voto

Sam Stafford Points 10894
  • D'abord, effacez tous les fichiers du dépôt.
  • Ensuite, supprimez tous les clients de tous les flux dans le dépôt.
  • Ensuite, supprimez tous les flux dans le dépôt.
  • Enfin, supprimez le dépôt.

Ce genre de choses est toujours plus facile à faire via le CLI que via P4Admin, IMO. Voici les quatre lignes de commande qui font ces quatre choses :

p4 obliterate -y //yourdepot/...
p4 -F "clients -S %stream%" streams //yourdepot/... | p4 -F "client -df %domainName%" -x - run | p4 -x - run
p4 -F "stream -d %stream%" streams //yourdepot/... | p4 -x - run
p4 depot -d yourdepot

Notez que vous devez disposer d'un accès admin/super pour exécuter la plupart de ces commandes. p4 client -df est ce qui vous permet de forcer la suppression d'un client que vous ne possédez pas.

Vous devrez peut-être exécuter la troisième commande (celle qui supprime les flux) plusieurs fois, car les flux enfants doivent être supprimés avant leurs parents. Vous pouvez consulter le site pourrait écrire un script astucieux qui effectue une recherche dans le graphe et supprime ensuite les flux dans un ordre ascendant, mais il est beaucoup plus facile de le faire par force brute en effectuant plusieurs passages, puisqu'à chaque fois, vous supprimez au moins une couche entière de la hiérarchie. :)

(Je reconnais que ce serait bien s'il y avait plus d'un moyen unique de le faire, mais la ligne de commande permet au moins d'assembler facilement des requêtes afin de ne pas avoir à chasser chaque chose manuellement).

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