Re: [PATCH v2 05/18] fsck: Allow demoting errors to warnings via receive.fsck.warn = <key>
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:03:38
Johannes Schindelin [off-list ref] writes:
+ if (starts_with(var, "receive.fsck.")) {
+ if (fsck_severity.len)
+ strbuf_addch(&fsck_severity, ',');
+ strbuf_addf(&fsck_severity, "%s=%s", var + 13, value);Wouldn't it be safer to use skip_prefix() that lets you avoid the hardcoded "var + 13" here?
quoted hunk
@@ -1470,8 +1478,13 @@ static const char *unpack(int err_fd, struct shallow_info *si) argv_array_pushl(&child.args, "unpack-objects", hdr_arg, NULL); if (quiet) argv_array_push(&child.args, "-q"); - if (fsck_objects) - argv_array_push(&child.args, "--strict"); + if (fsck_objects) { + if (fsck_severity.len) + argv_array_pushf(&child.args, "--strict=%s", + fsck_severity.buf); + else + argv_array_push(&child.args, "--strict"); + } child.no_stdout = 1; child.err = err_fd; child.git_cmd = 1;@@ -1488,8 +1501,13 @@ static const char *unpack(int err_fd, struct shallow_info *si) argv_array_pushl(&child.args, "index-pack", "--stdin", hdr_arg, keep_arg, NULL); - if (fsck_objects) - argv_array_push(&child.args, "--strict"); + if (fsck_objects) { + if (fsck_severity.len) + argv_array_pushf(&child.args, "--strict=%s", + fsck_severity.buf); + else + argv_array_push(&child.args, "--strict"); + }
Hmm. The above two hunks look suspiciously similar. Would it be worth to give them a single helper function?
quoted hunk
diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c index 6d17040..82f2d62 100644 --- a/builtin/unpack-objects.c +++ b/builtin/unpack-objects.c@@ -530,6 +530,11 @@ int cmd_unpack_objects(int argc, const char **argv, const char *prefix) strict = 1; continue; } + if (starts_with(arg, "--strict=")) { + strict = 1; + fsck_set_severity(&fsck_options, arg + 9); + continue; + } if (starts_with(arg, "--pack_header=")) { struct pack_header *hdr; char *c;