A gate is the integration tree, it has what is believed to be good
changesets.
Things normally don't go into the gate unless they have passed
peer review and regression tests on all platforms.
Have a gate for each active release.
For example, for BitKeeper we have 3.2.x and 3.3.x plus other
shorter lived gates coming and going as needed.
For each gate there is a gate queue.
You can do this all on a file server like so
/home/bk
bk-3.2.x - 3.2.x gate
bk-3.2.x-queue - changes which are ready, done, rejected
bk-3.3.x - 3.3.x gate
bk-3.3.x-queue - changes which are ready, done, rejected
etc.
In each
release
-queue there are directories called
ready/
done/
rejected/
The ready directory is where most of the activity is concentrated.
In the ready directory there are three entries for each feature or
bugfix:
ready/feature - symlink to the repository containing the change
ready/feature.RTI - text file containing the reason why this is needed
ready/feature.REVIEWED - text file containing review comments