aboutsummaryrefslogtreecommitdiff
path: root/Documentation/tutorial.txt
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-12-17 11:39:39 -0800
committerJunio C Hamano <junkio@cox.net>2005-12-17 11:39:39 -0800
commit80248b2e4888a05adcb903f53af84ee513d22245 (patch)
tree8766b8a2833a897dcc6566ba1587b897230391df /Documentation/tutorial.txt
parent01385e275828c1116ea9bfcf827f82f450ee8f5f (diff)
downloadgit-80248b2e4888a05adcb903f53af84ee513d22245.tar.gz
git-80248b2e4888a05adcb903f53af84ee513d22245.tar.xz
Documentation: HTTP needs update-server-info.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'Documentation/tutorial.txt')
-rw-r--r--Documentation/tutorial.txt18
1 files changed, 11 insertions, 7 deletions
diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt
index 543afb84e..1683f0bc2 100644
--- a/Documentation/tutorial.txt
+++ b/Documentation/tutorial.txt
@@ -1091,9 +1091,10 @@ lacks and transfers (close to) minimum set of objects.
HTTP(S)::
`http://remote.machine/path/to/repo.git/`
+
-HTTP and HTTPS transport are used only for downloading. They
-first obtain the topmost commit object name from the remote site
-by looking at `repo.git/info/refs` file, tries to obtain the
+Downloader from http and https URL
+first obtains the topmost commit object name from the remote site
+by looking at the specified refname under `repo.git/refs/` directory,
+and then tries to obtain the
commit object by downloading from `repo.git/objects/xx/xxx\...`
using the object name of that commit object. Then it reads the
commit object to find out its parent commits and the associate
@@ -1104,7 +1105,9 @@ sometimes also called 'commit walkers'.
The 'commit walkers' are sometimes also called 'dumb
transports', because they do not require any git aware smart
server like git Native transport does. Any stock HTTP server
-would suffice.
+that does not even support directory index would suffice. But
+you must prepare your repository with `git-update-server-info`
+to help dumb transport downloaders.
+
There are (confusingly enough) `git-ssh-fetch` and `git-ssh-upload`
programs, which are 'commit walkers'; they outlived their
@@ -1517,12 +1520,13 @@ A recommended workflow for a "project lead" goes like this:
2. Prepare a public repository accessible to others.
+
If other people are pulling from your repository over dumb
-transport protocols, you need to keep this repository 'dumb
-transport friendly'. After `git init-db`,
+transport protocols (HTTP), you need to keep this repository
+'dumb transport friendly'. After `git init-db`,
`$GIT_DIR/hooks/post-update` copied from the standard templates
would contain a call to `git-update-server-info` but the
`post-update` hook itself is disabled by default -- enable it
-with `chmod +x post-update`.
+with `chmod +x post-update`. This makes sure `git-update-server-info`
+keeps the necessary files up-to-date.
3. Push into the public repository from your primary
repository.