[Python-Dev] PEP: Collecting information about git

Paul Moore p.f.moore at gmail.com
Wed Sep 16 10:46:57 CEST 2015


On 16 September 2015 at 06:10, Stephen J. Turnbull <stephen at xemacs.org> wrote:
>   The only thing that hg really lost badly on
> IMO was "named branches", and that's been fixed with bookmarks.

FWIW, I still find bookmarks confusing to use compared to git
branches. I don't know whether that's because bitbucket doesn't
support them well, or whether I don't know all the details of
bookmarks, but they just seem to get me in a muddle.

For example, my usual workflow is

(in a local clone of my fork on github)

git checkout -b featureX
... hack ...
git commit
git push -u origin featureX # Push the local branch to github and set
as remote tracking

# later, on a  different PC
git pull
git checkout featureX # Sets up a remote tracking branch
... hack ...
git commit
git push

# Finally, make a PR via the github UI

# Once the PR is accepted
git branch -d featureX # Remove my local branch, deleting all of the
no longer required changesets

I don't know of an equivalent of remote tracking branches in
Mercurial. Maybe bookmarks work that way by default? I seem to
remember that when I tried out bookmarks, bitbucket either didn't
support them, or did so pretty badly.

Also, my workflow involves 2 separate PCs, and I use my personal
github forks to share work in progress between them. Mercurial makes
it very difficult to edit "published" history, and I can't tell it
that my bitbucket repo doesn't count as "published" (as far as I
know). Git lets me do what I want (with some "are you sure?" prompts
when I force-push a rebased/edited branch, for example).

On the other hand, I *love* Mercurial queues. I'd happily use them for
work-in-progress editing as a replacement for some of my uses of git
branches. But they are essentially local-only, and it's basically not
practical to share them between my 2 PCs via bitbucket, as far as I
can tell. (I know you can version the patch queue, and share patch
queues on bitbucket, but it's under-documented and clumsy, whereas git
branches work exactly the same as they do locally...)

Having said all of this, the main reason I switched from Mercurial to
Git, like many others, was for github. Once I did, I learned how to do
a lot of things in git that I hadn't been able to do in Mercurial (it
was some time back, and they may not even have been possible, like
history editing) and now I find that even if Mercurial does have the
feature these days, the cost of learning how it works puts me off. So
my Mercurial use remains at the very basic "just enough to use it when
I have to" level.

Paul


More information about the Python-Dev mailing list