version 1.123, 2008/02/09 11:40:43 |
version 1.124, 2008/02/09 12:20:33 |
|
|
int prune_dirs = 0; |
int prune_dirs = 0; |
int print_stdout = 0; |
int print_stdout = 0; |
int build_dirs = 0; |
int build_dirs = 0; |
int reset_stickies = 0; |
int reset_option = 0; |
|
int reset_tag = 0; |
char *cvs_specified_tag = NULL; |
char *cvs_specified_tag = NULL; |
|
|
static char *koptstr; |
static char *koptstr; |
|
static int Aflag = 0; |
|
|
static void update_clear_conflict(struct cvs_file *); |
static void update_clear_conflict(struct cvs_file *); |
|
|
|
|
while ((ch = getopt(argc, argv, cvs_cmd_update.cmd_opts)) != -1) { |
while ((ch = getopt(argc, argv, cvs_cmd_update.cmd_opts)) != -1) { |
switch (ch) { |
switch (ch) { |
case 'A': |
case 'A': |
reset_stickies = 1; |
Aflag = 1; |
|
if (koptstr == NULL) |
|
reset_option = 1; |
|
if (cvs_specified_tag == NULL) |
|
reset_tag = 1; |
break; |
break; |
case 'C': |
case 'C': |
case 'D': |
case 'D': |
|
|
case 'j': |
case 'j': |
break; |
break; |
case 'k': |
case 'k': |
|
reset_option = 0; |
koptstr = optarg; |
koptstr = optarg; |
kflag = rcs_kflag_get(koptstr); |
kflag = rcs_kflag_get(koptstr); |
if (RCS_KWEXP_INVAL(kflag)) { |
if (RCS_KWEXP_INVAL(kflag)) { |
|
|
flags |= CR_RECURSE_DIRS; |
flags |= CR_RECURSE_DIRS; |
break; |
break; |
case 'r': |
case 'r': |
|
reset_tag = 0; |
cvs_specified_tag = optarg; |
cvs_specified_tag = optarg; |
break; |
break; |
case 'u': |
case 'u': |
|
|
flags |= CR_REPO; |
flags |= CR_REPO; |
} else { |
} else { |
cvs_client_connect_to_server(); |
cvs_client_connect_to_server(); |
if (reset_stickies) |
if (Aflag) |
cvs_client_send_request("Argument -A"); |
cvs_client_send_request("Argument -A"); |
if (build_dirs) |
if (build_dirs) |
cvs_client_send_request("Argument -d"); |
cvs_client_send_request("Argument -d"); |
|
|
} else if ((cf->file_status == DIR_CREATE && build_dirs == 0) || |
} else if ((cf->file_status == DIR_CREATE && build_dirs == 0) || |
cf->file_status == FILE_UNKNOWN) { |
cf->file_status == FILE_UNKNOWN) { |
cf->file_status = FILE_SKIP; |
cf->file_status = FILE_SKIP; |
} else if (reset_stickies == 1) { |
} else if (reset_tag) { |
(void)xsnprintf(fpath, MAXPATHLEN, "%s/%s", |
(void)xsnprintf(fpath, MAXPATHLEN, "%s/%s", |
cf->file_path, CVS_PATH_TAG); |
cf->file_path, CVS_PATH_TAG); |
(void)unlink(fpath); |
(void)unlink(fpath); |
|
|
|
|
if ((cf->file_status == FILE_UPTODATE || |
if ((cf->file_status == FILE_UPTODATE || |
cf->file_status == FILE_MODIFIED) && cf->file_ent != NULL && |
cf->file_status == FILE_MODIFIED) && cf->file_ent != NULL && |
cf->file_ent->ce_tag != NULL && reset_stickies == 1) { |
cf->file_ent->ce_tag != NULL && reset_tag) { |
if (cf->file_status == FILE_MODIFIED) |
if (cf->file_status == FILE_MODIFIED) |
cf->file_status = FILE_MERGE; |
cf->file_status = FILE_MERGE; |
else |
else |
|
|
|
|
if (strcmp(kbuf, cf->file_ent->ce_opts)) |
if (strcmp(kbuf, cf->file_ent->ce_opts)) |
cf->file_status = FILE_CHECKOUT; |
cf->file_status = FILE_CHECKOUT; |
} else if (reset_stickies) |
} else if (reset_option) |
cf->file_status = FILE_CHECKOUT; |
cf->file_status = FILE_CHECKOUT; |
} |
} |
} |
} |
|
|
case FILE_LOST: |
case FILE_LOST: |
case FILE_CHECKOUT: |
case FILE_CHECKOUT: |
case FILE_PATCH: |
case FILE_PATCH: |
if ((tag != NULL && reset_stickies != 1) || |
if ((tag != NULL && !reset_tag) || |
(((cf->file_ent != NULL) && cf->file_ent->ce_tag != NULL) && |
(((cf->file_ent != NULL) && cf->file_ent->ce_tag != NULL) && |
(reset_stickies != 1))) |
!reset_tag)) |
flags = CO_SETSTICKY; |
flags = CO_SETSTICKY; |
|
|
cvs_checkout_file(cf, cf->file_rcsrev, tag, flags); |
cvs_checkout_file(cf, cf->file_rcsrev, tag, flags); |