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

Reply via email to