From: Boris Kolpackov <boris@codesynthesis.com>
To: git@vger.kernel.org
Cc: karen@codesynthesis.com
Subject: Document ability to disable template directory in git-init
Date: Thu, 3 Jul 2025 16:40:02 +0200 [thread overview]
Message-ID: <boris.20250703161436@codesynthesis.com> (raw)
Hello,
Looking at the git-init(1) man page, there doesn't appear to be a way
to disable copying the contents of the default template directory, other
than passing a path pointing to an empty directory.
However, if one passes an empty path, for example with the --template
option, then git does not complain and does not copy anything:
git init --template=
Looking at the code, this undocumented (AFAICS) behavior appears to
be there at least from git 2.1:
static void copy_templates(const char *template_dir)
{
...
if (!template_dir)
template_dir = getenv(TEMPLATE_DIR_ENVIRONMENT);
if (!template_dir)
template_dir = init_db_template_dir;
if (!template_dir)
template_dir = system_path(DEFAULT_GIT_TEMPLATE_DIR);
if (!template_dir[0])
return;
For reference, the corresponding code in 2.50:
static void copy_templates(const char *option_template)
{
const char *template_dir = get_template_dir(option_template);
...
if (!template_dir || !*template_dir)
return;
I would like to suggest that we document this behavior so that it can
be relied upon. The motivation for omitting the default template are
repositories created by tools, such as package managers, for the sole
purpose of fetching some information from remotes. In this case all
the stuff copied from the template (such as hooks) is an unnecessary
waste of time and space.
Looking at the git-init(1) man page, the TEMPLATE DIRECTORY section
seems like the natural place to document this semantics. For example,
we could add the following sentence after the list of all the places
where the template directory can be specified:
"If the specified template directory is an empty path (for example,
--template=), then no template will be copied."
Let me know what you think.
Thanks,
Boris
next reply other threads:[~2025-07-03 14:49 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-03 14:40 Boris Kolpackov [this message]
2025-07-04 2:49 ` [External] Document ability to disable template directory in git-init Han Young
2025-07-04 10:33 ` Boris Kolpackov
2025-07-04 13:53 ` Todd Zullinger
2025-07-06 3:30 ` Jeff King
2025-07-04 14:57 ` Kristoffer Haugsbakk
2025-07-04 15:17 ` Kristoffer Haugsbakk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=boris.20250703161436@codesynthesis.com \
--to=boris@codesynthesis.com \
--cc=git@vger.kernel.org \
--cc=karen@codesynthesis.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).