rfc:phpvcs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
rfc:phpvcs [2008/05/27 23:13] thezapperrfc:phpvcs [2008/07/02 15:05] – make things clear dsp
Line 8: Line 8:
     * **Pro:**      * **Pro:** 
     * **Contra:**     * **Contra:**
- 
 ==== Purpose ==== ==== Purpose ====
  
Line 40: Line 39:
 //Insert stuff here// //Insert stuff here//
 Question: How official is the win32 support of git at the moment? [[http://code.google.com/p/msysgit/]] says it is currently merged into official distribution. Question: How official is the win32 support of git at the moment? [[http://code.google.com/p/msysgit/]] says it is currently merged into official distribution.
 +
 +Answer: with GIT 1.6.0 the MinGW Project is merged into GIT, which means that git should run nicely under Windows.
 +
 +Reasons for GIT:
 +  - Local working branches that are invisible to other. Every developer can start his own branch at home doing feature or topic based branches
 +  - Merge tracking and cherry-picking
 +  - Cryptographical secure, means that if the repository is corrupted GIT will notice that as every content and commit is backed by a SHA1
 +  - Small repository size: Test impots of the complete history of PHP (php-src + ZendEngine2) from 1999 until now, with the complete history takes 135M of repository data. This was done using parsecvs to import the repository and than doing a git repack --depth 100 --window=250
 +  - Ablility to completly remove files/folders and it's history from the repository (e.g. due to copyright reasons)
 +  - No karma management required: As GIT is decentralized every developer can have it's own repository. Access to official public repositories (e.g. ZendEngine2.git) can be done using ssh-keys. Depending on the infrastructure that is used, GIT can be used compeltly centralized or just a small set of team can have access to centralized official repositories and integrate patches from other developers.
 +  - Extreme fast (On Mac OSX 10.5 with 2x2.1 Ghz and 2GB Ram
 +
 +    diff
 +     $ time git --no-pager diff 5.2 5.3 ( a complete diff between 5.2 and 5.3 branches )
 +     real        0m13.283s
 +     user        0m3.390s
 +     sys         0m2.125s
 +    Checkout: Switching branches between 5.2 and 5.3 with
 +     $ time git checkout 5.3
 +     real        0m5.774s
 +     user        0m0.923s
 +     sys         0m1.358s
 +
 +Reasons against GIT:
 +  - <del>Bad windows support</del>. Not longer true, msysgit does a great job, and it's going to be included into the GIT mainline with the next (1.6.0) release
 +  - Few gui tools: git comes with git-gui and gitk which are TK based guis that work under all operating systems. They can help to use git but they are not a complete replacement for the command line
 +  - Different from CVS and SVN: The way GIT works (especially branching) is different from the way CVS or SVN works. While this is the reasons why developers pick up GIT, it might definatly confuse people not familar with GIT.
 +  - New infrastructure: Due to it's decentralized nature, switching to GIT will require a discussion how to setup a infrastructure: Is GIT used completly centralized, or are there official php-src, Zend repositories were just a few people can commit who then integerate patches from other people?
  
 ==== Requirements ==== ==== Requirements ====
rfc/phpvcs.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1