TFS Type de conflit: fichier inscriptible - un fichier inscriptible du même nom existe localement

j'essaie d'obtenir les dernières nouvelles de mon projet. Quand je le fais, TFS me montre que j'ai des conflits sur chaque fichier de ce projet. Chaque fichier a le même conflit: Conflict Type: Writable File - A writable file by same name exists locally.

la résolution qu'il me donne est "Overwrite Local File or Folder" mais je dois faire ceci un par un.

pourquoi TFS pense que j'ai des conflits (Je n'ai pas changé de fichiers)?

25
demandé sur dev.e.loper 2012-02-13 18:14:06
la source

3 ответов

la réponse de Grant est excellente pour résoudre des conflits multiples.

quant à savoir pourquoi vous ces conflits, Généralement parlant, votre client TFS a détecté qu'un fichier existe localement qui n'est pas géré par TFS, mais vous essayez d'effectuer une opération get qui écraserait ce fichier.

si vous suivez un flux de développement normal (et ne pas aller et éditer des fichiers en dehors de votre éditeur), la source la plus courante de conflits d'écriture est de jeux de réservations. Si vous deviez éditer un add sur un fichier, alors vous deviez annuler cet add (soit explicitement, soit parce que vous aviez mis la modification de côté et que vous aviez désélectionné le bouton preserve pending changes), le fichier est supprimé. (Ceci pour éviter la perte de données, il n'est pas rare que vous souhaitez créer un fichier mais faites-le vérifier au contrôle source.)

maintenant, si vous (ou quelqu'un d'autre) deviez enregistrer ce shelveset (soit en créant une construction à partir de ce shelveset, ou de l'enregistrement Bloqué, ou parce que votre examinateur de code vérifié dans votre shelveset directement), puis lorsque vous faites une dernière, votre client TFS détectera que le fichier existe toujours localement et donc, vous aurez un conflit d'écriture.

Cela peut ne pas être particulièrement évident dans le cas des dépendants de l'enregistrement. Comment dépendants de l'enregistrement fonctionne réellement, c'est quand vous essayez d'enregistrer vos modifications, votre check-in est en fait converti en shelveset. La construction de TFS l'agent tentera alors de construire votre shelveset, et si la construction réussit, il enregistrera alors que shelveset en votre nom. Si le build échoue, le shelveset reste et vous pouvez désactiver pour corriger les erreurs de build.

pour cette raison, il est important d'exécuter l'application de notification de construction lorsque vous utilisez l'enregistrement sécurisé, ce qui vous permettra de "réconcilier" vos modifications une fois qu'elles seront soumises. Réconcilier votre check-in fera simplement une get de l'enregistrement qui a été soumis par le serveur de compilation, mais il évitera les conflits puisqu'il comprend le contexte des modifications qui sont sur votre disque local. (Il comparera le contenu de votre disque local au contenu du serveur.) Si vous ne choisissez pas de réconcilier, vous aurez, malheureusement, des conflits d'écriture sur les fichiers qui ont été ajoutés.

(notez que ce scénario il ne créera pas de conflit dans la prochaine version de TFS - s'il n'y a pas de différence de contenu, TFS ne produira pas conflit.)

14
répondu Edward Thomson 2012-02-13 20:03:39
la source

la boîte de dialogue Visual Studio 2010 conflict resolution prend en charge multi-select.

Si vous sélectionnez le premier conflit, maintenez la touche Maj puis sélectionnez le dernier conflit, la résolution" Overwrite Local File or Folder " sera appliquée à tous les conflits sélectionnés.

vous pouvez aussi utiliser l'outil en ligne de commande tf résoudre /auto:OverwriteLocal pour résoudre les conflits.

26
répondu Grant Holliday 2013-08-08 21:41:27
la source

vous devez avoir tous les droits (contrôle total) sur un fichier ou dossier local spécifique. Check it out. Si ce n'est pas vrai, vous devez supprimer tous les fichiers locaux, modifier les droits et ensuite obtenir les derniers fichiers à partir du serveur.

0
répondu Dario 2013-11-28 17:47:16
la source

Autres questions sur