From 8431c4eb0976b0558eaa1df475ce6de6b52ce484 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 14 Dec 2005 23:08:08 -0800 Subject: Documentation: tutorial At the beginning of tutorial, refer the reader to everyday if she has not done so yet. Signed-off-by: Junio C Hamano --- Documentation/tutorial.txt | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Documentation/tutorial.txt') diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt index a61b824443..543afb84e5 100644 --- a/Documentation/tutorial.txt +++ b/Documentation/tutorial.txt @@ -27,6 +27,12 @@ SCM, you can skip them during your first pass. [NOTE] And those "too deep" descriptions are often marked as Note. +[NOTE] +If you are already familiar with another version control system, +like CVS, you may want to take a look at +link:everyday.html[Everyday GIT in 20 commands or so] first +before reading this. + Creating a git repository ------------------------- -- cgit v1.3 From 80248b2e4888a05adcb903f53af84ee513d22245 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 17 Dec 2005 11:39:39 -0800 Subject: Documentation: HTTP needs update-server-info. Signed-off-by: Junio C Hamano --- Documentation/everyday.txt | 11 +++++++++++ Documentation/git-update-server-info.txt | 6 +++--- Documentation/tutorial.txt | 18 +++++++++++------- 3 files changed, 25 insertions(+), 10 deletions(-) (limited to 'Documentation/tutorial.txt') diff --git a/Documentation/everyday.txt b/Documentation/everyday.txt index d8d7a6441a..df1e287999 100644 --- a/Documentation/everyday.txt +++ b/Documentation/everyday.txt @@ -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. +------------ diff --git a/Documentation/git-update-server-info.txt b/Documentation/git-update-server-info.txt index 527fb303eb..88a03c7c5e 100644 --- a/Documentation/git-update-server-info.txt +++ b/Documentation/git-update-server-info.txt @@ -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 diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt index 543afb84e5..1683f0bc2d 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. -- cgit v1.3 From a3431febfe241120205472def2a14ef09a4dbe60 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 20 Dec 2005 20:54:28 -0800 Subject: A shared repository should be writable by members. Signed-off-by: Junio C Hamano --- Documentation/tutorial.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Documentation/tutorial.txt') diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt index 1683f0bc2d..3a5c56e24e 100644 --- a/Documentation/tutorial.txt +++ b/Documentation/tutorial.txt @@ -1625,7 +1625,9 @@ cooperation you are probably more familiar with as well. For this, set up a public repository on a machine that is reachable via SSH by people with "commit privileges". Put the committers in the same user group and make the repository -writable by that group. +writable by that group. Make sure their umasks are set up to +allow group members to write into directories other members +have created. You, as an individual committer, then: -- cgit v1.3