Re: [RFC] Applying a graft to a tree and "rippling" the changes through the history
From: Ryan Anderson <hidden>
Date: 2016-06-15 22:42:10
Junio C Hamano wrote:
Ryan Anderson [off-list ref] writes:quoted
I've written a tool that will take a single commit, add it as a parent of another commit, and recreate the history above that second commit in a fully compatible manner.I think the procedure is reproducible, which is a very nice property to have for a tool like this, but I am not sure what you mean by "in a fully compatible manner". What are you compatible with?
Well, what I meant was, "It creates a history that is purely a superset of the old history, so merges should work cleanly from the pre-graft subhistory to the fully merged history." But clearly I was too ... terse. IOW, this should work perfectly, assuming neither tree has been pulled into since the history was merged into historical-graft tree: $ cd linux-head $ git branch -b ryan-hacking HEAD $ quilt push -a $ git commit -a -m "Apply quilt tree" $ cd ../linux-historical-graft/ $ git pull ../linux-historical-graft/
Also another rhetorical, tongue-in-cheek question. What is your plan to ripple the graft through to update signed tags? ;-)
:) Well, since I can't resist answering your rhetorical question: They signed a specific DAG. I'm providing a richer, more complete DAG that is a pure-superset of the one they signed. It is not, however, equivalent, so their signature is not related to the superset DAG I have created. In practice, however, I don't expect that any tag-signers would state that there is a meaningful difference between the two DAGs, from the perspective of their signature. FYI - I don't think merging the trees like this is a good idea, from the perspective of something like gitk - gitk took long enough to startup and display something on my merged tree here that I gave up and killed it off.
Attachments
- signature.asc [application/pgp-signature] 256 bytes