2009-10-26 7 views
0

La qualité du code fusionné par TFS 2008 dépend-elle du langage de programmation utilisé? Je connais la fusion en Java/Subversion, et la fusion d'une branche à son tronc ne crée généralement pas beaucoup de conflits. Maintenant dans mon entreprise, nous utilisons VB.NET. Lorsque je fusionne deux fichiers, TFS ne reçoit pas toujours de blocs de code, par ex. ne trouve pas le bon If..then/end if lines. Pour vous donner un exemple, je veux dire: Le fichier 2 est créé en tant que branche du fichier 1. Les deux fichiers ont été modifiés plus tard, maintenant je vais fusionner ces fichiers et je reçois des confits: Les lignes marquées en fin de ligne (1) sont détecté comme correspondant, ce qui signifie que le gestionnaire d'événements ajouté Button1_Click est en cours de suppression.Qualité du code fusionné de TFS 2008

Maintenant, je me demande si ce comportement est par le langage (C# vs VB.NET) ou sont d'autres solutions de contrôle de source tout simplement mieux que TFS? (Et j'ai vraiment aimé TFS jusqu'à maintenant :))


Fichier 1:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not Page.IsPostBack Then 
     Label1.Text = "Hello" 
     Label2.Text = "World" 
    End If 
End Sub 

Protected Sub Button2_Click(ByVal sender, ByVal e as System.EventArgs) Handles Button2.Click 

    // .... 

    If Page.IsValid Then 
     Label3.Text = "Hello Button 2" 
    End If 

    // .... 
End Sub 

Fichier 2 (Direction du dossier 1):

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not Page.IsPostBack Then 
     fillTableFromDatabase() 
    End If // (1) 

End Sub 

Protected Sub Button1_Click(ByVal sender, ByVal e as System.EventArgs) Handles Button1.Click 
    // do something here 
End Sub 

Protected Sub Button2_Click(ByVal sender, ByVal e as System.EventArgs) Handles Button2.Click 

    // .... 

    If Page.IsValid Then 
    End If // (1) 

    // .... 
End Sub 
+0

subversion utilisation? – Grzenio

+0

Quel super commentaire utile. Jetez juste 1000 $ de logiciel parce qu'un type aléatoire fait un commentaire jetable sans argument de support. C'est utile! –

+0

Merci pour votre commentaire, mais concernant le sujet de ma question, votre commentaire est aussi utile que le sien. –

Répondre

0

Je dirais que c'était un problème avec l'algorithme de fusion dans TFS plutôt que d'être un problème causé par le langage.

Il y a quelques années, l'entreprise où je travaillais utilisait Perforce et qui faisait rarement des erreurs lors de la fusion. Les versions antérieures rencontreraient un problème si deux personnes ajoutaient du code à la fin du fichier mais qu'elles l'avaient corrigé au moment de la sortie des versions 2005 (en fait, elles auraient peut-être pu être corrigées plus tôt).

0

J'ai testé vos fichiers avec un outil tiers (KDiff3) et obtenu de meilleurs résultats. Vous pouvez changer les outils VS 2008 utilise pour la fusion et la comparaison:

http://blogs.msdn.com/jmanning/articles/535573.aspx

+0

J'ai trouvé l'outil DiffMerge (http://www.sourcegear.com/diffmerge/) en utilisant votre lien. Au moins il me semble que j'obtiens de meilleurs résultats avec ça. –

Questions connexes