> One approach is to literally throw that history away and just submit a plain patch, as is often done with git. I wanted to try something different that would keep all the history, but also have a view of which path through the dag was the main history.
note that git doesn't force you to throw away the history.
If you pull from the mainline, create your patch, and send a pull request, your history will show up in the main repository.
you can even edit your patch history prior to sending the pull request. This is commonly done by people doing major changes as it lets them clean things up and make each patch 'correct' and self contained rather than showing the reality where one patch may introduce a bug that's fixed several patches later.
the only question is defining "which path was the main history" because git really doesn't define a "main history".