version 1.79, 2006/07/03 07:09:35 |
version 1.80, 2006/07/07 17:37:17 |
|
|
#include "cvs.h" |
#include "cvs.h" |
#include "log.h" |
#include "log.h" |
#include "diff.h" |
#include "diff.h" |
|
#include "remote.h" |
|
|
int cvs_update(int, char **); |
|
int prune_dirs = 0; |
int prune_dirs = 0; |
int print = 0; |
int print = 0; |
int build_dirs = 0; |
int build_dirs = 0; |
|
|
int flags; |
int flags; |
struct cvs_recursion cr; |
struct cvs_recursion cr; |
|
|
flags = CR_REPO | CR_RECURSE_DIRS; |
flags = CR_RECURSE_DIRS; |
|
|
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) { |
|
|
argc -= optind; |
argc -= optind; |
argv += optind; |
argv += optind; |
|
|
cr.enterdir = cvs_update_enterdir; |
if (current_cvsroot->cr_method == CVS_METHOD_LOCAL) { |
cr.leavedir = cvs_update_leavedir; |
cr.enterdir = cvs_update_enterdir; |
cr.fileproc = cvs_update_local; |
cr.leavedir = cvs_update_leavedir; |
|
cr.fileproc = cvs_update_local; |
|
flags |= CR_REPO; |
|
} else { |
|
if (reset_stickies) |
|
cvs_client_send_request("Argument -A"); |
|
if (build_dirs) |
|
cvs_client_send_request("Argument -d"); |
|
if (!(flags & CR_RECURSE_DIRS)) |
|
cvs_client_send_request("Argument -l"); |
|
if (prune_dirs) |
|
cvs_client_send_request("Argument -P"); |
|
if (print) |
|
cvs_client_send_request("Argument -p"); |
|
|
|
cr.enterdir = NULL; |
|
cr.leavedir = NULL; |
|
cr.fileproc = cvs_client_sendfile; |
|
} |
|
|
cr.flags = flags; |
cr.flags = flags; |
|
|
if (argc > 0) |
if (argc > 0) |
cvs_file_run(argc, argv, &cr); |
cvs_file_run(argc, argv, &cr); |
else |
else |
cvs_file_run(1, &arg, &cr); |
cvs_file_run(1, &arg, &cr); |
|
|
|
if (current_cvsroot->cr_method != CVS_METHOD_LOCAL) { |
|
cvs_client_send_files(argv, argc); |
|
cvs_client_senddir("."); |
|
cvs_client_send_request("update"); |
|
cvs_client_get_responses(); |
|
} |
|
|
return (0); |
return (0); |
} |
} |