Patch Set 1:

Great.

Two observations:
Wouldn't we rather use two-way compare for synchronizing with HEAD?

When we compare with another branch (or tag, or commit), I would suppose that we use the common ancestor commit as base and do also a comparison of the contents of the blobs.