Vegard Nossum <vegard.nossum@xxxxxxxxxx> writes:
Step 1:
* git send-email needs to include parent SHA1s and generally all the
information needed to perfectly recreate the commit when applied so
that all the SHA1s remain the same
* git am (or an alternative command) needs to recreate the commit
perfectly when applied, including applying it to the correct parent
You can record and convey the commit object name a series is meant
to be applied on top already, and it in general is a good way to
give a wider context in order to explain and justify the series.
On the other hand, "all the information needed to recreate..." is
not very useful. If you want the commit object to be exactly what
you want to see at the tip of the end result, you are better off
asking your upstream to pull. Using e-mail for that makes you and
project participants give up a lot of benefits the workflow based on
e-mail gives you, the biggest of which is the ease of giving
suggestions for improvements. Once you insist "perfectly recreate
the commit", you are not willing to take any input from the
sidelines---worse yet, you are even dictating when the upstream
runs "git am" to turn them into commits, and do so without reading
the patches (there is no point reviewing as the person who runs "git
am" is not even allowed to fix typo or make obvious fixes to the
code, which will fail to perfectly recreate the commit).
In short, one should resist temptation to bring up "perfect
reproduction" when one talks about e-mail workflow.