merge: fix spurious merges for copies in linear updates
We make better use of contexts to accurately identify copies that
don't need merges.
Add a simple test and update other tests.
=======================
Should display 'First commit message'
description:
First commit message
=======================
Should display 'Second commit message'
description:
Second commit message
=======================
Should display 'Third commit message\n This is the 3rd log message'
description:
Third commit message
This is the 3rd log message
=======================
Should display 'Fifth commit message\n This is the 5th log message'
description:
Fifth commit message