Switching PostgreSQL from CVS to Git

From PostgreSQL wiki

The master PostgreSQL repository uses CVS. Some committers and many regular contributors are now using Git for version control instead. There's some evidence that switching the master repo over to git would be a productivity boost for the project. There are a few issues that need to be cleared before that is practical however.

Before

[D]Get a Windows-compatible version of Git

The currently available tools work well enough on Windows now

[D]Check on context diffs & Git

The extra tools described at Working with Git now do a reasonable job of handling this requirement

[D]Check whether all the buildfarm machines can be made to work directly with Git (Andrew Dunstan)

If not, some sort of CVS emulator (such as git-cvsserver) will need to be setup. older buildfarm members that just can't compile and run git are a possibility.

- some failures, will need CVS server

[D]Confirm past releases can be built identically from Git, using binary diff

Initial testing suggests there are a few problem tags- Small issues with incremental repo, new build will not have this issue

Provide backport examples

Tom requested suggestions for replacing tools used for backporting across multiple versions using a checkout per branch. Currently cvs2cl helps with this task, it needs to be replaced with a similarly friendly approach. One possibility is using multiple clones with hooks that copy revisions between each other when they are committed, which is complicated to setup. Among a list of several simpler alternatives, git-new-workdir seems to be the most straightforward to use. There needs to be a fully worked out example that everyone is happy with here though.