Monotone uses a DAG to track ancestry. The nodes in the DAG are
annotated with SHA labels, identifying a revision.
I was wondering if it would be possible somehow, to annotate the edges
with SHAs that represent the changes between the nodes.
Then, a pluck operation, that imports a change from a different
branch, can register this operation in the _MTN directory, such that a
subsequent commit annotates the resulting edge in the DAG with the SHA
that is imported by the pluck, and the SHA that represents 'the total
change minus the plucked change'.
Afterwards, merges can possibly use the edge SHAs to increase the
granularity of the merge and avoid conflicts, especially conflicts
resulting from plucked changes.
I am not sure if this is possible, but perhaps it is worth a thought
and I decided to throw this out.