Difference between revisions of "Git"

From Apache OpenOffice Wiki
Jump to: navigation, search
Line 28: Line 28:
 
* Delete merged branches (from 'heads', not from history!)
 
* Delete merged branches (from 'heads', not from history!)
 
* Evaluate the speed & compare with SVN (the RE preferred option) - checkout/clone, branch, resync, integration
 
* Evaluate the speed & compare with SVN (the RE preferred option) - checkout/clone, branch, resync, integration
 +
 +
== Comparison ==
 +
 +
{| border="1" cellspacing="0" cellpadding="5"
 +
!What
 +
!git
 +
!CVS
 +
!SVN
 +
|-
 +
|Sources + history (on the server)
 +
|1.1G
 +
|8.5G
 +
|Not measured yet
 +
|-
 +
|3rd party sources + history (server)
 +
|740M
 +
|1.1G
 +
| -"-
 +
|}

Revision as of 16:10, 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 git CVS SVN
Sources + history (on the server) 1.1G 8.5G Not measured yet
3rd party sources + history (server) 740M 1.1G -"-
Personal tools