summaryrefslogtreecommitdiff
path: root/remote-curl.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2013-07-21 08:18:05 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-07-23 19:18:18 (GMT)
commit9ba380481cc3a5ae7706763d71cf8844917ed804 (patch)
tree44a1f26052d15dfc349e0edc34df0117cb0595e7 /remote-curl.c
parentc6807a40dcd29f7e5ad1e2f4fc44f1729c9afa11 (diff)
downloadgit-9ba380481cc3a5ae7706763d71cf8844917ed804.zip
git-9ba380481cc3a5ae7706763d71cf8844917ed804.tar.gz
git-9ba380481cc3a5ae7706763d71cf8844917ed804.tar.bz2
smart http: use the same connectivity check on cloning
This is an extension of c6807a4 (clone: open a shortcut for connectivity check - 2013-05-26) to reduce the cost of connectivity check at clone time, this time with smart http protocol. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'remote-curl.c')
-rw-r--r--remote-curl.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/remote-curl.c b/remote-curl.c
index 60eda63..c3157e8 100644
--- a/remote-curl.c
+++ b/remote-curl.c
@@ -15,6 +15,7 @@ struct options {
int verbosity;
unsigned long depth;
unsigned progress : 1,
+ check_self_contained_and_connected : 1,
followtags : 1,
dry_run : 1,
thin : 1;
@@ -66,6 +67,15 @@ static int set_option(const char *name, const char *value)
return -1;
return 0;
}
+ else if (!strcmp(name, "check-connectivity")) {
+ if (!strcmp(value, "true"))
+ options.check_self_contained_and_connected = 1;
+ else if (!strcmp(value, "false"))
+ options.check_self_contained_and_connected = 0;
+ else
+ return -1;
+ return 0;
+ }
else {
return 1 /* unsupported */;
}
@@ -653,7 +663,7 @@ static int fetch_git(struct discovery *heads,
struct strbuf preamble = STRBUF_INIT;
char *depth_arg = NULL;
int argc = 0, i, err;
- const char *argv[15];
+ const char *argv[16];
argv[argc++] = "fetch-pack";
argv[argc++] = "--stateless-rpc";
@@ -667,6 +677,8 @@ static int fetch_git(struct discovery *heads,
argv[argc++] = "-v";
argv[argc++] = "-v";
}
+ if (options.check_self_contained_and_connected)
+ argv[argc++] = "--check-self-contained-and-connected";
if (!options.progress)
argv[argc++] = "--no-progress";
if (options.depth) {
@@ -939,6 +951,7 @@ int main(int argc, const char **argv)
printf("fetch\n");
printf("option\n");
printf("push\n");
+ printf("check-connectivity\n");
printf("\n");
fflush(stdout);
} else {