<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/templates/hooks--prepare-commit-msg.sample, branch main</title>
<subtitle>Fork of git SCM with my patches.</subtitle>
<id>http://git.kilabit.info/git/atom?h=main</id>
<link rel='self' href='http://git.kilabit.info/git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/'/>
<updated>2024-12-06T22:52:12Z</updated>
<entry>
<title>Makefile: simplify building of templates</title>
<updated>2024-12-06T22:52:12Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2024-12-06T13:24:52Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=ed060aa0a35f5d0e201af45c6a32c405db4c2654'/>
<id>urn:sha1:ed060aa0a35f5d0e201af45c6a32c405db4c2654</id>
<content type='text'>
When we install Git we also install a set of default templates that both
git-init(1) and git-clone(1) populate into our build directories. The
way the pristine templates are laid out in our source directory is
somewhat weird though: instead of reconstructing the actual directory
hierarchy in "templates/", we represent directory separators with "--".

The only reason I could come up with for why we have this is the
"branches/" directory, which is supposed to be empty when installing it.
And as Git famously doesn't store empty directories at all we have to
work around this limitation.

Now the thing is that the "branches/" directory is a leftover to how
branches used to be stored in the dark ages. gitrepository-layout(5)
lists this directory as "slightly deprecated", which I would claim is a
strong understatement. I have never encountered anybody using it today
and would be surprised if it even works as expected. So having the "--"
hack in place for an item that is basically unused, unmaintained and
deprecated doesn't only feel unreasonable, but installing that entry by
default may also cause confusion for users that do not know what this is
supposed to be in the first place.

Remove this directory from our templates and, now that we do not require
the workaround anymore, restructure the templates to form a proper
hierarchy. This makes it way easier for build systems to install these
templates into place.

We should likely think about removing support for "branch/" altogether,
but that is outside of the scope of this patch series.

Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>hook: use correct logical variable</title>
<updated>2017-08-14T18:19:50Z</updated>
<author>
<name>Kaartic Sivaraam</name>
<email>kaarticsivaraam91196@gmail.com</email>
</author>
<published>2017-08-14T08:46:46Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=51f5a2b4394c741433f11d54aa3f0ac2c4a647b6'/>
<id>urn:sha1:51f5a2b4394c741433f11d54aa3f0ac2c4a647b6</id>
<content type='text'>
Sign-off added should be that of the "committer", not that of the
"commit's author"; that is how the rest of Git adds sign-off using
sequencer.c::append_signoff().

Use the correct logical variable that identifies the committer.

Signed-off-by: Kaartic Sivaraam &lt;kaarticsivaraam91196@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>hook: add a simple first example</title>
<updated>2017-07-12T20:21:07Z</updated>
<author>
<name>Kaartic Sivaraam</name>
<email>kaarticsivaraam91196@gmail.com</email>
</author>
<published>2017-07-11T14:30:54Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=0ef1a4e32a720928a497a13ef08aa8f0a63dc476'/>
<id>urn:sha1:0ef1a4e32a720928a497a13ef08aa8f0a63dc476</id>
<content type='text'>
Add a simple example that replaces an outdated example
that was removed. This ensures that there's at the least
a simple example that illustrates what could be done
using the hook just by enabling it.

Also, update the documentation.

Signed-off-by: Kaartic Sivaraam &lt;kaarticsivaraam91196@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>hook: add sign-off using "interpret-trailers"</title>
<updated>2017-07-12T20:20:44Z</updated>
<author>
<name>Kaartic Sivaraam</name>
<email>kaarticsivaraam91196@gmail.com</email>
</author>
<published>2017-07-11T14:11:10Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=e1a4a28373befdce97daf9702f6ab790c9806451'/>
<id>urn:sha1:e1a4a28373befdce97daf9702f6ab790c9806451</id>
<content type='text'>
The sample hook to prepare the commit message before
a commit allows users to opt-in to add the sign-off
to the commit message. The sign-off is added at a place
that isn't consistent with the "-s" option of "git commit".
Further, it could go out of view in certain cases.

Add the sign-off in a way similar to "-s" option of
"git commit" using git's interpret-trailers command.

It works well in all cases except when the user invokes
"git commit" without any arguments. In that case manually
add a new line after the first line to ensure it's consistent
with the output of "-s" option.

