Does the quality of code merged by TFS 2008 depend on the used programming language? I know merging in Java / Subversion, and merging a branch to its trunk usually does not create much conflicts. Now in my company, we use VB.NET. When I merge two files TFS does not always get code blocks right, e.g. does not find the right If..then / end if lines. To give you an example, I mean: File 2 is created as a branch of File 1. Both files were changed later, now I'm going to merge those files and am recieving conficts: The marked end-if lines (1) are detected as corresponding, meaning the added event handler Button1_Click is being deleted.
Now I wonder if this behavior is by language (C# vs. VB.NET) or are other source control solutions just better than TFS? (And I really liked TFS up to now :) )
File 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
File 2 (Branch of File 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