X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=receive-pack.c;h=f83ae87e150ff93728da989f1d35ce0ad7c10f60;hb=fae09a8084c9b51632726523b477a78dd28d7d7e;hp=f5440ff4d439521edc39bc7a481911ebd7ce0d0c;hpb=28f72a0f232dfc71b3be726e7e71d0a6d5f9ebba;p=git.git diff --git a/receive-pack.c b/receive-pack.c index f5440ff4d..f83ae87e1 100644 --- a/receive-pack.c +++ b/receive-pack.c @@ -10,7 +10,6 @@ static const char receive_pack_usage[] = "git-receive-pack "; static int deny_non_fast_forwards = 0; -static int receive_fsck_objects = 1; static int receive_unpack_limit = -1; static int transfer_unpack_limit = -1; static int unpack_limit = 100; @@ -36,11 +35,6 @@ static int receive_pack_config(const char *var, const char *value) return 0; } - if (strcmp(var, "receive.fsckobjects") == 0) { - receive_fsck_objects = git_config_bool(var, value); - return 0; - } - return git_default_config(var, value); } @@ -138,6 +132,7 @@ static int run_hook(const char *hook_name) break; } } + close(proc.in); return hook_status(finish_command(&proc), hook_name); } @@ -373,13 +368,11 @@ static const char *unpack(void) ntohl(hdr.hdr_version), ntohl(hdr.hdr_entries)); if (ntohl(hdr.hdr_entries) < unpack_limit) { - int code, i = 0; - const char *unpacker[4]; - unpacker[i++] = "unpack-objects"; - if (receive_fsck_objects) - unpacker[i++] = "--strict"; - unpacker[i++] = hdr_arg; - unpacker[i++] = NULL; + int code; + const char *unpacker[3]; + unpacker[0] = "unpack-objects"; + unpacker[1] = hdr_arg; + unpacker[2] = NULL; code = run_command_v_opt(unpacker, RUN_GIT_CMD); switch (code) { case 0: @@ -400,8 +393,8 @@ static const char *unpack(void) return "unpacker exited with error code"; } } else { - const char *keeper[7]; - int s, status, i = 0; + const char *keeper[6]; + int s, status; char keep_arg[256]; struct child_process ip; @@ -409,14 +402,12 @@ static const char *unpack(void) if (gethostname(keep_arg + s, sizeof(keep_arg) - s)) strcpy(keep_arg + s, "localhost"); - keeper[i++] = "index-pack"; - keeper[i++] = "--stdin"; - if (receive_fsck_objects) - keeper[i++] = "--strict"; - keeper[i++] = "--fix-thin"; - keeper[i++] = hdr_arg; - keeper[i++] = keep_arg; - keeper[i++] = NULL; + keeper[0] = "index-pack"; + keeper[1] = "--stdin"; + keeper[2] = "--fix-thin"; + keeper[3] = hdr_arg; + keeper[4] = keep_arg; + keeper[5] = NULL; memset(&ip, 0, sizeof(ip)); ip.argv = keeper; ip.out = -1; @@ -424,6 +415,7 @@ static const char *unpack(void) if (start_command(&ip)) return "index-pack fork failed"; pack_lockfile = index_pack_lockfile(ip.out); + close(ip.out); status = finish_command(&ip); if (!status) { reprepare_packed_git(); @@ -479,6 +471,8 @@ int main(int argc, char **argv) if (!dir) usage(receive_pack_usage); + setup_path(NULL); + if (!enter_repo(dir, 0)) die("'%s': unable to chdir or not a git archive", dir);