On 11/24/05, Georg Viehöver <viehoever@sigma-c.de> wrote:
> Hi Sjoerd,
>
> unfortunately, most CM system merge files based on lines. I.e. they have no idea about programming languages (e.g. structures like blocks, methods, classes) or dependencies between files (e.g. .cpp and .h files). Merging, conflict detection, conflict resolution happens only by looking at the lines of files. It is quite obvious that this can be insufficient. Nevertheless, this strategy is successful surprisingly often.
>
> Does anybody know of "language aware" merge tools? I think that ClearCase has something for XML, but I am not sure.

It doesn't do merges (that I recall), but MS's WinDiff (installs with
Visual Studio) is able to indicate if a block of code has moved. For
example, if I move a function from the middle of a file to the end,
it'll show that whole block as having moved with a line indicating the
move, not X lines removed from the middle of the file and X added to
the end.