Perforce ne synchronise pas correctement les fichiers
J'utilise Perforce P4V, l'outil graphique, pour m'interfacer avec mon serveur Perforce ici au travail. J'ai un projet que j'ai ajouté au dépôt et je l'ai accidentellement supprimé de mon espace de travail sur mon ordinateur local, le problème est quand j'utilise L'action get Revision (l'équivalent GUI de sync), les fichiers ne sont pas mis à jour, c'est-à-dire je peux voir les fichiers sur le serveur que je veux, mais C'est frustrant que les fichiers ne soient pas retirés du serveur. Quel Je suppose que cela devrait se produire si les fichiers sont modifiés de toute façon sur mon PC local, je devrais être capable de récupérer la révision du serveur, qui tire ensuite les données sur mon PC local et écrase les changements localement sur mon PC, mais cela ne se produit pas. Est-il quelque chose que je suis absent?
7 réponses
Perforce garde une trace des fichiers qu'il pense que vous avez sur votre poste de travail local. Si vous supprimez ces fichiers localement (et ne "dites" pas à perforce à 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 le " Get Revision..."et dans la boîte de dialogue suivante, vous pouvez cocher la case" forcer l'opération " pour indiquer à Perforce de vous remettre tous les fichiers, que Perforce pense que vous en avez besoin.
Juste pour compléter l'information, si jamais vous voulez 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 indiquera à perforce que vous n'avez plus ces fichiers afin que la prochaine synchronisation, ces fichiers soient récupérés à partir du serveur.
Ils ne seront pas mis à jour car selon Perforce, vous avez toujours les fichiers sur votre machine locale.
Vous devez utiliser le " Get Revison..."option et activez l'option" opération de Force".
Cela indiquera à Perforce d'actualiser tous les fichiers, même ceux dont il pense que vous avez la dernière version.
"Get Revision" mettra à jour uniquement les fichiers qui ne sont pas ouverts (extraits) même lorsque "forcer L'opération" est activé. Vous devez annuler tous les fichiers marqués comme extraits dans cet espace de travail, puis utiliser "Get Revision" avec "Force Operation"
Comme d'autres personnes l'ont mentionné, une solution consiste à faire une "synchronisation forcée" du dépôt entier qui écrase tout du serveur dans votre local. L'inconvénient est que cela pourrait prendre beaucoup de temps pour terminer si vous travaillez sur un grand dépôt.
Une autre alternative consiste à comparer votre espace de travail local avec le serveur, puis forcer uniquement la synchronisation des fichiers manquants dans votre espace de travail .
p4 diff -sd //Depot/path/… | p4 -x – sync -f
-option sd : Afficher uniquement les noms de fichiers non ouverts qui sont manquants dans l'espace de travail client, mais présents dans le dépôt.
Il y a plus d'options (sa / se / etc. si -sd n'est pas ce dont vous avez besoin. voir ici.
Crédits pour la commande va à ce blog.
Merci les gars, j'ai fait comme vous l'avez suggéré, mais j'ai continué à recevoir le message que les fichiers étaient toujours "ouverts pour l'édition et ne peuvent pas être supprimés", en essayant "Supprimer de L'espace de travail". En outre, "Get Revision" est retourné avec un message "Aucun fichier n'a été mis à jour". Ce que j'ai fini par avoir à faire était de "revenir" les fichiers, puis de faire l'action "Get Revision", qui a résolu le problème. Merci à vous deux pour votre aide.
Pour les personnes entrant 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 est de forcer la synchronisation.
Cela peut également être utile lorsque vous restaurez un mac à partir d'une sauvegarde time machine.
Https://www.perforce.com/perforce/r12.1/manuals/cmdref/sync.html
Consultez le fichier, modifiez-le un peu, puis revenez. Perforce remplacera le fichier local par la dernière révision.