Another thing to keep in mind is that many fixes and features can be added with surprisingly little code. I often start by adding code, then looking at other areas in the code where similar things are done, and by the time I am finished, the patch is quite small and compact. When adding code, keep in mind that it should use the existing facilities in the source, for performance reasons and for simplicity. Often a review of existing code doing similar things is helpful. There are several ways to obtain the source tree.
Occasional developers can just get the most recent source tree snapshot from ftp.postgresql.org.
CVS allows you to download the source tree, then occasionally update your copy of the source tree with any new changes. Using CVS, you don't have to download the entire source each time, only the changed files. Anonymous CVS does not allows developers to update the remote source tree, though privileged developers can do this. You can also use CVSup, which has similarly functionality, and is available from ftp.postgresql.org. To update the source tree, there are two ways.