1

Nous utilisons TFS 2015 avec son contrôle de source natif (non GIT) pour héberger nos solutions VS 2013.Lorsque vous utilisez des branches avec VS2013 et TFS2015, vous devez modifier les fichiers de projet pour la branche

Dernièrement, j'ai créé une branche. J'ai dû corriger manuellement les sections Scc dans les fichiers vcxproj, car ceux-ci contenaient explicitement le nom de la branche dans le paramètre SccProjectName. Même lorsque je voulais fusionner la branche vers le réseau principal. Je devais faire attention à ce que les sections modifiées ne soient pas ramenées au coffre. C'est très ennuyeux. Comment résoudre ce problème?

J'ai cherché et trouvé beaucoup de pages suggérant d'utiliser

<SccProjectName>SAK</SccProjectName> 
<SccLocalPath>SAK</SccLocalPath> 
<SccAuxPath>SAK</SccAuxPath> 
<SccProvider>SAK</SccProvider> 

avec les métadonnées de liaison Scc situé ailleurs (Mssccprj.scc?). Cela me semble raisonnable.

Mais je ne comprends pas ce que nous devons faire explicitement et ce qu'il pourrait casser. Je ne suis pas expert dans l'installation et la configuration de TFS.

Répondre

2

Je recommande également d'utiliser ci-dessous Scc, en fait c'est le réglage Scc par défaut lorsque vous ajoutez un projet au contrôle de source dans TFS.

<SccProjectName>SAK</SccProjectName> 
<SccLocalPath>SAK</SccLocalPath> 
<SccAuxPath>SAK</SccAuxPath> 
<SccProvider>SAK</SccProvider> 

Dans votre cas, vous pouvez essayer de supprimer le nom de la branche dans le cadre SccProjectName, tant pour le principal et une autre branches si c'est une option sans limites politiques.

Une autre façon est d'essayer d'exclure les fichiers .vcxproj s'il n'y a pas d'autres changements doivent être fusionnés vers le tronc.

  • Ce que nous faisons dans ce cas est que nous effectuons la fusion, puis annuler les modifications pour les fichiers que nous voulons exclure. Une fois cela fait, nous vérifions les changements. Lorsque vous effectuez une fusion, elle fusionne uniquement dans votre espace de travail . Il ne va pas au serveur jusqu'à votre checkin.
  • Vous pouvez utiliser tf.exe de la ligne de commande pour forcer les fichiers .vcxproj ne pas être inclus dans l'opération de fusion: tf.exe merge /discard <path to .vcxproj file > <destination branch>

    Voir Merge Command pour plus de détails. référence aussi ce fil: Exclude a config file from the merge process

Pour info Mssccprj.scc liés, s'il vous plaît se référer à this article, l'espoir qui aide.

+0

Salut, merci. Je voudrais avoir une compréhension plus profonde que juste essayer des choses bien. En ignorant/annulant les modifications, les fichiers vcxproj sont ce que j'ai fait jusqu'à présent. Mais ce n'est pas satisfaisant dans le cas où il y a de vrais changements dans les fichiers vcxproj qui doivent être fusionnés. – Scrontch

+0

@Scrontch Alors qu'en est-il du Scc par défaut mentionné ci-dessus? Si le paramètre SccProjectName n'est pas défini, le problème doit être résolu. –