Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TFS 2008合并代码的质量_C#_Vb.net_Merge - Fatal编程技术网

C# TFS 2008合并代码的质量

C# TFS 2008合并代码的质量,c#,vb.net,merge,C#,Vb.net,Merge,TFS 2008合并的代码的质量是否取决于所使用的编程语言?我知道在Java/Subversion中进行合并,并且将分支合并到其主干通常不会产生太多冲突。现在在我的公司,我们使用VB.NET。当我合并两个文件时,TFS并不总是获得正确的代码块,例如,找不到正确的If..then/end If行。举个例子,我的意思是:文件2被创建为文件1的一个分支。这两个文件后来都被更改了,现在我要合并这些文件并接收conficts:如果检测到行(1)对应,则标记的end将被删除,这意味着添加的事件处理程序按钮1

TFS 2008合并的代码的质量是否取决于所使用的编程语言?我知道在Java/Subversion中进行合并,并且将分支合并到其主干通常不会产生太多冲突。现在在我的公司,我们使用VB.NET。当我合并两个文件时,TFS并不总是获得正确的代码块,例如,找不到正确的If..then/end If行。举个例子,我的意思是:文件2被创建为文件1的一个分支。这两个文件后来都被更改了,现在我要合并这些文件并接收conficts:如果检测到行(1)对应,则标记的end将被删除,这意味着添加的事件处理程序按钮1\u Click将被删除

现在我想知道这种行为是由语言(C#vs.VB.NET)造成的,还是其他源代码管理解决方案比TFS更好?(到目前为止,我非常喜欢TFS:))


文件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
文件2(文件1的分支):


我认为这是TFS中合并算法的一个问题,而不是语言引起的问题


几年前,我工作的公司使用Perforce,在合并时很少出错。如果有两个人在文件末尾添加了代码,那么早期版本可能会有问题,但在2005年版本发布之前,他们已经解决了这个问题(事实上,他们很可能已经解决了这个问题)。

我使用第三方工具(KDiff3)测试了您的文件,并获得了更好的结果。您可以切换VS 2008用于合并和比较的工具:


这是一个多么好、有益的评论啊。只需扔掉1000美元的软件,因为一些随机的家伙会在没有支持理由的情况下发表一次性评论。真有帮助!谢谢你的评论,但是关于我问题的主题,你的评论和他的一样有用。使用你的链接找到工具DiffMerge()。至少在我看来,我用它得到了更好的结果。
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