Please help Python team decide on a VCS

Adrian Wilkins adrian.wilkins at gmail.com
Mon Dec 1 11:31:14 GMT 2008


Had a look at the page and I've tried to fill in some of the empty
spaces, plus what I feel is a small improvement on just raw patch output.

== One-off patch ==

bzr branch http://code.python.org/python/trunk
cd trunk

# while feature_not_done:
#   Edit some code.
bzr commit -m'Stuff I did'
#   is feature done?

bzr send -o ../__patch__
# This produces a bundle with both a patch and the metadata from locally
committed revisions


== Patch review ==

# Download the patch file (from bzr send) to workspace
bzr branch http://code.python.org/python/trunk test_patch_branch
cd test_patch_branch
bzr merge ../patch.diff
# resolve any conflicts
bzr commit -m "Merged patch from patch_author"
# Test
# if passed:
bzr push http://code.python.org/python/trunk
# Patch now part of trunk
cd ..
rm -r test_patch_branch


== Backport ==

This involves cherry picking which I explicitly avoid, and the test case
probably merits thought. In short, I don't feel very qualified to answer
this one.

== Coordinated Development of New Feature ==

# Create branch
bzr branch http://code.python.org/python/trunk killer_rabbit
# Push branch to server
bzr push http://code.python.org/python/branches/killer_rabbit
# hackhackhack
bzr commit -m "Killer Rabbit Feature initiated"
# Other developers need to see the awesome fluffiness
bzr push
bzr: ERROR: These branches have diverged.  Try using "merge" and then
"push".
# Darn, Brave Sir Robin got there first
bzr merge http://code.python.org/python/branches/killer_rabbit
bzr commit -m "Merged"
bzr push
# Or maybe we should act a bit more SVN-like for a while
bzr bind http://code.python.org/python/branches/killer_rabbit
# Now all my commits go the server right away, that'll fox Sir Robin!


== Separation of issue dependencies ==

# Start fixing vulnerability_to_grenades
# Go to my local repository
cd ~/repository
bzr branch http://code.python.org/python/branches/killer_rabbit
grenade_vulnerability
# grab a working tree
cd ~/workspace
bzr checkout ~/repository/grenade_vulnerability killer_rabbit
cd killer_rabbit
# hackhackhack
bzr commit -m "Soon those pesky Grail Knights will quail once more!"
# Discover that killer_rabbit cannot burrow
cd ~/repo/
bzr branch killer_rabbit inability_to_burrow
cd ~/workspace/killer_rabbit
bzr switch inability_to_burrow
# hackhackhack
bzr commit -m "Subterranean prowess restored!"
# Now back to something completely different
bzr switch grenade_vulnerability
bzr merge ~/repository/inability_to_burrow
bzr commit -m "Merged burrowing code"
# hackhackhack
bzr commit -m "Killer Rabbit now burrows rapidly to avoid grenade damage"




More information about the bazaar mailing list