(This is because I use mercurial rarely enough and commit to Python even more rarely; so I always forget what incantations I used last time…)
hg clone http://hg.python.org/cpython hg.python.org
hg clone hg.python.org issue1234
cd issue1234
hg up 3.3
hg import --no-commit http://.../fixedit.patch
# Do whatever
# Edit Misc/NEWS
hg commit -m "... (Patch by ...)"
hg up default
hg merge 3.3
# Stuff happens including, probably, Misc/NEWS conflicting
# Copy Misc/NEWS.orig back to Misc/NEWS and re-edit
hg resolve -m Misc/NEWS
# Do whatever
hg commit -m "... (Patch by ...)"
(Watch out for push races if other devs have committed…)
hg push ssh://hg@hg.python.org/cpython