Git is fast. Everyone—even most of the hard core users of these
@@ -231,11 +231,11 @@
operations are performed locally giving it a bit of a leg up on
SVN and Perforce, both of which require network access for certain operations.
However, even compared to the other DSCMs that also perform operations
- locally, Git is pretty fast.
+ locally, Git is pretty fast.
-
+
- Part of this is likely because it was built to work on the Linux
+ Part of this is likely because it was built to work on the Linux
kernel, which means that it has had to deal effectively with large
repositories from day one. Additionally, Git is written in C, reducing the
overhead of runtimes associated with higher-level languages.
@@ -251,14 +251,14 @@
then add network latency...
-
+
-
+
|
@@ -273,14 +273,14 @@
|
-
+
The end result was that for everything but adding new files, Git
was fastest. (Also really large commits, which Hg was basically the
same at, but the commit I tested was so large that you're unlikely
to ever do anything like it—normal commits are much faster in Git.)
-
+
|
@@ -349,7 +349,7 @@
| 39.411s |
-
+
The cold and hot branching numbers are the numbers for the first
and second times that I branched a repo—the second number being
@@ -364,8 +364,8 @@
other ops tested here (except for the large commit, possibly) are
more indicative of things you might actually do day to day.
-
-
+
+
These numbers are really not difficult to recreate, simply clone the Django
project in each of the systems and try out the same commands in each.
@@ -376,34 +376,34 @@
svn checkout http://code.djangoproject.com/svn/django/trunk dj-svn
-
+
-
-
+
+
-
+
svn
-
+
-
+
- Git is really good at conserving disk space. Your Git directory will
+ Git is really good at conserving disk space. Your Git directory will
(in general) barely be larger than an SVN checkout—in some cases
actually smaller (apparently a lot can go in those .svn dirs).
-
+
The following numbers were taken from clones of the Django project
- in each of its semi-official Git mirrors at the same point in
+ in each of its semi-official mirrors at the same point in
its history.
-
+
-
+
@@ -438,7 +438,7 @@
svn
perforce
-
+
@@ -449,14 +449,14 @@
you want your commit to look like before you commit it.
- The cool thing about the staging area, and what sets Git apart
+ The cool thing about the staging area, and what sets Git apart
from all these other tools, is that you can easily stage some of
your files as you finish them and then commit them without committing
all the modified files in your working directory, or having to list
them on the command line during the commit
-
+
This also allows you to stage only portions of a modified file. Gone are
the days of making two logically unrelated modifications to a file before
@@ -471,7 +471,7 @@
if you don't want that kind of control—just slap a '-a' to your
commit command in order to add all changes to all files to the staging area.
-
+
@@ -490,11 +490,11 @@
One of the coolest features of any of the Distributed SCMs, Git included, is that it's
- distributed. This means that instead of doing a "checkout" of the current tip of
+ distributed. This means that instead of doing a "checkout" of the current tip of
the source code, you do a "clone" of the entire repository.
- This means that even
+ This means that even
if you're using a centralized workflow, every user has what is essentially a full
backup of the main server, each of which could be pushed up to replace the main server
in the event of a crash or corruption. There is basically no single point of failure
@@ -530,50 +530,50 @@
-
+