Re: Does content provenance matter?
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:53:46
Junio C Hamano [off-list ref] writes:
But a more illustrative situation to consider is this. What if the change were not just "copy B/X to C/X", but was "concatenate the first half of B/X and the second half of C/X to create a new D/X".
A crucial question to the original poster was missing here:
If "a system that tracks provenance better than Git" wanted to record
something in such a situation, what does it record and how is the
recorded information used?
As it happens, because our commit records the whole tree state and its parent commit, the "content provenance" of what is in D/X is precisely tracked. Look at the tree of the parent commit and look at the result, and you will notice the first half of D/X is identical to the first half of B/X before the commit and the second half of D/X is identical to the second half of C/X before the commit. In a situation where "provenance" is disputed, it does not matter if D/X was created by mechanically running head -n $n B/X >D/X tail -n $n C/X >C/X
Typo: "tail -n $n C/X >>D/x"
or if you typed the file afresh. You could try to argue "No, your honour, I did not copy from these two files. I typed it myself from scratch and there is no plagiarism involved. They are all my words." But in the end, by comparing the tree state before your change and after your change, it would be very clear to any sane person that D/X is identical to the first half of B/X and the second half of C/X. Also see http://article.gmane.org/gmane.comp.version-control.git/217 aka one of the most important messages in the history of the Git mailing list for inspirations.