From 7dce9918c72148139c3eb7a2a5c66b0df9ed415d Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Tue, 12 Aug 2008 00:34:46 +0200 Subject: Adjust for the new way of enabling the default post-update hook The post-update hook, which is required to be enabled in order for the repository to be accessible over HTTP, is not enabled by chmod a+x anymore, but instead by dropping the .sample suffix. This patch emphasizes this change in the release notes (since I believe this is rather noticeable backwards-incompatible change). It also adjusts the documentation which still described the old way and fixes t/t5540-http-push.sh, which was broken for 1.5 month but apparently noone ever runs this test. Signed-off-by: Petr Baudis Signed-off-by: Junio C Hamano diff --git a/Documentation/RelNotes-1.6.0.txt b/Documentation/RelNotes-1.6.0.txt index 8afb5b2..e3c0c1d 100644 --- a/Documentation/RelNotes-1.6.0.txt +++ b/Documentation/RelNotes-1.6.0.txt @@ -28,6 +28,16 @@ introduced in v1.5.2 and v1.4.4.5. If you want to keep your repositories backwards compatible past these versions, set repack.useDeltaBaseOffset to false or pack.indexVersion to 1, respectively. +We used to prevent sample hook scripts shipped in templates/ from +triggering by default by relying on the fact that we install them as +unexecutable, but on some filesystems, this approach does not work. +They are now shipped with ".sample" suffix. If you want to activate +any of these samples as-is, rename them to drop the ".sample" suffix, +instead of running "chmod +x" on them. For example, you can rename +hooks/post-update.sample to hooks/post-update to enable the sample +hook that runs update-server-info, in order to make repositories +friendly to dumb protocols (i.e. HTTP). + GIT_CONFIG, which was only documented as affecting "git config", but actually affected all git commands, now only affects "git config". GIT_LOCAL_CONFIG, also only documented as affecting "git config" and @@ -56,11 +66,7 @@ Updates since v1.5.6 gangs. * Sample hook scripts shipped in templates/ are now suffixed with - *.sample. We used to prevent them from triggering by default by - relying on the fact that we install them as unexecutable, but on - some filesystems this approach does not work. Instead of running - "chmod +x" on them, the users who want to activate these samples - as-is can now rename them dropping *.sample suffix. + *.sample. * perl's in-place edit (-i) does not work well without backup files on Windows; some tests are rewritten to cope with this. diff --git a/Documentation/gitcore-tutorial.txt b/Documentation/gitcore-tutorial.txt index 49179b0..a417e59 100644 --- a/Documentation/gitcore-tutorial.txt +++ b/Documentation/gitcore-tutorial.txt @@ -1366,8 +1366,9 @@ your login shell is 'bash', only `.bashrc` is read and not [NOTE] If you plan to publish this repository to be accessed over http, -you should do `chmod +x my-git.git/hooks/post-update` at this -point. This makes sure that every time you push into this +you should do `mv my-git.git/hooks/post-update.sample +my-git.git/hooks/post-update` at this point. +This makes sure that every time you push into this repository, `git update-server-info` is run. Your "public repository" is now ready to accept your changes. @@ -1486,11 +1487,11 @@ A recommended workflow for a "project lead" goes like this: If other people are pulling from your repository over dumb transport protocols (HTTP), you need to keep this repository 'dumb transport friendly'. After `git init`, -`$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`. This makes sure 'git-update-server-info' -keeps the necessary files up-to-date. +`$GIT_DIR/hooks/post-update.sample` copied from the standard templates +would contain a call to 'git-update-server-info' +but you need to manually enable the hook with +`mv post-update.sample 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. diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt index e999211..08d1310 100644 --- a/Documentation/user-manual.txt +++ b/Documentation/user-manual.txt @@ -1890,7 +1890,7 @@ adjustments to give web clients some extra information they need: $ mv proj.git /home/you/public_html/proj.git $ cd proj.git $ git --bare update-server-info -$ chmod a+x hooks/post-update +$ mv hooks/post-update.sample hooks/post-update ------------------------------------------------- (For an explanation of the last two lines, see diff --git a/t/t5540-http-push.sh b/t/t5540-http-push.sh index f8c17cd..b0d242e 100755 --- a/t/t5540-http-push.sh +++ b/t/t5540-http-push.sh @@ -41,7 +41,7 @@ test_expect_success 'setup remote repository' ' git clone --bare test_repo test_repo.git && cd test_repo.git && git --bare update-server-info && - chmod +x hooks/post-update && + mv hooks/post-update.sample hooks/post-update && cd - && mv test_repo.git "$HTTPD_DOCUMENT_ROOT_PATH" ' -- cgit v0.10.2-6-g49f6