Do not use GIT_CPDIR_CHMOD flag when copying the template.

This is an intermin solution. While this essentially disables the
--shared flag feature, previously external templates did not work
at all. This change fixes the previously corrected, and since
then failing, repo_init__extended_with_template() test.

The problem is now documented in the source code comments.
This commit is contained in:
Sebastian Bauer 2013-01-13 11:30:05 +01:00
parent b7b1acfdbd
commit 85f4031276

View File

@ -1005,8 +1005,17 @@ static int repo_init_structure(
tdir = GIT_TEMPLATE_DIR; tdir = GIT_TEMPLATE_DIR;
} }
/* FIXME: GIT_CPDIR_CHMOD cannot applied here as an attempt
* would be made to chmod() all directories up to the last
* component of repo_dir, e.g., also /home etc. Recall that
* repo_dir is prettified at this point.
*
* Best probably would be to have the same logic as in
* git_futils_mkdir(), i.e., to separate the base from
* the path.
*/
error = git_futils_cp_r(tdir, repo_dir, error = git_futils_cp_r(tdir, repo_dir,
GIT_CPDIR_COPY_SYMLINKS | GIT_CPDIR_CHMOD, dmode); GIT_CPDIR_COPY_SYMLINKS /*| GIT_CPDIR_CHMOD*/, dmode);
if (error < 0) { if (error < 0) {
if (strcmp(tdir, GIT_TEMPLATE_DIR) != 0) if (strcmp(tdir, GIT_TEMPLATE_DIR) != 0)