Skip to content

Commit e1df7fe

Browse files
pcloudsgitster
authored andcommitted
init: make --template path relative to $CWD
During git-init we chdir() to the target directory, but --template is not adjusted. So it's relative to the target directory instead of current directory. It would be ok if it's documented, but --template in git-init.txt mentions nothing about this behavior. Change it to be relative to $CWD, which is much more intuitive. The changes in the test suite show that this relative-to-target behavior is actually used. I just hope that it's only used in the test suite and it's safe to change. Otherwise, the other option is just document it (i.e. relative to target dir) and move on. Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent aeb582a commit e1df7fe

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

builtin/init-db.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,9 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
494494
if (real_git_dir && !is_absolute_path(real_git_dir))
495495
real_git_dir = real_pathdup(real_git_dir, 1);
496496

497+
if (template_dir && *template_dir && !is_absolute_path(template_dir))
498+
template_dir = absolute_pathdup(template_dir);
499+
497500
if (argc == 1) {
498501
int mkdir_tried = 0;
499502
retry:

t/t0001-init.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ test_expect_success 'reinit' '
174174
test_expect_success 'init with --template' '
175175
mkdir template-source &&
176176
echo content >template-source/file &&
177-
git init --template=../template-source template-custom &&
177+
git init --template=template-source template-custom &&
178178
test_cmp template-source/file template-custom/.git/file
179179
'
180180

t/t1301-shared-repo.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ test_expect_success POSIXPERM 'forced modes' '
136136
(
137137
cd new &&
138138
umask 002 &&
139-
git init --shared=0660 --template=../templates &&
139+
git init --shared=0660 --template=templates &&
140140
>frotz &&
141141
git add frotz &&
142142
git commit -a -m initial &&
@@ -192,7 +192,7 @@ test_expect_success POSIXPERM 're-init respects core.sharedrepository (remote)'
192192
umask 0022 &&
193193
git init --bare --shared=0666 child.git &&
194194
test_path_is_missing child.git/foo &&
195-
git init --bare --template=../templates child.git &&
195+
git init --bare --template=templates child.git &&
196196
echo "-rw-rw-rw-" >expect &&
197197
test_modebits child.git/foo >actual &&
198198
test_cmp expect actual
@@ -203,7 +203,7 @@ test_expect_success POSIXPERM 'template can set core.sharedrepository' '
203203
umask 0022 &&
204204
git config core.sharedrepository 0666 &&
205205
cp .git/config templates/config &&
206-
git init --bare --template=../templates child.git &&
206+
git init --bare --template=templates child.git &&
207207
echo "-rw-rw-rw-" >expect &&
208208
test_modebits child.git/HEAD >actual &&
209209
test_cmp expect actual

0 commit comments

Comments
 (0)