On 02/22/13 12:14, David Woodhouse wrote: > If you and I each clone *today's* EDK2 tree and go off and do our own > sets of changes, then our work is pulled back into the tree (which has > moved on a little since then), we end up with the following topology > (newest at the top) > > o New HEAD (merging my work) > /| > | o Upstream commit merging your work > | |\ > D | C You and I both commit something in our own trees. > | | | > D | C You and I both commit something in our own trees. > | o | Newer upstream commit which came in while were were working > \ | / > o Original upstream commit we started from > | > > You'll note that the full history is preserved. You and I did our work > based on the original commit at the bottom of the above diagram, and > that fact is *important*.
I think here you could elaborate on why "--rebase" is not default for "git pull". Consider the following four conditions all at once: (1) you're on your own development branch (committing the D's or the C's), and (2) you aren't just ready to send out a pull request (ie. asking upstream to merge your work), and (3) you nonetheless want to benefit from upstream's progress that happened in the meantime (so you're considering "git pull"), but (4) you don't want to lose your original fork-off point and the history that goes with it. In this case you can't use "git pull --rebase" (= git fetch + git rebase). If you do a normal "git pull" however (= git fetch + git merge), then you get the new upstream changes, but you stay on your own branch, with the preexistent history and the ability to bisect later. You can continue working and the final upstream merge will happen just the same. o New HEAD (merging David's work) /| | o Upstream commit merging Cameron's work | |\ D | C David and Cameron both commit something in their own trees. | | | | | C Cameron commits something in his tree | | | | | M Cameron decides to pull in upstream changes thus far | |/| | o | Newer upstream commit which came in while they were working | | | D | C David and Cameron both commit something in their own trees | | | | o | Newer upstream commit which came in while they were working \ | / o Original upstream commit David & Cameron started from | The rightmost "lane" (Cameron's branch) remains bisectable, back to its original fork-off. Laszlo ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel