Merge branch 'maint'
[gitweb.git] / Documentation / git-fetch-pack.txt
index 884a26bbf352868806ce7f4d2c61deec9a40a822..105d76b0ba85ecc4bd2af6dd560ae28310a5c7be 100644 (file)
@@ -1,47 +1,71 @@
 git-fetch-pack(1)
 =================
-v0.1, July 2005
 
 NAME
 ----
-git-fetch-pack - Receive missing objects from another repository.
+git-fetch-pack - Receive missing objects from another repository
 
 
 SYNOPSIS
 --------
-git-fetch-pack [-q] [--exec=<git-upload-pack>] [<host>:]<directory> [<head>...] < <commit-list>
+'git-fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--upload-pack=<git-upload-pack>] [--depth=<n>] [-v] [<host>:]<directory> [<refs>...]
 
 DESCRIPTION
 -----------
+Usually you would want to use gitlink:git-fetch[1] which is a
+higher level wrapper of this command instead.
+
 Invokes 'git-upload-pack' on a potentially remote repository,
 and asks it to send objects missing from this repository, to
 update the named heads.  The list of commits available locally
-is fed from the standard input, to be sent to 'git-upload-pack'
-running on the other end.
+is found out by scanning local $GIT_DIR/refs/ and sent to
+'git-upload-pack' running on the other end.
 
-This command can be used only when the local side has a common
-(ancestor) commit with the remote head that is being pulled
-from.  Use 'git-clone-pack' for that.
+This command degenerates to download everything to complete the
+asked refs from the remote side when the local side does not
+have a common ancestor commit.
 
 
 OPTIONS
 -------
--q::
+\--all::
+       Fetch all remote refs.
+
+\--quiet, \-q::
        Pass '-q' flag to 'git-unpack-objects'; this makes the
        cloning process less verbose.
 
---exec=<git-upload-pack>::
+\--keep, \-k::
+       Do not invoke 'git-unpack-objects' on received data, but
+       create a single packfile out of it instead, and store it
+       in the object database. If provided twice then the pack is
+       locked against repacking.
+
+\--thin::
+       Spend extra cycles to minimize the number of objects to be sent.
+       Use it on slower connection.
+
+\--upload-pack=<git-upload-pack>::
        Use this to specify the path to 'git-upload-pack' on the
        remote side, if is not found on your $PATH.
        Installations of sshd ignores the user's environment
        setup scripts for login shells (e.g. .bash_profile) and
-       your privately installed GIT may not be found on the system
+       your privately installed git may not be found on the system
        default $PATH.  Another workaround suggested is to set
        up your $PATH in ".bashrc", but this flag is for people
        who do not want to pay the overhead for non-interactive
        shells by having a lean .bashrc file (they set most of
        the things up in .bash_profile).
 
+\--exec=<git-upload-pack>::
+       Same as \--upload-pack=<git-upload-pack>.
+
+\--depth=<n>::
+       Limit fetching to ancestor-chains not longer than n.
+
+\-v::
+       Run verbosely.
+
 <host>::
        A remote host that houses the repository.  When this
        part is specified, 'git-upload-pack' is invoked via
@@ -50,15 +74,11 @@ OPTIONS
 <directory>::
        The repository to sync from.
 
-<head>...::
+<refs>...::
        The remote heads to update from. This is relative to
        $GIT_DIR (e.g. "HEAD", "refs/heads/master").  When
        unspecified, update from all heads the remote side has.
 
-       However the program refuses to work if more than one
-       remote head matches the specified heads.  I am not sure
-       what this means... Help!!!!!
-
 
 Author
 ------
@@ -70,4 +90,4 @@ Documentation by Junio C Hamano.
 
 GIT
 ---
-Part of the link:git.html[git] suite
+Part of the gitlink:git[7] suite