diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt index 9ac54c282c..131e445747 100644 --- a/Documentation/git-clone.txt +++ b/Documentation/git-clone.txt @@ -10,6 +10,7 @@ SYNOPSIS -------- [verse] 'git-clone' [-l [-s]] [-q] [-n] [--bare] [-o ] [-u ] + [--reference ] [] DESCRIPTION @@ -46,10 +47,18 @@ OPTIONS -s:: When the repository to clone is on the local machine, instead of using hard links, automatically setup - .git/objects/info/alternatives to share the objects + .git/objects/info/alternates to share the objects with the source repository. The resulting repository starts out without any object of its own. +--reference :: + If the reference repository is on the local machine + automatically setup .git/objects/info/alternates to + obtain objects from the reference repository. Using + an already existing repository as an alternate will + require less objects to be copied from the repository + being cloned, reducing network and local storage costs. + --quiet:: -q:: Operate quietly. This flag is passed to "rsync" and @@ -112,6 +121,16 @@ $ git show-branch ------------ +Clone from upstream while borrowing from an existing local directory:: ++ +------------ +$ git clone --reference my2.6 \ + git://git.kernel.org/pub/scm/.../linux-2.7 \ + my2.7 +$ cd my2.7 +------------ + + Create a bare repository to publish your changes to the public:: + ------------ diff --git a/diff.c b/diff.c index d75e0178ff..0a832c3585 100644 --- a/diff.c +++ b/diff.c @@ -250,13 +250,14 @@ static void show_stats(struct diffstat_t* data) for (i = 0; i < data->nr; i++) { struct diffstat_file *file = data->files[i]; + len = strlen(file->name); + if (max_len < len) + max_len = len; + if (file->is_binary || file->is_unmerged) continue; if (max_change < file->added + file->deleted) max_change = file->added + file->deleted; - len = strlen(file->name); - if (max_len < len) - max_len = len; } for (i = 0; i < data->nr; i++) {