<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 26 June 2017 at 07:39, Paul Moore <span dir="ltr"><<a href="mailto:p.f.moore@gmail.com" target="_blank">p.f.moore@gmail.com</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"><span class="gmail-">On 25 June 2017 at 18:31, Donald Stufft <<a href="mailto:donald@stufft.io">donald@stufft.io</a>> wrote:<br>
><br>
> I have used it. I don’t use it every day but I’ve never had it fail on me<br>
> unless the contributor has unchecked the flag. I just ``git remote add<br>
> <github username> <github url>`` then checkout their branch, add more<br>
> commits, and push to their branch.<br>
<br></span>The decision to move to git/github has been made. It's not up for<br>
debate whether core devs need to learn to deal with it. But we do need<br>
to acknowledge that there's a significant learning curve, and while<br>
core devs are contributing from their free time, learning the new<br>
tooling is a major distraction from what they actually want to do,<br>
which is work on Python code.<br></blockquote><div><br></div><div>I went  through this transition a few years ago when I changed employment (and didn't enjoy it in the slightest). Coming from Mercurial, Git feels primitive (I mean that literally - common functionality often requires low-level, arcane invocations). I can keep all of the Mercurial command-line that I use regularly in my head, whereas with Git I always have to go back to the manual even for things that I use all the time, and I'm often unsure if I'll get the result I expect. As a result, I've avoided using Git directly as much as possible.</div><div><br></div><div>Instead, my personal recommendation for people who are experienced with Mercurial but not Git is to use Mercurial with the hggit plugin. It's not ideal, but since Mercurial functionality is almost a superset of Git functionality, it works so long as you don't use things that Git can't handle.</div><div><br></div><div>The most important things to be aware of IMO are:</div><div><br></div><div>1. Avoid the use of named branches and instead use bookmarks (a workflow I personally hate, but it's the closest match to git branches, and I know I'm an anomaly in preferring named branches).</div><div><br></div><div><div>2. Last I checked hggit can't force-push to a git repository after history-modifying actions (e.g. rebase) so after such actions it's necessary to delete any existing branch in a local git repo, hg push to that then force-push to Github. This wnew branch head.</div></div><div><br></div><div>So the workflow I use for working with Github is (after enabling hggit):</div><div><br></div><div>git clone <repo> <repo>.git</div><div>hg clone git+<repo>.git <repo.hg></div><div><br></div><div>cd <repo>.hg</div><div>...</div><div><br></div><div><div>cd <repo>.git</div><div>git branch -d  <bookmark><br></div></div><div><br></div><div>cd <repo>.hg</div><div>hg push -B <bookmark> <repo>.git</div><div><br></div><div>cd <repo>.git</div><div>git push --force<br></div><div><br></div><div>Although I use a Git GUI to avoid having to remember the git commands ...</div><div><br></div><div>Tim Delaney</div></div></div></div>