Skip to contentSkip to conversation

Adjust for the new way of enabling the default post-update hook

PATCH In review Petr Baudis 2 participants 4 messages Jun 15, 2016 Documentation

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---

 Documentation/RelNotes-1.6.0.txt   |    4 ++++
 Documentation/gitcore-tutorial.txt |   15 ++++++++-------
 Documentation/user-manual.txt      |    2 +-
 t/t5540-http-push.sh               |    2 +-
 4 files changed, 14 insertions(+), 9 deletions(-)
Documentation/RelNotes-1.6.0.txt +4 -0
index 8afb5b2..ad19122 100644
@@ -28,6 +28,10 @@ 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.
 
+The standard way of making repositories friendly to dumb protocols
+(i.e. HTTP) changed: instead of making hooks/post-update executable,
+hooks/post-update.sample is to be moved to hooks/post-update.
+
 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
Documentation/gitcore-tutorial.txt +8 -7
index 49179b0..a417e59 100644
@@ -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.
Documentation/user-manual.txt +1 -1
index e999211..08d1310 100644
@@ -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
t/t5540-http-push.sh +1 -1
index f8c17cd..b0d242e 100755
@@ -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"
 '
#1 lore raw
Quoted 3 lines · Petr Baudis

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.

Thanks for attention to the details.

Quoted 2 lines

This patch emphasizes this change in the release notes (since I believe this is rather noticeable backwards-incompatible change).

Anybody who tries to chmod an nonexisting file would notice, so I personally think you are making a mountain out of a molehill.

Nevertheless, mentioning it in the release notes would be a good finishing touch.

Documentation/RelNotes-1.6.0.txt introduced in v1.5.2 and v1.4.4.5. If you want to keep your repositories · line 33

Quoted 3 lines
Documentation/RelNotes-1.6.0.txt +3 -0
+The standard way of making repositories friendly to dumb protocols
+(i.e. HTTP) changed: instead of making hooks/post-update executable,
+hooks/post-update.sample is to be moved to hooks/post-update.

I'm actually not very happy with the above wording that makes it sound as if any of the samples are part of any "standard way".

The only standard thing is to make sure update-server-info runs. You do not have to start from the sample hook to do so, even though it may be one of the easiest ways.

The rest of the patches look good, but have you actually made sure AsciiDoc markups are correct (I am not complaining, just asking, as I haven't)?

#2 lore raw
Quoted 10 lines · Junio C Hamano
Quoted 2 lines · Petr Baudis

This patch emphasizes this change in the release notes (since I believe this is rather noticeable backwards-incompatible change).

Anybody who tries to chmod an nonexisting file would notice, so I personally think you are making a mountain out of a molehill.

Nevertheless, mentioning it in the release notes would be a good finishing touch.

Well, my only point is that you might want to know that you have to modify your scripts _before_ they break.

Quoted 10 lines

Documentation/RelNotes-1.6.0.txt introduced in v1.5.2 and v1.4.4.5. If you want to keep your repositories · line 33

Quoted 3 lines
Documentation/RelNotes-1.6.0.txt +3 -0
+The standard way of making repositories friendly to dumb protocols
+(i.e. HTTP) changed: instead of making hooks/post-update executable,
+hooks/post-update.sample is to be moved to hooks/post-update.

I'm actually not very happy with the above wording that makes it sound as if any of the samples are part of any "standard way".

The only standard thing is to make sure update-server-info runs. You do not have to start from the sample hook to do so, even though it may be one of the easiest ways.

Then the question is what is "standard" defined as, and why shouldn't this be the standard way? This is how our user documentation (both the User Manual and the Git Core Tutorial) teaches the users to do it.

Quoted 3 lines

The rest of the patches look good, but have you actually made sure AsciiDoc markups are correct (I am not complaining, just asking, as I haven't)?

I haven't - actually, for various technical reasons, I don't even have AsciiDoc installed on my notebook right now. I plan to get around to investigate the problem, but didn't yet and I didn't want to hold this off.

Signature · 3 lines
				Petr "Pasky" Baudis
The next generation of interesting software will be done
on the Macintosh, not the IBM PC.  -- Bill Gates
#3 lore raw
Quoted 8 lines · Petr Baudis
Quoted 3 lines

The rest of the patches look good, but have you actually made sure AsciiDoc markups are correct (I am not complaining, just asking, as I haven't)?

I haven't - actually, for various technical reasons, I don't even have AsciiDoc installed on my notebook right now. I plan to get around to investigate the problem, but didn't yet and I didn't want to hold this off.

Thanks, I just wanted to know if I have to be extra careful about the mark-up.