}
if (tdir) {
- uint32_t cpflags = GIT_CPDIR_COPY_SYMLINKS | GIT_CPDIR_SIMPLE_TO_MODE;
+ uint32_t cpflags = GIT_CPDIR_COPY_SYMLINKS |
+ GIT_CPDIR_SIMPLE_TO_MODE |
+ GIT_CPDIR_COPY_DOTFILES;
if (opts->mode != GIT_REPOSITORY_INIT_SHARED_UMASK)
cpflags |= GIT_CPDIR_CHMOD_DIRS;
error = git_futils_cp_r(tdir, repo_dir, cpflags, dmode);
static const char *template_sandbox(const char *name)
{
- git_buf hooks_path = GIT_BUF_INIT, link_path = GIT_BUF_INIT;
+ git_buf hooks_path = GIT_BUF_INIT, link_path = GIT_BUF_INIT,
+ dotfile_path = GIT_BUF_INIT;
const char *path = cl_fixture(name);
cl_fixture_sandbox(name);
cl_must_pass(symlink("update.sample", link_path.ptr));
#endif
+ /* create a file starting with a dot */
+ cl_git_pass(git_buf_joinpath(&dotfile_path, hooks_path.ptr, ".dotfile"));
+ cl_git_mkfile(dotfile_path.ptr, "something\n");
+ git_buf_free(&dotfile_path);
+
+ git_buf_free(&dotfile_path);
git_buf_free(&link_path);
git_buf_free(&hooks_path);
template_path, git_repository_path(repo),
"hooks/link.sample", filemode);
+ assert_hooks_match(
+ template_path, git_repository_path(repo),
+ "hooks/.dotfile", filemode);
+
git_buf_free(&expected);
git_buf_free(&actual);
git_buf_free(&repo_description);