This section describes the various branches that exist in the pcb development trunk.

It is assumed you are familiar with the git branch feature.

Some of these branches contain one or more git tags. Please note that it is considered good tagging practice not to alter tags after they are pushed to the upstream repository.

Below follows a list of branches:

master
This is the development branch from which releases are branched.
It is considered good practice to have "master" in a stable state, having that "make distcheck" exits successful and that git bisect has a chance to fight regression, and do its job properly.
Only senior developers and administrators can push to this branch.

pcb-$(x.y.z)
These are tagged branches used for (major.minor.micro) releases.
Only senior developers and administrators can push to these branches.
DO NOT REMOVE.

pcb-$(yyyymmdd)
see README.snapshots. These are tagged branches used by the snapshot releases.
Only senior developers and administrators can push to these branches.
DO NOT REMOVE.

LP$(Launchpad bug report number)
Topic branches for fixing Launchpad Bugs.
All pcb developers can push to these branches.
Note that adding characters behind the bug report number renders the branch not pushable for all developers and restricts it to be pushable for senior developers and administrators only.
It is considered good practice to remove a topic branch once it is fully merged or git cherry picked into "master".

home/$(user)/$(branch name)
Private topic branch of pcb developer $(user).
Typical usage of these branches is in development of new features or using them as a scratch pad.
Only the branch owner $(user) can push to this branch.
It is considered good practice to remove a topic branch once it is fully merged or git cherry picked into "master".

Now follows a list of older branches which may be stale:

clipper
A topic branch by Harry Eaton and Dan McMahill.
It looks as if this topic branch has been merged into master (see the "clipper-base" tag).

pcb-xaw
A stale topic branch containing old Xaw based pcb.
Superseded by the "pcb-20050315" release branch.

sdb-playpen
A topic branch under suspicion of being stale/obsolete.

sourceforge
A topic branch under suspicion of being stale/obsolete.

usermenu
A topic branch where Dan was working on allowing the gtk HID to load its menus from a menu resource file like the lesstif HID.
No guarantees that this branch will even build, much less function.
Feel free to try it out, but wait until it is merged back to the trunk before using it for any serious work.
It looks as if this topic branch has been merged into master (see the "after-usermenu-20070420" tag).