Version 2 (modified by ashfall, 21 months ago)


A brief guide to the basic Combinator functions used in Twisted development.

(Throughout the instructions on this page, replace ashfall with the username with which your svn account was created)

  • Get your commit rights. Head to #twisted, bug a core developer till he/she creates an svn account for you. You will need to provide your SSH key. If it's on launchpad (it's good to have it on launchpad), you can just point them there.
  • You should now be able to ssh to
    (Note that this is just a one time check, in general, you won't log in to anymore, and you should use your usual local shell from here.)


  • Have a directory where your svn checkouts will be. For example, ~/MyProjects/.
  • Get Combinator from launchpad and put it into a directory it can recognize:
    cd ~/MyProjects; mkdir Divmod; bzr branch Divmod/trunk
  • Enter this in a shell (or put it in a startup file):
    eval `python path/to/Divmod/trunk/Combinator/`
  • To get started, check out a read-write version of Twisted trunk and add it to your Python import path:
    chbranch Twisted trunk svn+ssh://
    • Now if you import Twisted in that shell, you should get the new checkout:
      python -c 'from twisted import __file__; print __file__'

Making a new branch:

  • Use mkbranch:
    mkbranch Twisted <your-branch-name>-<ticket number>
    • Twisted uses a particular convention for branch names to help with trac integration: <descriptive words about the purpose of the branch>-<ticket number>. For example, stdio-endpoint-plugin-5729.
    • The ticket number in the branch name is how the "Branch:" field in trac gets populated.
  • mkbranch creates the branch on the svn server and gives you a checkout of it in ~/MyProjects/Twisted/branches/. So once you've made it, you can work on the checkout there, commit whatever changes you want, and then eventually submit it for review.