Browse Source

send-pack --thin: use "thin pack" delta transfer.

The new flag loosens the usual "self containedness" requirment
of packfiles, and sends deltified representation of objects when
we know the other side has the base objects needed to unpack
them.  This would help reducing the transfer size.

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Junio C Hamano 19 years ago
parent
commit
2245be3e7a
  1. 10
      send-pack.c

10
send-pack.c

@ -12,6 +12,7 @@ static const char *exec = "git-receive-pack"; @@ -12,6 +12,7 @@ static const char *exec = "git-receive-pack";
static int verbose = 0;
static int send_all = 0;
static int force_update = 0;
static int use_thin_pack = 0;

static int is_zero_sha1(const unsigned char *sha1)
{
@ -41,7 +42,10 @@ static void exec_rev_list(struct ref *refs) @@ -41,7 +42,10 @@ static void exec_rev_list(struct ref *refs)
int i = 0;

args[i++] = "rev-list"; /* 0 */
args[i++] = "--objects"; /* 1 */
if (use_thin_pack) /* 1 */
args[i++] = "--objects-edge";
else
args[i++] = "--objects";
while (refs) {
char *buf = malloc(100);
if (i > 900)
@ -361,6 +365,10 @@ int main(int argc, char **argv) @@ -361,6 +365,10 @@ int main(int argc, char **argv)
verbose = 1;
continue;
}
if (!strcmp(arg, "--thin")) {
use_thin_pack = 1;
continue;
}
usage(send_pack_usage);
}
if (!dest) {

Loading…
Cancel
Save