web-dev-qa-db-fra.com

Comment réparer l'erreur "Impossible d'inscrire le fichier en écriture" ou le message d'erreur Perforce - Impossible d'inscrire le fichier en écriture

Erreur: fichier inscriptible impossible: // nom du fichier //

Solution: Lorsque vous essayez de synchroniser un fichier, perforce s'attend à ce que vos fichiers dans l'espace de travail disposent d'autorisations en lecture seule. Mais si un fichier n'est pas extrait (par P4 edit) mais dispose d'un droit d'écriture, l'erreur ci-dessus sera générée. Changer le fichier en lecture seule et la synchroniser à nouvea résoudra le problème. ou essayez de supprimer l’espace de travail et obtenez à nouveau la dernière révision.

14
Shubham Verma

L'erreur de fichier "ne peut pas écrire en écriture" se produit parce que Perforce est très prudent en ce qui concerne le remplacement accidentel ("l'image") du travail que vous avez effectué dans votre espace de travail.

Le flux de travail Perforce normal consiste à p4 sync _ un fichier (qui le met dans votre espace de travail en lecture seule), puis à p4 edit it si vous voulez le modifier (cela le rend accessible en écriture). Un fichier qui a été ouvert avec p4 edit sera toujours ignoré par p4 sync (sauf pour programmer en toute sécurité un resolve si nécessaire), et sera inclus par un p4 submit.

Si un fichier n'est pas ouvert, mais est accessible en écriture, cela signifie que quelque chose s'est mal passé dans ce flux de travail, par exemple. vous avez manuellement rendu le fichier accessible en écriture pour y apporter des modifications, et si sync met à jour ce fichier, vos modifications seront perdues! Le comportement par défaut de sync consiste donc à ignorer la mise à jour des fichiers accessibles en écriture.

Avec cette explication à l'écart, voici quelques options:

  1. p4 sync -f forcera la mise à jour d’un fichier non ouvert, qu’il soit périmé ou non, et qu’il soit en écriture ou non. (Les fichiers ouverts sont toujours ignorés.)

  2. p4 edit ouvrira le fichier. De là, vos options sont p4 revert (en ignorant vos modifications) ou p4 submit (soumettant vos modifications).

  3. Remplacer noclobber par clobber dans les spécifications de votre client supprime les mesures de protection contre les fichiers inscriptibles.

  4. Changer noallwrite en allwrite rend tous les fichiers accessibles en écriture, par défaut, ce qui supprime implicitement la sauvegarde noclobber. Dans les versions actuelles du serveur, l'option "Synchronisation sécurisée" (p4 sync -s) par défaut, forçant les calculs de synthèse sur tous les fichiers avant de les mettre à jour. C'est plus lent que de compter sur le bit d'écriture, mais beaucoup plus précis. Notez que si vous travaillez sur des fichiers sans les ouvrir, vous courez le risque de ne pas les avoir inclus dans votre submit - le p4 reconcile commande est votre ami ici.

16
Sam Stafford