Difference between revisions of "Git"
(→Requirements/TODO) |
(→Comparison) |
||
Line 34: | Line 34: | ||
== Comparison == | == Comparison == | ||
+ | |||
+ | Comparison of git with Mercurial and BitKeeper: http://www.selenic.com/pipermail/mercurial/2005-May/000334.html | ||
+ | |||
+ | Comparison of git with Subversion: http://git.or.cz/gitwiki/GitSvnComparsion | ||
{| border="1" cellspacing="0" cellpadding="5" | {| border="1" cellspacing="0" cellpadding="5" | ||
Line 41: | Line 45: | ||
!SVN | !SVN | ||
|- | |- | ||
− | | | + | |Size [sources + history] on the server |
|8.5G | |8.5G | ||
|1.3G | |1.3G | ||
|Not measured yet | |Not measured yet | ||
|- | |- | ||
− | |3rd party sources + history | + | |Size [3rd party sources + history] on the server |
|1.1G | |1.1G | ||
|591M | |591M | ||
+ | | -"- | ||
+ | |- | ||
+ | |Size [sources] locally | ||
+ | |1.6G | ||
+ | |2.8G (with the entire history) | ||
+ | |Not measured yet | ||
+ | |- | ||
+ | |Size [3rd party sources] locally | ||
+ | |98M | ||
+ | |688M (with the entire history) | ||
+ | | -"- | ||
+ | |- | ||
+ | |Checkout time [sources] | ||
+ | |Not measured yet | ||
+ | |1-2 hours [from go-oo.org] | ||
+ | | -"- | ||
+ | |- | ||
+ | |Checkout time [3rd party sources] | ||
+ | | -"- | ||
+ | |Not measured yet | ||
+ | | -"- | ||
+ | |- | ||
+ | |Branch creation | ||
+ | | -"- | ||
+ | |Immediately | ||
+ | | -"- | ||
+ | |- | ||
+ | |Branch switch | ||
+ | | -"- | ||
+ | |<15sec [to newly created], 3min to an old one | ||
+ | | -"- | ||
+ | |- | ||
+ | |Diff | ||
+ | | -"- | ||
+ | |Immediately | ||
+ | | -"- | ||
+ | |- | ||
+ | |Commit | ||
+ | | -"- | ||
+ | |13-25sec | ||
+ | | -"- | ||
+ | |- | ||
+ | |Merge | ||
+ | | -"- | ||
+ | |10sec [new branch with few changes], <3min [long living branch, harder scenario] | ||
| -"- | | -"- | ||
|} | |} |
Revision as of 12:24, 8 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.3G, the size of the 3rd party stuff is 591M. 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
- Tabs are converted to 4 spaces at the beginning of the lines in .c/.cxx/.h/.hxx/.mk/.src
- 'RESYNC:.*FILE MERGED', and 'RESYNC:.*FILE REMOVED' are grouped inside branches (with single 'RESYNC' log entry)
- May result in multiple 'RESYNC' commits inside the branch when a commit happened to another one in the middle of the resync
Requirements/TODO
- 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
- Delete merged branches (from 'heads', not from history!)
- Evaluate the speed & compare with SVN (the RE preferred option) - checkout/clone, branch, resync, integration
- Translations to a separate git tree as well?
- UDK to a separate git tree?
- .pdf version of developer's guide consume quite some space as well - any chance to do something with it?
Comparison
Comparison of git with Mercurial and BitKeeper: http://www.selenic.com/pipermail/mercurial/2005-May/000334.html
Comparison of git with Subversion: http://git.or.cz/gitwiki/GitSvnComparsion
What | CVS | git | SVN |
---|---|---|---|
Size [sources + history] on the server | 8.5G | 1.3G | Not measured yet |
Size [3rd party sources + history] on the server | 1.1G | 591M | -"- |
Size [sources] locally | 1.6G | 2.8G (with the entire history) | Not measured yet |
Size [3rd party sources] locally | 98M | 688M (with the entire history) | -"- |
Checkout time [sources] | Not measured yet | 1-2 hours [from go-oo.org] | -"- |
Checkout time [3rd party sources] | -"- | Not measured yet | -"- |
Branch creation | -"- | Immediately | -"- |
Branch switch | -"- | <15sec [to newly created], 3min to an old one | -"- |
Diff | -"- | Immediately | -"- |
Commit | -"- | 13-25sec | -"- |
Merge | -"- | 10sec [new branch with few changes], <3min [long living branch, harder scenario] | -"- |