mirror of
				https://git.proxmox.com/git/libgit2
				synced 2025-11-04 08:48:25 +00:00 
			
		
		
		
	Merge pull request #2359 from e45lee/chmod-fix
Fixed permissions on template directories.
This commit is contained in:
		
						commit
						07c0eacd87
					
				@ -1190,6 +1190,7 @@ static int repo_init_structure(
 | 
			
		||||
	bool external_tpl =
 | 
			
		||||
		((opts->flags & GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE) != 0);
 | 
			
		||||
	mode_t dmode = pick_dir_mode(opts);
 | 
			
		||||
	bool chmod = opts->mode != GIT_REPOSITORY_INIT_SHARED_UMASK;
 | 
			
		||||
 | 
			
		||||
	/* Hide the ".git" directory */
 | 
			
		||||
#ifdef GIT_WIN32
 | 
			
		||||
@ -1230,10 +1231,12 @@ static int repo_init_structure(
 | 
			
		||||
			default_template = true;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (tdir)
 | 
			
		||||
			error = git_futils_cp_r(tdir, repo_dir,
 | 
			
		||||
				GIT_CPDIR_COPY_SYMLINKS | GIT_CPDIR_CHMOD_DIRS |
 | 
			
		||||
				GIT_CPDIR_SIMPLE_TO_MODE, dmode);
 | 
			
		||||
		if (tdir) {
 | 
			
		||||
			uint32_t cpflags = GIT_CPDIR_COPY_SYMLINKS | GIT_CPDIR_SIMPLE_TO_MODE;
 | 
			
		||||
			if (opts->mode != GIT_REPOSITORY_INIT_SHARED_UMASK)
 | 
			
		||||
					cpflags |= GIT_CPDIR_CHMOD_DIRS;
 | 
			
		||||
			error = git_futils_cp_r(tdir, repo_dir, cpflags, dmode);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		git_buf_free(&template_buf);
 | 
			
		||||
		git_config_free(cfg);
 | 
			
		||||
@ -1254,9 +1257,14 @@ static int repo_init_structure(
 | 
			
		||||
	 * - only create files if no external template was specified
 | 
			
		||||
	 */
 | 
			
		||||
	for (tpl = repo_template; !error && tpl->path; ++tpl) {
 | 
			
		||||
		if (!tpl->content)
 | 
			
		||||
		if (!tpl->content) {
 | 
			
		||||
			uint32_t mkdir_flags = GIT_MKDIR_PATH;
 | 
			
		||||
			if (chmod)
 | 
			
		||||
				mkdir_flags |= GIT_MKDIR_CHMOD;
 | 
			
		||||
 | 
			
		||||
			error = git_futils_mkdir(
 | 
			
		||||
				tpl->path, repo_dir, dmode, GIT_MKDIR_PATH | GIT_MKDIR_CHMOD);
 | 
			
		||||
				tpl->path, repo_dir, dmode, mkdir_flags);
 | 
			
		||||
		}
 | 
			
		||||
		else if (!external_tpl) {
 | 
			
		||||
			const char *content = tpl->content;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user