summaryrefslogtreecommitdiff
path: root/usr.bin/cvs/checkout.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/cvs/checkout.c')
-rw-r--r--usr.bin/cvs/checkout.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/usr.bin/cvs/checkout.c b/usr.bin/cvs/checkout.c
index 878a4e309af..ccc6764f6da 100644
--- a/usr.bin/cvs/checkout.c
+++ b/usr.bin/cvs/checkout.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: checkout.c,v 1.78 2007/01/16 08:33:46 xsa Exp $ */
+/* $OpenBSD: checkout.c,v 1.79 2007/01/17 17:54:50 joris Exp $ */
/*
* Copyright (c) 2006 Joris Vink <joris@openbsd.org>
*
@@ -125,6 +125,34 @@ checkout_check_repository(int argc, char **argv)
int i;
char repo[MAXPATHLEN];
struct stat st;
+ struct cvs_recursion cr;
+
+ if (current_cvsroot->cr_method != CVS_METHOD_LOCAL) {
+ cvs_client_connect_to_server();
+
+ if (reset_stickies == 1)
+ cvs_client_send_request("Argument -A");
+
+ if (cvs_cmdop == CVS_OP_CHECKOUT && prune_dirs == 1)
+ cvs_client_send_request("Argument -P");
+
+ cr.enterdir = NULL;
+ cr.leavedir = NULL;
+ cr.fileproc = cvs_client_sendfile;
+ cr.flags = flags;
+
+ cvs_file_run(argc, argv, &cr);
+
+ cvs_client_send_files(argv, argc);
+ cvs_client_senddir(".");
+
+ cvs_client_send_request("%s",
+ (cvs_cmdop == CVS_OP_CHECKOUT) ? "co" : "export");
+
+ cvs_client_get_responses();
+
+ return;
+ }
for (i = 0; i < argc; i++) {
cvs_mkpath(argv[i]);