Качество объединенного кода TFS 2008 - PullRequest
0 голосов
/ 26 октября 2009

Зависит ли качество кода, объединяемого в TFS 2008, от используемого языка программирования? Я знаю слияние в Java / Subversion и слияние ветки с ее стволом, как правило, не создает много конфликтов. Сейчас в моей компании мы используем VB.NET. Когда я объединяю два файла, TFS не всегда правильно получает блоки кода, например, не находит правильные If..then / end if строки. Чтобы дать вам пример, я имею в виду: Файл 2 создан как ветвь Файла 1. Оба файла были изменены позже, теперь я собираюсь объединить эти файлы и получаю конфликты: отмеченные строки end-if (1) определяется как соответствующий, что означает, что добавленный обработчик события Button1_Click удаляется.

Теперь мне интересно, является ли это поведение языком (C # по сравнению с 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):

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

Ответы [ 2 ]

0 голосов
/ 22 декабря 2009

Я проверил ваши файлы с помощью стороннего инструмента (KDiff3) и получил лучшие результаты. Вы можете переключать инструменты, которые VS 2008 использует для слияния и сравнения:

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

0 голосов
/ 26 октября 2009

Я бы сказал, что это проблема с алгоритмом слияния в TFS, а не проблема, вызванная языком.

Несколько лет назад фирма, в которой я работал, использовала Perforce, и она редко допускала ошибки при слиянии. В более ранних версиях возникла бы проблема, если бы два человека добавили код в конец файла, но они исправили его к тому времени, когда вышли версии 2005 года (на самом деле они вполне могли бы исправить это раньше).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...