Difference between revisions of "Git"
From Apache OpenOffice Wiki
Line 33: | Line 33: | ||
{| border="1" cellspacing="0" cellpadding="5" | {| border="1" cellspacing="0" cellpadding="5" | ||
!What | !What | ||
− | |||
!CVS | !CVS | ||
+ | !git | ||
!SVN | !SVN | ||
|- | |- | ||
|Sources + history (on the server) | |Sources + history (on the server) | ||
− | |||
|8.5G | |8.5G | ||
+ | |1.1G | ||
|Not measured yet | |Not measured yet | ||
|- | |- | ||
|3rd party sources + history (server) | |3rd party sources + history (server) | ||
− | |||
|1.1G | |1.1G | ||
+ | |740M | ||
| -"- | | -"- | ||
|} | |} |
Revision as of 16:32, 1 February 2007
Git is a popular version control system designed to handle very large projects with speed and efficiency. See http://git.or.cz/ for more info.
The Windows users might be interested in the MinGW git port.
Git and OpenOffice.org
A functional git tree with the entire OOo history for testing purposes is here: http://go-oo.org/git. It is an imported CVS tree that was split into two parts:
- The sources themselves - ooo.git
- The 3rd party stuff (binary mozilla, zlib, berkeleydb, ...) - 3rdparty.git
The size of the sources is about 1.1G, the size of the 3rd party stuff is 740M. Please follow the instructions on http://go-oo.org/git to get the tree.
Transformations
These transformations are done while converting from CVS:
- The OOo repository is split into the sources and 3rd party sources as described above
- 'cws_src680_xyz' branches are renamed to simple 'xyz'
- 'CWS_SRC680_XYZ_ANCHOR' tags are renamed to simple 'XYZ'
- 'INTEGRATION: CWS xyz' commits are grouped into one commit (they are generated by CWS tooling per-file), and treated as a merge in the git tree
Requirements/TODO
- Convert tabs to 4 spaces at the beginning of the lines in .c/.cxx/.h/.hxx/.mk
- Convert CollabNet account names into real names
- maybe use the data from DomainDeveloper (complete that where necessary) if there's no easy way to extract the names from CollabNet
- Group also 'RESYNC:.*FILE MERGED', and 'RESYNC:.*FILE REMOVED' inside branches
- Delete merged branches (from 'heads', not from history!)
- Evaluate the speed & compare with SVN (the RE preferred option) - checkout/clone, branch, resync, integration
Comparison
What | CVS | git | SVN |
---|---|---|---|
Sources + history (on the server) | 8.5G | 1.1G | Not measured yet |
3rd party sources + history (server) | 1.1G | 740M | -"- |