Switching PostgreSQL from CVS to Git

From PostgreSQL wiki
Jump to navigationJump to search

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] Completed itemGet a Windows-compatible version of Git
The currently available tools work well enough on Windows now
[D] Completed itemCheck on context diffs & Git
The extra tools described at Working with Git now do a reasonable job of handling this requirement
[D] Completed itemFix GitMirror script (Magnus)
[D] Completed itemChange buildfarm scripts, client and server side, to add git as an SCM (Andrew Dunstan)
[D] Completed itemCheck 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] Completed itemConfirm 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
Incomplete item 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.

After

[D] Completed itemDocumentation build
Developer documentation build (http://developer.postgresql.org/pgdocs/postgres/) scripts use CVS, point to git-cvs mirror. (Peter E.)
Incomplete item NLS
NLS service (http://babel.postgresql.org/) scripts rely on CVS, point to git-cvs mirror. (Peter E.)
[D] Completed itemCVS keywords
Remove all CVS keywords from the code
[D] Completed itemRename README.CVS
[D] Completed itemAdjust contents of cvs.sgml