In article <20101026200234.5f8e8...@pitrou.net>, Antoine Pitrou <solip...@pitrou.net> wrote: > You could use own of the "official" mirrors at > http://code.python.org/hg/
The "official" hg mirrors work great: in my experience, faster than svn and simpler with all the useful history information retained from the original svn repos. Thanks for that! As an example, for OS X TextMate users out there, with up-to-date Mercurial and Subversion bundles, try doing an Annotate on an hg clone of a Python branch vs a Blame on an svn co. With the hg clones and the hg rebase extension (now a standard part of hg), I've moved away from using hg mq patch queues for patch development although I still use the svn repos (until the transition is closer) and mq for installer build and regression testing. FWIW, my hg workflow these days is to clone a local "master" clone for each of 27, 31, and py3k repos from the official mirrors then just clone working copies from my local masters as needed for each issue. Using a local master speeds things up, potentially saves disk space as hg uses hard links for local clones where possible, and saves on network bandwidth. With work-in-progress committed to a working copy, I can update automatically to the latest tip by a two-step update: update the local master from the official mirror (via "pull") and then update the working copy from the local master and use rebase to manage any new merge conflicts. I couldn't quite get the two-stage pulls to completely work using one standard hg command so I wrote a "pull-clone" script that does the trick for me: import ConfigParser import os.path import subprocess import sys HG_DEFAULTS = '.hg/hgrc' HG_BIN = '/opt/local/bin/hg' if not os.path.exists(HG_DEFAULTS): sys.exit('No hg repository here') else: config = ConfigParser.ConfigParser() config.read(HG_DEFAULTS) try: default = config.get('paths', 'default') except ConfigParser.NoSectionError, ConfigParser.NoOptionError: default = '' if default.startswith('/'): subprocess.check_call([HG_BIN, 'pull', '-R', default], cwd=default) subprocess.check_call([HG_BIN, 'pull', '-u', '--rebase']) subprocess.check_call([HG_BIN, 'summary', '--remote']) -- Ned Deily, n...@acm.org _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com