version 1.35, 2006/11/13 10:24:30 |
version 1.36, 2006/11/13 10:42:28 |
|
|
|
|
static int runflags = 0; |
static int runflags = 0; |
static int lkmode = RCS_LOCK_INVAL; |
static int lkmode = RCS_LOCK_INVAL; |
|
static char *alist = NULL; |
static char *comment = NULL; |
static char *comment = NULL; |
static char *elist = NULL; |
static char *elist = NULL; |
|
static char *orange = NULL; |
|
|
int |
int |
cvs_admin(int argc, char **argv) |
cvs_admin(int argc, char **argv) |
|
|
case 'A': |
case 'A': |
break; |
break; |
case 'a': |
case 'a': |
|
alist = optarg; |
break; |
break; |
case 'b': |
case 'b': |
break; |
break; |
|
|
case 'n': |
case 'n': |
break; |
break; |
case 'o': |
case 'o': |
|
orange = optarg; |
break; |
break; |
case 'q': |
case 'q': |
verbosity = 0; |
verbosity = 0; |
|
|
if (current_cvsroot->cr_method != CVS_METHOD_LOCAL) { |
if (current_cvsroot->cr_method != CVS_METHOD_LOCAL) { |
cr.fileproc = cvs_client_sendfile; |
cr.fileproc = cvs_client_sendfile; |
|
|
|
if (alist != NULL) |
|
cvs_client_send_request("Argument -a%s", alist); |
|
|
if (comment != NULL) |
if (comment != NULL) |
cvs_client_send_request("Argument -c%s", comment); |
cvs_client_send_request("Argument -c%s", comment); |
|
|
|
if (runflags & ADM_EFLAG) |
|
cvs_client_send_request("Argument -e%s", |
|
(elist != NULL) ? elist : ""); |
|
|
if (lkmode == RCS_LOCK_STRICT) |
if (lkmode == RCS_LOCK_STRICT) |
cvs_client_send_request("Argument -L"); |
cvs_client_send_request("Argument -L"); |
else if (lkmode == RCS_LOCK_LOOSE) |
else if (lkmode == RCS_LOCK_LOOSE) |
cvs_client_send_request("Argument -U"); |
cvs_client_send_request("Argument -U"); |
|
|
|
if (orange != NULL) |
|
cvs_client_send_request("Argument -o%s", orange); |
|
|
if (verbosity == 0) |
if (verbosity == 0) |
cvs_client_send_request("Argument -q"); |
cvs_client_send_request("Argument -q"); |
|
|
|
|
if (verbosity > 0) |
if (verbosity > 0) |
cvs_printf("RCS file: %s\n", cf->file_path); |
cvs_printf("RCS file: %s\n", cf->file_path); |
|
|
|
if (alist != NULL) { |
|
struct cvs_argvector *aargv; |
|
|
|
aargv = cvs_strsplit(alist, ","); |
|
for (i = 0; aargv->argv[i] != NULL; i++) |
|
rcs_access_add(cf->file_rcs, aargv->argv[i]); |
|
|
|
cvs_argv_destroy(aargv); |
|
} |
|
|
if (comment != NULL) |
if (comment != NULL) |
rcs_comment_set(cf->file_rcs, comment); |
rcs_comment_set(cf->file_rcs, comment); |
|
|
|
|
} |
} |
/* no synced anymore */ |
/* no synced anymore */ |
cf->file_rcs->rf_flags &= ~RCS_SYNCED; |
cf->file_rcs->rf_flags &= ~RCS_SYNCED; |
|
} |
|
|
|
if (orange != NULL) { |
|
struct rcs_delta *rdp, *nrdp; |
|
char b[16]; |
|
|
|
cvs_revision_select(cf->file_rcs, orange); |
|
for (rdp = TAILQ_FIRST(&(cf->file_rcs->rf_delta)); |
|
rdp != NULL; rdp = nrdp) { |
|
nrdp = TAILQ_NEXT(rdp, rd_list); |
|
|
|
/* |
|
* Delete selected revisions. |
|
*/ |
|
if (rdp->rd_flags & RCS_RD_SELECT) { |
|
rcsnum_tostr(rdp->rd_num, b, sizeof(b)); |
|
if (verbosity > 0) |
|
cvs_printf("deleting revision %s\n", b); |
|
|
|
(void)rcs_rev_remove(cf->file_rcs, rdp->rd_num); |
|
} |
|
} |
} |
} |
|
|
if (lkmode != RCS_LOCK_INVAL) |
if (lkmode != RCS_LOCK_INVAL) |