web-dev-qa-db-fra.com

Perforce ne pas synchroniser les fichiers correctement

J'utilise l'outil graphique Perforce P4V pour me connecter à mon serveur Perforce au travail. J'ai ajouté un projet au dépôt et je l'ai accidentellement supprimé de mon espace de travail sur mon ordinateur local. Le problème est lorsque j'utilise l'action Get Revision (l'équivalent GUI de Sync). Les fichiers ne sont pas mis à jour. voir les fichiers sur le serveur que je veux, mais ils ne seront pas synchronisés correctement avec mon PC local. Cela me frustre que les fichiers ne soient pas extraits du serveur. Ce qui, je suppose, devrait se produire, c’est que si les fichiers sont modifiés de quelque manière que ce soit sur mon PC local, je devrais pouvoir récupérer la révision du serveur, qui extrait ensuite les données sur mon PC local et écrase les modifications localement sur mon PC mais cela ne se produit pas. Y a-t-il quelque chose qui me manque?

26
kingrichard2005

Merci les gars, j'ai fait ce que vous avez suggéré, mais j'ai continué à recevoir le message que les fichiers étaient toujours "ouverts pour modification et ne peuvent pas être supprimés", en essayant "Supprimer de Workspace". En outre, "Get Revision" est renvoyé avec un message "Aucun fichier n'a été mis à jour". Ce que j’ai finalement dû faire, c’est «Rétablir» les fichiers, puis effectuer l’action «Obtenir la révision», qui résout le problème. Merci à vous deux pour votre aide.

2
kingrichard2005

Perforce garde la trace des fichiers qu’elle pense avoir sur votre poste de travail local. Si vous supprimez ces fichiers localement (et ne "dites" pas forcément à ce sujet), Perforce pensera toujours que vous avez ces fichiers. Si vous voulez les récupérer, vous devez "forcer la synchronisation" des fichiers. Dans p4v, vous pouvez utiliser l'élément "Obtenir la révision ..." et dans la boîte de dialogue suivante, cochez la case "Forcer l'opération" pour indiquer à Perforce de vous redonner tous les fichiers, que Perforce pense ou non en avoir besoin.

Juste pour compléter les informations, si vous souhaitez jamais supprimer les fichiers localement, vous pouvez le faire via p4v en choisissant l’élément "Supprimer de l’espace de travail". Cela supprimera les fichiers localement et vous dira forcément que vous n’avez plus ces fichiers. Ainsi, lors de la prochaine synchronisation, ces fichiers seront récupérés à partir du serveur.

56
Mark

Ils ne seront pas mis à jour car, selon Perforce, vous avez toujours les fichiers sur votre ordinateur local.

Vous devez utiliser l'option "Obtenir une révision ..." et activer l'option "Forcer l'opération".

Cela demandera à Perforce d'actualiser tous les fichiers, même ceux dont il pense avoir la dernière version.

10
ChrisF

Comme d’autres personnes l’ont mentionné, une solution consiste à "forcer la synchronisation" de l’ensemble du dépôt, ce qui permet de tout écraser, du serveur au local. L'inconvénient, c'est que cela peut prendre beaucoup de temps si vous travaillez dans un grand dépôt. 

Une autre alternative consiste à comparer votre espace de travail local avec le serveur, puis forcez uniquement la synchronisation des fichiers manquants dans votre espace de travail .

p4 diff -sd //Depot/path/… | p4 -x – sync -f

option -sd: affiche uniquement les noms des fichiers non ouverts manquants dans l'espace de travail du client, mais présents dans le dépôt.

Il y a plus d'options (sa/se/etc.) Disponibles si -sd n'est pas ce dont vous avez besoin. voir ici .

les crédits pour la commande vont à this blog.

9
r2d2oid

"Obtenir la révision" mettra à jour uniquement les fichiers qui ne sont pas ouverts (extraits) même lorsque "Forcer l'opération" est activé. Vous devez rétablir tous les fichiers marqués comme extraits dans cet espace de travail, puis utiliser "Obtenir la révision" avec "Forcer l'opération".

8
Arthur H

Pour les personnes qui entrent dans cette question, cela a fonctionné pour moi sur la ligne de commande mac ...

cd dans votre espace de travail perforce local - le répertoire de base des fichiers extraits sur lesquels vous travaillez. 

p4 sync -f

-f consiste à forcer la synchronisation. 

Cela peut également s'avérer utile lorsque vous restaurez un Mac à partir d'une sauvegarde de Time Machine. 

https://www.perforce.com/perforce/r12.1/manuals/cmdref/sync.html

0
ryan