diff options
author | Jeff King <peff@peff.net> | 2008-07-28 02:02:04 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-08-01 22:41:07 -0700 |
commit | d65d2b2fb44a8bc0fc917aaca973ab7ad14d13b4 (patch) | |
tree | ba28d620693bbf0e0c545bbcd070d445b9df6ef8 /t | |
parent | 1e5f7add985dbccc0e811dbb6eff5047d8843118 (diff) | |
download | git-d65d2b2fb44a8bc0fc917aaca973ab7ad14d13b4.tar.gz git-d65d2b2fb44a8bc0fc917aaca973ab7ad14d13b4.tar.xz |
init: handle empty "template" parameter
If a user passes "--template=", then our template parameter
is blank. Unfortunately, copy_templates() assumes it has at
least one character, and does all sorts of bad things like
reading from template[-1] and then proceeding to link all of
'/' into the .git directory.
This patch just checks for that condition in copy_templates
and aborts. As a side effect, this means that --template=
now has the meaning "don't copy any templates."
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t0001-init.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/t/t0001-init.sh b/t/t0001-init.sh index d31887f9b..c0b781ae4 100755 --- a/t/t0001-init.sh +++ b/t/t0001-init.sh @@ -141,4 +141,30 @@ test_expect_success 'reinit' ' test_cmp again/empty again/err2 ' +test_expect_success 'init with --template' ' + mkdir template-source && + echo content >template-source/file && + ( + mkdir template-custom && + cd template-custom && + git init --template=../template-source + ) && + test_cmp template-source/file template-custom/.git/file +' + +test_expect_success 'init with --template (blank)' ' + ( + mkdir template-plain && + cd template-plain && + git init + ) && + test -f template-plain/.git/info/exclude && + ( + mkdir template-blank && + cd template-blank && + git init --template= + ) && + ! test -f template-blank/.git/info/exclude +' + test_done |