mirror of
https://git.proxmox.com/git/libgit2
synced 2026-01-28 11:53:25 +00:00
git_repository_init: include dotfiles when copying templates
Include dotfiles when copying template directory, which will handle both a template directory itself that begins with a dotfile, and any dotfiles inside the directory.
This commit is contained in:
parent
002821837f
commit
62602547db
@ -1438,7 +1438,9 @@ static int repo_init_structure(
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
@ -519,7 +519,8 @@ static void assert_mode_seems_okay(
|
||||
|
||||
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);
|
||||
@ -537,6 +538,12 @@ static const char *template_sandbox(const char *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);
|
||||
|
||||
@ -595,6 +602,10 @@ static void validate_templates(git_repository *repo, const char *template_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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user