Signed-off-by: Kaartic Sivaraam &lt;kaarticsivaraam91196@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>hook: name the positional variables</title>
<updated>2017-07-12T20:20:42Z</updated>
<author>
<name>Kaartic Sivaraam</name>
<email>kaarticsivaraam91196@gmail.com</email>
</author>
<published>2017-07-11T14:11:09Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=94eba456b4f94228f5f724ce512decb8934522c1'/>
<id>urn:sha1:94eba456b4f94228f5f724ce512decb8934522c1</id>
<content type='text'>
It's always nice to have named variables instead of
positional variables as they communicate their purpose
well.

Appropriately name the positional variables of the hook
to make it easier to see what's going on.

Signed-off-by: Kaartic Sivaraam &lt;kaarticsivaraam91196@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>hook: cleanup script</title>
<updated>2017-07-12T20:20:40Z</updated>
<author>
<name>Kaartic Sivaraam</name>
<email>kaarticsivaraam91196@gmail.com</email>
</author>
<published>2017-07-11T14:11:08Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=b22a3079466b72e8a8b76065d6c28efe7eea4b16'/>
<id>urn:sha1:b22a3079466b72e8a8b76065d6c28efe7eea4b16</id>
<content type='text'>
Prepare the 'preare-commit-msg' sample script for
upcoming changes. Preparation includes removal of
an example that has outlived it's purpose. The example
is the one that comments the "Conflicts:" part of a
merge commit message. It isn't relevant anymore as
it's done by default since 261f315b ("merge &amp; sequencer:
turn "Conflicts:" hint into a comment", 2014-08-28).

Further update the relevant comments from the sample script
and update the documentation.

Signed-off-by: Kaartic Sivaraam &lt;kaarticsivaraam91196@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Modernize git calling conventions in hook templates</title>
<updated>2010-03-20T16:04:38Z</updated>
<author>
<name>Ben Walton</name>
<email>bwalton@artsci.utoronto.ca</email>
</author>
<published>2010-03-20T14:48:09Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=100e762a60a691a4978434f1cd5532e19cad39fc'/>
<id>urn:sha1:100e762a60a691a4978434f1cd5532e19cad39fc</id>
<content type='text'>
The hook templates were still using/referencing 'git-foo' instead of
'git foo.'  This patch updates the sample hooks to use the modern
conventions instead.

Signed-off-by: Ben Walton &lt;bwalton@artsci.utoronto.ca&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Make templates honour SHELL_PATH and PERL_PATH</title>
<updated>2010-03-20T16:03:52Z</updated>
<author>
<name>Ben Walton</name>
<email>bwalton@artsci.utoronto.ca</email>
</author>
<published>2010-03-20T14:48:08Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=502be959531b34e2d9283213b7bca51842639240'/>
<id>urn:sha1:502be959531b34e2d9283213b7bca51842639240</id>
<content type='text'>
The hook script templates were hard coded to use /bin/sh and perl.
This patch ensures that they use the same tools specified for the rest
of the suite.

The impetus for the change was noticing that, as shipped, some of the
hooks used shell constructs that wouldn't work under Solaris' /bin/sh
(eg: $(cmd...) substitutions).

Signed-off-by: Ben Walton &lt;bwalton@artsci.utoronto.ca&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Fix use of "perl -i" on Windows</title>
<updated>2008-06-26T00:21:52Z</updated>
<author>
<name>Alex Riesen</name>
<email>raa.lkml@gmail.com</email>
</author>
<published>2008-06-25T18:35:13Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=3015fa5846c19e79f99c1d6a49fd2510ed9291b8'/>
<id>urn:sha1:3015fa5846c19e79f99c1d6a49fd2510ed9291b8</id>
<content type='text'>
The perldiag(1) has following to say about this:

    "Can't do inplace edit without backup"

	(F) You're on a system such as MS-DOS that gets confused if
	you try reading from a deleted (but still opened) file. You
	have to say -i.bak, or some such.

Signed-off-by: Alex Riesen &lt;raa.lkml@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Ship sample hooks with .sample suffix</title>
<updated>2008-06-25T02:06:22Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2008-06-25T01:45:21Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/git/commit/?id=f98f8cbac01e0d5dbb30660d7ea70af6a1439dfd'/>
<id>urn:sha1:f98f8cbac01e0d5dbb30660d7ea70af6a1439dfd</id>
<content type='text'>
We used to mark hooks we ship as samples by making them unexecutable, but
some filesystems cannot tell what is executable and what is not.

This makes it much more explicit.  The hooks are suffixed with .sample
(but now are made executable), so enabling it is still one step operation
(instead of "chmod +x $hook", you would do "mv $hook.sample $hook") but
now they won't get accidentally enabled on systems without executable bit.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
