Code

Documentation: HTTP needs update-server-info.
authorJunio C Hamano <junkio@cox.net>
Sat, 17 Dec 2005 19:39:39 +0000 (11:39 -0800)
committerJunio C Hamano <junkio@cox.net>
Sat, 17 Dec 2005 19:39:39 +0000 (11:39 -0800)
Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/everyday.txt
Documentation/git-update-server-info.txt
Documentation/tutorial.txt

index d8d7a6441a8d1ebd146936569e7b1ccdbd4ac598..df1e287999d501fa77ab8c86a464756a96ba3ef0 100644 (file)
@@ -424,3 +424,14 @@ for branch policy control.
 david is the release manager and is the only person who can
 create and push version tags.
 ------------
+
+HTTP server to support dumb protocol transfer.::
++
+------------
+dev$ git update-server-info <1>
+dev$ ftp user@isp.example.com <2>
+ftp> cp -r .git /home/user/myproject.git
+
+<1> make sure your info/refs and objects/info/packs are up-to-date
+<2> upload to public HTTP server hosted by your ISP.
+------------
index 527fb303ebc57a089c5265b66f9f800d3cf48b81..88a03c7c5ed4935fc10764d0f56326f0436a6f26 100644 (file)
@@ -12,11 +12,11 @@ SYNOPSIS
 
 DESCRIPTION
 -----------
-A dumb server that does not do on-the-fly pack generations can
+A dumb server that does not do on-the-fly pack generations must
 have some auxiliary information files in $GIT_DIR/info and
 $GIT_OBJECT_DIRECTORY/info directories to help clients discover
-what references and packs the server has and make optimized
-pull decisions.  This command generates such auxiliary files.
+what references and packs the server has.  This command
+generates such auxiliary files.
 
 
 OPTIONS
index 543afb84e50260599ce8ee804d283770c9e53f16..1683f0bc2db337c8a688c9460f9d1505a3a9da86 100644 (file)
@@ -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.