Fix long-standing excessive file merges
Since switching to the multihead approach, we've been creating
excessive file-level merges where files are marked as merged with
their ancestors.
This explicitly checks at commit time whether the two parent versions
are linearly related, and if so, reduces the file check-in to a
non-merge. Then the file is compared against the remaining parent,
and, if equal, skips check-in of that file (as it's not changed).
Since we're not checking in all files that were different between
versions, we no longer need to mark so many files for merge. This
removes most of the 'm' state marking as well.
Finally, it is possible to do a tree-level merge with no file-level
changes. This will happen if one user changes file A and another
changes file B. Thus, if we have have two parents, we allow commit to
proceed even if there are no file-level changes.
05f9e54f4c9b86b09099803d8b49a50edcb4eaab 644 a
54837d97f2932a8194e69745a280a2c11e61ff9c 644 b
05f9e54f4c9b86b09099803d8b49a50edcb4eaab 644 a
54837d97f2932a8194e69745a280a2c11e61ff9c 644 b
76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c
changeset: 2:9f827976dae4
tag: tip
user: test
date: Thu Jan 1 00:00:00 1970 +0000
summary: 2
05f9e54f4c9b86b09099803d8b49a50edcb4eaab 644 a
76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c
changeset: 3:c8225a106186
tag: tip
user: test
date: Thu Jan 1 00:00:00 1970 +0000
summary: 3
d6e3c4976c13feb1728cd3ac851abaf7256a5c23 644 a
76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c
changeset: 4:8dfeee82a94b
tag: tip
user: test
date: Thu Jan 1 00:00:00 1970 +0000
summary: 4
05f9e54f4c9b86b09099803d8b49a50edcb4eaab 644 a
54837d97f2932a8194e69745a280a2c11e61ff9c 644 b
3570202ceac2b52517df64ebd0a062cb0d8fe33a 644 c
changeset: 4:8dfeee82a94b
user: test
date: Thu Jan 1 00:00:00 1970 +0000
summary: 4
d6e3c4976c13feb1728cd3ac851abaf7256a5c23 644 a
76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c
changeset: 6:c0e932ecae5e
tag: tip
parent: 4:8dfeee82a94b
parent: 5:a7925a42d0df
user: test
date: Thu Jan 1 00:00:00 1970 +0000
summary: 6
d6e3c4976c13feb1728cd3ac851abaf7256a5c23 644 a
76d5e637cbec1bcc04a5a3fa4bcc7d13f6847c00 644 c
changeset: 7:3a157da4365d
tag: tip
user: test
date: Thu Jan 1 00:00:00 1970 +0000
summary: 7