Merge branch 'nd/init-relative-template-fix'

A relative pathname given to "git init --template=<path> <repo>"
ought to be relative to the directory "git init" gets invoked in,
but it instead was made relative to the repository, which has been
corrected.

* nd/init-relative-template-fix:
  init: make --template path relative to $CWD
This commit is contained in:
Junio C Hamano 2019-06-13 13:18:46 -07:00
commit cf3269fba8
3 changed files with 7 additions and 4 deletions

View file

@ -502,6 +502,9 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
if (real_git_dir && !is_absolute_path(real_git_dir)) if (real_git_dir && !is_absolute_path(real_git_dir))
real_git_dir = real_pathdup(real_git_dir, 1); real_git_dir = real_pathdup(real_git_dir, 1);
if (template_dir && *template_dir && !is_absolute_path(template_dir))
template_dir = absolute_pathdup(template_dir);
if (argc == 1) { if (argc == 1) {
int mkdir_tried = 0; int mkdir_tried = 0;
retry: retry:

View file

@ -175,7 +175,7 @@ test_expect_success 'reinit' '
test_expect_success 'init with --template' ' test_expect_success 'init with --template' '
mkdir template-source && mkdir template-source &&
echo content >template-source/file && echo content >template-source/file &&
git init --template=../template-source template-custom && git init --template=template-source template-custom &&
test_cmp template-source/file template-custom/.git/file test_cmp template-source/file template-custom/.git/file
' '

View file

@ -136,7 +136,7 @@ test_expect_success POSIXPERM 'forced modes' '
( (
cd new && cd new &&
umask 002 && umask 002 &&
git init --shared=0660 --template=../templates && git init --shared=0660 --template=templates &&
>frotz && >frotz &&
git add frotz && git add frotz &&
git commit -a -m initial && git commit -a -m initial &&
@ -192,7 +192,7 @@ test_expect_success POSIXPERM 're-init respects core.sharedrepository (remote)'
umask 0022 && umask 0022 &&
git init --bare --shared=0666 child.git && git init --bare --shared=0666 child.git &&
test_path_is_missing child.git/foo && test_path_is_missing child.git/foo &&
git init --bare --template=../templates child.git && git init --bare --template=templates child.git &&
echo "-rw-rw-rw-" >expect && echo "-rw-rw-rw-" >expect &&
test_modebits child.git/foo >actual && test_modebits child.git/foo >actual &&
test_cmp expect actual test_cmp expect actual
@ -203,7 +203,7 @@ test_expect_success POSIXPERM 'template can set core.sharedrepository' '
umask 0022 && umask 0022 &&
git config core.sharedrepository 0666 && git config core.sharedrepository 0666 &&
cp .git/config templates/config && cp .git/config templates/config &&
git init --bare --template=../templates child.git && git init --bare --template=templates child.git &&
echo "-rw-rw-rw-" >expect && echo "-rw-rw-rw-" >expect &&
test_modebits child.git/HEAD >actual && test_modebits child.git/HEAD >actual &&
test_cmp expect actual test_cmp expect actual