Announcement

Collapse
No announcement yet.

Xdiff / Plastic SCM: Is this a great feature ? How close is BC ? (Video)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Xdiff / Plastic SCM: Is this a great feature ? How close is BC ? (Video)

    Plastic SCM / Move support in xdiff (Video)

    This URL

    New features, version control best practices and stories about the Plastic SCM development.


    makes this claim/statement:

    Move support in xdiff:
    One of the big things we just released in 3.0 is the new Xdiff.
    We call it cross-diff because it can locate code that has been moved, and we used to draw it on paper with crossing-lines.
    It is able to identify the code as "moved" even when it has been modified. And you can click on the "subdiff" to actually run an independent diff on the moved fragment as you can see below.

    Here is a video:

    ==> http://www.youtube.com/watch?v=kpRGtnQQRPs

    How does this stack up to the fantastic Beyond Compare ?

  • #2
    There are a lot of compare programs that "draw lines" between matching sections on the left and on the right. BC would easily detect the same changes as demonstrated in the Xdiff video. The only difference is that BC inserts null lines on the left and right so that the moved code is still aligned with the code it matches on the other side. Personally, I prefer to see code aligned with what it matches and dislike the "drawn lines' thing. The difference I see in Xdiff is that it has a flashier looking UI than a lot of other compare programs. It is "pretty"! But being pretty doesn't necessarily mean that it matches differences any better than the competition.
    BC v4.0.7 build 19761
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

    Comment


    • #3
      Hi,

      Please note that xdiff is not only about diff, is about blocks of code that has been moved, and it is able to locate the moved code even when it has been modified AFTER, so it has to do some sort of "fuzzy search". AFAIK no other tool does that, winmerge can detect "moved lines", but not "moved blocks" so it has nothing to do actually.

      Comment


      • #4
        The video does not show an example of anything that any other major diff engine I've used can't do (and I've tested at least a dozen). The true test against moved blocks would be to re-order multiple blocks as follows:

        Left Side Right side
        [block 1] [block 1]
        [block 2] [block 4]
        [block 3] [block 3]
        [block 4] [block 2]
        [block 5] [block 5]
        - or -
        [block 5] [block 1]
        [block 4] [block 2]
        [block 3] [block 3]
        [block 2] [block 4]
        [block 1] [block 5]

        If XDiff can correctly associate all five blocks together after such a move, then I'll be impressed... but that is not what was demonstrated in the video.
        BC v4.0.7 build 19761
        ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

        Comment


        • #5
          Hi there!

          You mean this ?

          Comment


          • #6
            Yes, that is a much better (albeit simple) demonstration of matching moved code.

            In the real world I would test it with two scripted SQL Server database schemas with hundreds of objects/blocks. It is always a challenge to find a compare tool that can handle database objects that have been scripted in a slightly different order.

            Edit: After another review I must admit that I didn't fully recognize significance of the crossed lines in the original examples. Thanks for introducing xdiff to these forums. Matching moved code is certainly something that has been on the Beyond Compare customer wish list for some time now.
            Last edited by Michael Bulgrien; 26-Jul-2010, 02:35 PM.
            BC v4.0.7 build 19761
            ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

            Comment

            Working...
            X