<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Oct 16, 2018 at 1:55 AM, Whisperity via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">After this "inner review" is done, we usually introduce them to the<br>
biggest bane of all Git works: rebasing. If their checker works on the<br>
local fork (whichever latest release of master they did), we, of<br>
course, require them to do a rebase</blockquote><div><br></div><div>It's not like this is any easier with a different CVS. Certainly not with svn. Git just lets you find the problems faster :-)</div><div><br></div><div>I *highly* recommend git-imerge <a href="https://github.com/mhagger/git-imerge">https://github.com/mhagger/git-imerge</a></div><div><br></div><div>With simple "git rebase" you learn that your commit conflicts with *something* in the firehose of maybe thousands of commits on master. But which one? No idea.</div><div><br></div><div>With a git-imerge rebase you learn precisely *which* master commit conflicts with precisely which of your local commits. You see the commit messages of both commits, so you know what was trying to be achieved. And there are no other diffs unrelated to the two conflicting commits.</div><div><br></div><div>git-imerge takes a bit longer than a standard git rebase, but it's mostly your computer doing the work, not you. You can go to lunch (or go to sleep) and then fix the problems it found.</div><div><br></div><div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span> </span># unrelated to git-imerge, recommended with normal merge/rebase too<br></div>git config merge.conflictstyle diff3<br></div><div><br></div><div>git checkout master</div><div>git imerge start --name=my-new-rebased-branch --goal=rebase my-branch<br></div><div><br></div><div># if merge error</div><div># fix the problems. Compile, test, etc</div><div><br></div><div>git add ...</div><div>git imerge continue</div><div><br></div><div>git imerge finish</div><div># test your new branch more extensively then rename branches as desired</div><div><br></div></div></div></div></div></div></div>