version 1.45, 2006/01/25 12:16:13 |
version 1.46, 2006/01/27 10:53:23 |
|
|
int i, ret; |
int i, ret; |
char *sp, repo[MAXPATHLEN]; |
char *sp, repo[MAXPATHLEN]; |
|
|
if ((dirp = opendir(".")) == NULL) { |
if ((dirp = opendir(".")) == NULL) |
cvs_log(LP_ERRNO, "failed to save cwd"); |
fatal("cvs_checkout_pre_exec: opendir failed"); |
return (CVS_EX_DATA); |
|
} |
|
|
|
cwdfd = dirfd(dirp); |
cwdfd = dirfd(dirp); |
|
|
|
|
if ((sp = strchr(co_mods[i], '/')) != NULL) |
if ((sp = strchr(co_mods[i], '/')) != NULL) |
*sp = '\0'; |
*sp = '\0'; |
|
|
if ((mkdir(co_mods[i], 0755) == -1) && (errno != EEXIST)) { |
if ((mkdir(co_mods[i], 0755) == -1) && (errno != EEXIST)) |
cvs_log(LP_ERRNO, "can't create base directory '%s'", |
fatal("cvs_checkout_pre_exec: mkdir `%s': %s", |
co_mods[i]); |
co_mods[i], strerror(errno)); |
return (CVS_EX_DATA); |
|
} |
|
|
|
if (cvs_mkadmin(co_mods[i], root->cr_str, co_mods[i], |
if (cvs_mkadmin(co_mods[i], root->cr_str, co_mods[i], |
NULL, NULL, 0) < 0) { |
NULL, NULL, 0) < 0) |
cvs_log(LP_ERR, "can't create base directory '%s'", |
fatal("cvs_checkout_pre_exec: cvs_mkadmin `%s' failed", |
co_mods[i]); |
co_mods[i]); |
return (CVS_EX_DATA); |
|
} |
|
|
|
if (sp != NULL) |
if (sp != NULL) |
*sp = '/'; |
*sp = '/'; |
|
|
|
|
if (root->cr_method == CVS_METHOD_LOCAL) { |
if (root->cr_method == CVS_METHOD_LOCAL) { |
if ((dirp = opendir(".")) == NULL) |
if ((dirp = opendir(".")) == NULL) |
return (CVS_EX_DATA); |
fatal("cvs_checkout_pre_exec: opendir failed"); |
|
|
cwdfd = dirfd(dirp); |
cwdfd = dirfd(dirp); |
|
|
for (i = 0; i < co_nmod; i++) { |
for (i = 0; i < co_nmod; i++) { |
|
|
if (inattic == 1) |
if (inattic == 1) |
return (CVS_EX_OK); |
return (CVS_EX_OK); |
|
|
if ((rf = rcs_open(rcspath, RCS_READ)) == NULL) { |
if ((rf = rcs_open(rcspath, RCS_READ)) == NULL) |
cvs_log(LP_ERR, "cvs_checkout_local: rcs_open failed"); |
fatal("cvs_checkout_local: rcs_open `%s': %s", rcspath, |
return (CVS_EX_DATA); |
strerror(rcs_errno)); |
} |
|
|
|
if (cvs_checkout_rev(rf, rf->rf_head, cf, fpath, |
if (cvs_checkout_rev(rf, rf->rf_head, cf, fpath, |
(cvs_cmdop != CVS_OP_SERVER) ? 1 : 0, |
(cvs_cmdop != CVS_OP_SERVER) ? 1 : 0, |
CHECKOUT_REV_CREATED) < 0) { |
CHECKOUT_REV_CREATED) < 0) |
rcs_close(rf); |
fatal("cvs_checkout_local: cvs_checkout_rev failed"); |
return (CVS_EX_DATA); |
|
} |
|
|
|
rcs_close(rf); |
rcs_close(rf); |
|
|
cvs_printf("U %s\n", fpath); |
cvs_printf("U %s\n", fpath); |
return (CVS_EX_OK); |
return (0); |
} |
} |