Re: [RFC] Applying a graft to a tree and "rippling" the changes through the history
- From
- Ryan Anderson <ryan@michonline.com>
- Date
- Nov 7, 2005, 02:22 UTC
- Message-ID
- <436EBA69.6000900@michonline.com>
- In-Reply-To
- <7vll01ut6j.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano wrote:
Show 12 quoted lines
> Ryan Anderson <ryan@michonline.com> writes: > > >>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.