SGDM merge is broken!

This forum is now locked, since Gold Support is no longer offered.

Moderator: SourceGear

Locked
stevek2
Posts: 70
Joined: Wed Jun 23, 2004 5:53 pm

SGDM merge is broken!

Post by stevek2 » Wed Jan 10, 2007 2:13 pm

I performed a merge branches operation with Vault 3.5.1, and one of my files had a number of merge conflicts. So I ran 'Show Merge' and I have attached a screenshot of what SGDM is displaying.

The problem is that line 21 was inserted from the origin, but line 26 is NOT inserted, when there appears to be no reason not to insert this line (ie, this is not a conflict).

This is VERY disconcerting, and makes me worry that I can't trust automatic merges in Vault. Am I missing something?

Thanks,
Steve
Attachments
vault-diff.jpg
vault-diff.jpg (277.79 KiB) Viewed 3603 times

lbauer
Posts: 9736
Joined: Tue Dec 16, 2003 1:25 pm
Location: SourceGear

Post by lbauer » Wed Jan 10, 2007 3:34 pm

These merge results show the completed merge. A merge like this is based on not only the origin and target files, but also, a baseline that is the common ancestor of the two versions.

Most likely the common ancestor to the files had line 26 in it. The origin file on the right has line 26 in it. This means the file was deleted in the target file on the left after the branch from the common ancestor.

In a merge, if both the baseline (ancestor) and one of the branches has the same line, we assume difference (in this case, deleted line) is the change that should be preserved, because it is the latest change to the file.
Linda Bauer
SourceGear
Technical Support Manager

stevek2
Posts: 70
Joined: Wed Jun 23, 2004 5:53 pm

Post by stevek2 » Wed Jan 10, 2007 5:35 pm

After studying this, I see that the merge result is actually correct, but the presentation was really confusing. What happened is that line 26 was _deleted_, and this deletion was put into the merge result. But then why is line 26 shown as green in the Origin pane? Because in a two-way diff between the Merge file and the Origin File, line 26 appears only in the Origin file, so it's green -- but to me, this makes it appear that line 26 in the Merge Result came from the Origin pane, when in reality it was the Target file's change that was propagated to the Merge result. This is really confusing...

It would be nice if I could easily tell the origin of changes in the Merge pane -- did it come from the left side or the right side?

Also, any time I see green in either the Target or Origin panes but not in the Merge Result, this actually means that a _deletion_ was performed. Am I understanding this right?

Locked