<div dir="ltr">I think it would probably make the most sense to land this as a single merge-commit (from the 2700-commit rewritten history you've created) onto llvm-project master, rather than as 2700 individual toplevel commits to master. (Which means: disable the merge-commit prohibition in the github configuration, temporarily, push this commit, and then enable it again).<div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Dec 17, 2019 at 5:10 PM Tom Stellard via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 12/17/2019 01:30 PM, Peter Waller via llvm-dev wrote:<br>
> Hi All,<br>
> <br>
> The flang project (a Fortran compiler) is getting ready to join the <br>
> monorepo. We intend to preserve the existing history by rewriting the <br>
> existing commits as a linear series of commits on top of llvm-project.<br>
> <br>
> I understand the flang community would like to do this before the LLVM <br>
> 10 branch in due in mid January, so please speak up soon if you see <br>
> anything needing fixing in what I write below.<br>
> <br>
> I've taken into account the discussion raised during the MLIR landing <br>
> discussion found at <br>
> <a href="http://lists.llvm.org/pipermail/llvm-dev/2019-November/136813.html" rel="noreferrer" target="_blank">http://lists.llvm.org/pipermail/llvm-dev/2019-November/136813.html</a>. As <br>
> with MLIR, we rewrite the commits so that flang's work all appears to <br>
> happen in the flang directory, starting with llvm-project master as it <br>
> appears today. The topology of the f18 history was fairly interesting, <br>
> which is why I ended up writing a new program to rewrite it rather than <br>
> using an existing one.<br>
> <br>
> === Key links<br>
> <br>
> * Resulting tree of the rewrite:<br>
> <a href="https://github.com/peterwaller-arm/f18/tree/rewritten-history-v2-llvm-project-merge" rel="noreferrer" target="_blank">https://github.com/peterwaller-arm/f18/tree/rewritten-history-v2-llvm-project-merge</a><br>
> <br>
> * Rewritten history, with flang commits applied on top of llvm-project <br>
> master:<br>
> <a href="https://github.com/peterwaller-arm/f18/commits/rewritten-history-v2-llvm-project-merge" rel="noreferrer" target="_blank">https://github.com/peterwaller-arm/f18/commits/rewritten-history-v2-llvm-project-merge</a><br>
> <br>
> * The history rewriting program is published here:<br>
>    <a href="https://github.com/flang-compiler/f18/pull/854" rel="noreferrer" target="_blank">https://github.com/flang-compiler/f18/pull/854</a><br>
> <br>
> * Latest mailing list discussion of rewrite on flang-dev:<br>
> <a href="http://lists.llvm.org/pipermail/flang-dev/2019-December/000122.html" rel="noreferrer" target="_blank">http://lists.llvm.org/pipermail/flang-dev/2019-December/000122.html</a><br>
> <br>
> === Additional considerations<br>
> <br>
> * Existing references to pull request and issue numbers are rewritten so <br>
> that they point at the originals as, e.g. flang-compiler/f18#123. This <br>
> prevents those patches from generating bogus references to Issues/PRs of <br>
> llvm-project if/when those appear in the llvm-project repository.<br>
> <br>
> * Developers using the llvm-project repo, when they pull after this <br>
> push, will see 2,700ish commits appear on the tip. These will follow on <br>
> as normal commits from wherever master is at the time of the push. The <br>
> fetch takes 40s and I see my ".git" directory grow by approximately <br>
> 90MiB when I simulate this.<br>
> <br>
<br>
I think we may want to disable the commit emailer before all these<br>
new commits are pushed.  Once you are ready to push, can you pick a<br>
specific time and date for the push and then coordinate with Mike (cc'd)<br>
and myself, so we can avoid spamming the mail server.<br>
<br>
Thanks,<br>
Tom<br>
<br>
> * Rewriting and validating the rewritten f18 history is sufficiently <br>
> fast that I don't think it will be necessary to pause commits to LLVM. <br>
> The script runs in a few seconds. Before this is done though, I think <br>
> new commits should no longer be accepted on the original repository.<br>
> <br>
> * You can simulate the experience of the fresh merge with `git remote <br>
> add peterwaller-arm <a href="https://github.com/peterwaller-arm/f18" rel="noreferrer" target="_blank">https://github.com/peterwaller-arm/f18</a> && time git <br>
> fetch peterwaller-arm rewritten-history-v2-llvm-project-merge`, and then <br>
> look at the peterwaller-arm/rewritten-history-v2-llvm-project-merge <br>
> branch with git log.<br>
> <br>
> * Remember that you can restrict the "git log" output to what you are <br>
> interested in by specifying a directory, e.g. `git log clang/`.<br>
> <br>
> That's all for now. Season's greetings!<br>
> <br>
> - Peter<br>
> <br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
> <br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>