Code

[PATCH] Documentation: describe short-hand used in fetch/pull.
authorJunio C Hamano <junkio@cox.net>
Sat, 16 Jul 2005 07:17:42 +0000 (00:17 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 16 Jul 2005 16:23:06 +0000 (09:23 -0700)
Describe short-hand for remote repository used in fetch/pull.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Documentation/git-fetch-script.txt [new file with mode: 0644]
Documentation/git-pull-script.txt
Documentation/git.txt
Documentation/pull-fetch-param.txt [new file with mode: 0644]
Documentation/tutorial.txt

diff --git a/Documentation/git-fetch-script.txt b/Documentation/git-fetch-script.txt
new file mode 100644 (file)
index 0000000..937df05
--- /dev/null
@@ -0,0 +1,47 @@
+git-fetch-script(1)
+===================
+v0.1, July 2005
+
+NAME
+----
+git-fetch-script - Download objects and a head from another repository.
+
+
+SYNOPSIS
+--------
+'git-fetch-script' <repository> [ <head> | tag <tag> ]
+
+
+DESCRIPTION
+-----------
+Fetches a named head or a tag from another repository, along
+with the objects necessary to complete that head or tag.  The
+head to pull defaults to HEAD if unspecified.  The head or tag
+fetched from the remote repository is stored in
+$GIT_DIR/FETCH_HEAD.
+
+When a <tag> is specified, the <tag> fetched from the remote is
+also copied to the local $GIT_DIR/tags/<tag> file.  When no
+<head> nor <tag> is specified, and <repository> was specified
+with the short-hand notation (i.e. naming a file under the
+$GIT_DIR/branches directory), the head fetched from the remote
+repository is also copied to the local $GIT_DIR/heads/<repository>
+file.
+
+
+OPTIONS
+-------
+include::pull-fetch-param.txt[]
+
+
+Author
+------
+Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net>
+
+Documentation
+--------------
+Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
+
+GIT
+---
+Part of the link:git.html[git] suite
index 44fd09a97a2d638a130fd22ce19e99a409d5209a..ec1e7a2a90d54cbc9d3e97081bdce12af9a88b0c 100644 (file)
@@ -4,22 +4,28 @@ v0.1, May 2005
 
 NAME
 ----
-git-pull-script - Script used by Linus to pull and merge a remote repository
+git-pull-script - Pull and merge from another repository.
 
 
 SYNOPSIS
 --------
-'git-pull-script'
+'git-pull-script' <repository> [ <head> | tag <tag> ]
+
 
 DESCRIPTION
 -----------
-This script is used by Linus to pull from a remote repository and perform
-a merge.
+Runs 'git-fetch-script' with the given parameters, then
+'git-resolve-script' to merge the local HEAD and FETCH_HEAD.
+
+
+OPTIONS
+-------
+include::pull-fetch-param.txt[]
 
 
 Author
 ------
-Written by Linus Torvalds <torvalds@osdl.org>
+Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net>
 
 Documentation
 --------------
index 916a0b7f0829b6a11ac09c0228912e436b58fc40..ffc27d5d7acc7ff968000763860ab01310d7d437 100644 (file)
@@ -121,6 +121,9 @@ The interrogate commands may create files - and you can force them to
 touch the working file set - but in general they don't
 
 
+Synching repositories
+~~~~~~~~~~~~~~~~~~~~~
+
 link:git-clone-script.html[git-clone-script]::
        Clones a repository into the current repository (user interface)
 
@@ -128,10 +131,14 @@ link:git-clone-pack.html[git-clone-pack]::
        Clones a repository into the current repository (engine
        for ssh and local transport)
 
-link:git-pull-script.html[git-pull-script]::
+link:git-fetch-script.html[git-pull-script]::
        Pull from a repote repository via various protocols
        (user interface).
 
+link:git-pull-script.html[git-pull-script]::
+       Fetch from and merge with a repote repository via
+       various protocols (user interface).
+
 link:git-http-pull.html[git-http-pull]::
        Downloads a remote GIT repository via HTTP
 
diff --git a/Documentation/pull-fetch-param.txt b/Documentation/pull-fetch-param.txt
new file mode 100644 (file)
index 0000000..7ae4ba0
--- /dev/null
@@ -0,0 +1,36 @@
+<repository>::
+       The "remote" repository to pull from.  One of the
+       following notations can be used to name the repository
+       to pull from:
+
+               Rsync URL
+                       rsync://remote.machine/path/to/repo.git/
+
+               HTTP(s) URL
+                       http://remote.machine/path/to/repo.git/
+
+               GIT URL
+                       git://remote.machine/path/to/repo.git/
+                       remote.machine:/path/to/repo.git/
+
+               Local directory
+                       /path/to/repo.git/
+
+       In addition to that, as a short-hand, the name of a file
+       in $GIT_DIR/branches directory can be specified; the
+       named file should contain a single line, a URL in one of
+       the above formats, optionally followed by a hash '#' and
+       the name of remote head.
+
+<head>::
+       The remote head name to fetch from.  That is, make the
+       objects reachable from the commit recorded in
+       $GIT_DIR/refs/heads/<head> in the remote repository
+       available locally.
+
+tag <tag>::
+       The remote head tag to fetch from.  That is, make the
+       objects reachable from the commit recorded in
+       $GIT_DIR/refs/tags/<tag> in the remote repository
+       available locally.
+
index 8088fd3dce7def5a439c454d82cfa98fb27342c9..925ef2c401fc16f1831aa4ecf7eb4cc1fe80db0c 100644 (file)
@@ -810,6 +810,34 @@ pull from:
   course, you will pay the price of more disk usage to hold
   multiple working trees, but disk space is cheap these days.  ]
 
+It is likely that you will be pulling from the same remote
+repository from time to time.  As a short hand, you can store
+the remote repository URL in a file under .git/branches/
+directory, like this:
+
+       mkdir -p .git/branches
+       echo rsync://kernel.org/pub/scm/git/git.git/ \
+           >.git/branches/linus
+
+and use the filenae to "git pull" instead of the full URL.
+The contents of a file under .git/branches can even be a prefix
+of a full URL, like this:
+
+       echo rsync://kernel.org/pub/.../jgarzik/
+               >.git/branches/jgarzik
+
+Examples.
+
+       (1) git pull linus
+       (2) git pull linus tag v0.99.1
+       (3) git pull jgarzik/netdev-2.6.git/ e100
+
+the above are equivalent to:
+
+       (1) git pull rsync://kernel.org/pub/scm/git/git.git/ HEAD
+       (2) git pull rsync://kernel.org/pub/scm/git/git.git/ tag v0.99.1
+       (3) git pull rsync://kernel.org/pub/.../jgarzik/netdev-2.6.git e100
+
 
        Publishing your work
        --------------------