{"thread":{"id":"57537","subject":"[PATCH] repack: add config to skip updating server info","startedAt":"2022-03-11T11:09:42Z","lastAt":"2022-03-14T22:26:55Z","messageCount":7,"participants":["Patrick Steinhardt","Taylor Blau","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"451122","messageId":"659d5528df56f6b9aece6b1f3c4e2e5a4ae04e1e.1646996936.git.ps@pks.im","threadId":"57537","inReplyTo":null,"subject":"[PATCH] repack: add config to skip updating server info","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2022-03-11T11:09:30Z","receivedAt":"2022-03-11T11:09:42Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"By default, git-repack(1) will update server info that is required by\nthe dumb HTTP transport. This can be skipped by passing the `-n` flag,\nbut what we're noticably missing is a config option to permanently\ndisable updating this information.\n\nAdd a new option \"repack.updateServerInfo\" which can be used to disable\nthe logic. Most hosting providers have turned off the dumb HTTP protocol\nanyway, and on the client-side it woudln't typically be useful either.\nGiving a persistent way to disable this feature thus makes quite some\nsense to avoid wasting compute cycles and storage.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n Documentation/config/repack.txt |  3 +++\n builtin/repack.c                |  6 ++++-\n t/t7700-repack.sh               | 47 +++++++++++++++++++++++++++++++++\n 3 files changed, 55 insertions(+), 1 deletion(-)\n\ndiff --git a/Documentation/config/repack.txt b/Documentation/config/repack.txt\nindex 9c413e177e..22bfc26afc 100644\n--- a/Documentation/config/repack.txt\n+++ b/Documentation/config/repack.txt\n@@ -25,3 +25,6 @@ repack.writeBitmaps::\n \tspace and extra time spent on the initial repack.  This has\n \tno effect if multiple packfiles are created.\n \tDefaults to true on bare repos, false otherwise.\n+\n+repack.updateServerInfo::\n+\tIf set to false, git-repack will not run git-update-server-info.\ndiff --git a/builtin/repack.c b/builtin/repack.c\nindex da1e364a75..3baa993da2 100644\n--- a/builtin/repack.c\n+++ b/builtin/repack.c\n@@ -22,6 +22,7 @@ static int delta_base_offset = 1;\n static int pack_kept_objects = -1;\n static int write_bitmaps = -1;\n static int use_delta_islands;\n+static int no_update_server_info = 0;\n static char *packdir, *packtmp_name, *packtmp;\n \n static const char *const git_repack_usage[] = {\n@@ -54,6 +55,10 @@ static int repack_config(const char *var, const char *value, void *cb)\n \t\tuse_delta_islands = git_config_bool(var, value);\n \t\treturn 0;\n \t}\n+\tif (strcmp(var, \"repack.updateserverinfo\") == 0) {\n+\t\tno_update_server_info = !git_config_bool(var, value);\n+\t\treturn 0;\n+\t}\n \treturn git_default_config(var, value, cb);\n }\n \n@@ -620,7 +625,6 @@ int cmd_repack(int argc, const char **argv, const char *prefix)\n \tconst char *unpack_unreachable = NULL;\n \tint keep_unreachable = 0;\n \tstruct string_list keep_pack_list = STRING_LIST_INIT_NODUP;\n-\tint no_update_server_info = 0;\n \tstruct pack_objects_args po_args = {NULL};\n \tint geometric_factor = 0;\n \tint write_midx = 0;\ndiff --git a/t/t7700-repack.sh b/t/t7700-repack.sh\nindex 5922fb5bdd..f049120022 100755\n--- a/t/t7700-repack.sh\n+++ b/t/t7700-repack.sh\n@@ -381,4 +381,51 @@ test_expect_success TTY '--quiet disables progress' '\n \ttest_must_be_empty stderr\n '\n \n+test_expect_success 'updates server info by default' '\n+\tgit init repo &&\n+\ttest_when_finished \"rm -rf repo\" &&\n+\ttest_commit -C repo message &&\n+\ttest_path_is_missing repo/.git/objects/info/packs &&\n+\ttest_path_is_missing repo/.git/info/refs &&\n+\tgit -C repo repack &&\n+\ttest_path_is_file repo/.git/objects/info/packs &&\n+\ttest_path_is_file repo/.git/info/refs\n+'\n+\n+test_expect_success '-n skips updating server info' '\n+\tgit init repo &&\n+\ttest_when_finished \"rm -rf repo\" &&\n+\ttest_commit -C repo message &&\n+\tgit -C repo repack -n &&\n+\ttest_path_is_missing repo/.git/objects/info/packs &&\n+\ttest_path_is_missing repo/.git/info/refs\n+'\n+\n+test_expect_success 'repack.updateServerInfo=true updates server info' '\n+\tgit init repo &&\n+\ttest_when_finished \"rm -rf repo\" &&\n+\ttest_commit -C repo message &&\n+\tgit -C repo -c repack.updateServerInfo=true repack &&\n+\ttest_path_is_file repo/.git/objects/info/packs &&\n+\ttest_path_is_file repo/.git/info/refs\n+'\n+\n+test_expect_success 'repack.updateServerInfo=false skips updating server info' '\n+\tgit init repo &&\n+\ttest_when_finished \"rm -rf repo\" &&\n+\ttest_commit -C repo message &&\n+\tgit -C repo -c repack.updateServerInfo=false repack &&\n+\ttest_path_is_missing repo/.git/objects/info/packs &&\n+\ttest_path_is_missing repo/.git/info/refs\n+'\n+\n+test_expect_success '-n overrides repack.updateServerInfo=true' '\n+\tgit init repo &&\n+\ttest_when_finished \"rm -rf repo\" &&\n+\ttest_commit -C repo message &&\n+\tgit -C repo -c repack.updateServerInfo=true repack -n &&\n+\ttest_path_is_missing repo/.git/objects/info/packs &&\n+\ttest_path_is_missing repo/.git/info/refs\n+'\n+\n test_done\n-- \n2.35.1\n\n"},{"id":"451137","messageId":"Yit22Xcs6iF4MVB7@nand.local","threadId":"57537","inReplyTo":"659d5528df56f6b9aece6b1f3c4e2e5a4ae04e1e.1646996936.git.ps@pks.im","subject":"Re: [PATCH] repack: add config to skip updating server info","fromName":"Taylor Blau","fromEmail":"me@ttaylorr.com","sentAt":"2022-03-11T16:20:41Z","receivedAt":"2022-03-11T16:20:46Z","isPatch":true,"sender":{"key":"me@ttaylorr.com","avatar":"https://avatars.githubusercontent.com/u/301000140?v=4"},"body":"On Fri, Mar 11, 2022 at 12:09:30PM +0100, Patrick Steinhardt wrote:\n> diff --git a/Documentation/config/repack.txt b/Documentation/config/repack.txt\n> index 9c413e177e..22bfc26afc 100644\n> --- a/Documentation/config/repack.txt\n> +++ b/Documentation/config/repack.txt\n> @@ -25,3 +25,6 @@ repack.writeBitmaps::\n>  \tspace and extra time spent on the initial repack.  This has\n>  \tno effect if multiple packfiles are created.\n>  \tDefaults to true on bare repos, false otherwise.\n> +\n> +repack.updateServerInfo::\n> +\tIf set to false, git-repack will not run git-update-server-info.\n\nCan you clarify here what the default value of this config variable is,\nand how it interacts with repack's `-n` flag? E.g., something along the\nlines of:\n\n    repack.updateServerInfo::\n        If set to false, linkgit:git-repack[1] will not run\n        linkgit:git-update-serve-info[1]. Defaults to true. Can be\n        overridden when true by the `-n` option of\n        linkgit:git-repack[1].\n\nPerhaps a little verbose, but I think it leaves less ambiguity about\nwhat this new configuration variable is for.\n\n> diff --git a/builtin/repack.c b/builtin/repack.c\n> index da1e364a75..3baa993da2 100644\n> --- a/builtin/repack.c\n> +++ b/builtin/repack.c\n> @@ -22,6 +22,7 @@ static int delta_base_offset = 1;\n>  static int pack_kept_objects = -1;\n>  static int write_bitmaps = -1;\n>  static int use_delta_islands;\n> +static int no_update_server_info = 0;\n\nNot the fault of this patch, but I wonder if this would be less\nconfusing if we stored `update_server_info` instead of\n`no_update_server_info`. If you have time, I think it may be worth a\npreparatory patch at the beginning to swap the two.\n\n> +test_expect_success 'updates server info by default' '\n> +\tgit init repo &&\n> +\ttest_when_finished \"rm -rf repo\" &&\n> +\ttest_commit -C repo message &&\n> +\ttest_path_is_missing repo/.git/objects/info/packs &&\n> +\ttest_path_is_missing repo/.git/info/refs &&\n> +\tgit -C repo repack &&\n> +\ttest_path_is_file repo/.git/objects/info/packs &&\n> +\ttest_path_is_file repo/.git/info/refs\n> +'\n\nI wonder if this and the below tests might be cleaned up with a pair of\nhelper functions, perhaps:\n\n    test_server_info_present () {\n      test_path_is_file .git/objects/info/packs &&\n      test_path_is_file .git/info/refs\n    }\n\n    test_server_info_missing () {\n      test_path_is_missing .git/objects/info/packs &&\n      test_path_is_missing .git/info/refs\n    }\n\nt7700 has a mix of styles, but it may shorten some of the lines to use a\nsubshell that is changed into the repo directory, e.g., the test above\nwould become:\n\n    test_expect_success 'updates server info by default' '\n      git init repo &&\n      test_when_finished \"rm -fr repo\" &&\n      (\n        test_commit message &&\n        test_server_info_missing &&\n        git repack &&\n        test_server_info_present\n      )\n    '\n\nwhich reads a little more easily to me. It would be nice to avoid\ncreating the sub-repos at all, perhaps by removing these files\nourselves in between tests.\n\n> +test_expect_success '-n skips updating server info' '\n> +test_expect_success 'repack.updateServerInfo=true updates server info' '\n> +test_expect_success 'repack.updateServerInfo=false skips updating server info' '\n> +test_expect_success '-n overrides repack.updateServerInfo=true' '\n\nGreat, these four and the above together cover all of the cases I think\nwe'd be interested in.\n\nThanks,\nTaylor\n"},{"id":"451289","messageId":"Yi7se2c03E4PNnsX@ncase","threadId":"57537","inReplyTo":"Yit22Xcs6iF4MVB7@nand.local","subject":"Re: [PATCH] repack: add config to skip updating server info","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2022-03-14T07:19:23Z","receivedAt":"2022-03-14T07:19:39Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Fri, Mar 11, 2022 at 11:20:41AM -0500, Taylor Blau wrote:\n> On Fri, Mar 11, 2022 at 12:09:30PM +0100, Patrick Steinhardt wrote:\n> > diff --git a/Documentation/config/repack.txt b/Documentation/config/repack.txt\n> > index 9c413e177e..22bfc26afc 100644\n> > --- a/Documentation/config/repack.txt\n> > +++ b/Documentation/config/repack.txt\n> > @@ -25,3 +25,6 @@ repack.writeBitmaps::\n> >  \tspace and extra time spent on the initial repack.  This has\n> >  \tno effect if multiple packfiles are created.\n> >  \tDefaults to true on bare repos, false otherwise.\n> > +\n> > +repack.updateServerInfo::\n> > +\tIf set to false, git-repack will not run git-update-server-info.\n> \n> Can you clarify here what the default value of this config variable is,\n> and how it interacts with repack's `-n` flag? E.g., something along the\n> lines of:\n> \n>     repack.updateServerInfo::\n>         If set to false, linkgit:git-repack[1] will not run\n>         linkgit:git-update-serve-info[1]. Defaults to true. Can be\n>         overridden when true by the `-n` option of\n>         linkgit:git-repack[1].\n> \n> Perhaps a little verbose, but I think it leaves less ambiguity about\n> what this new configuration variable is for.\n\nMakes sense.\n\n> > diff --git a/builtin/repack.c b/builtin/repack.c\n> > index da1e364a75..3baa993da2 100644\n> > --- a/builtin/repack.c\n> > +++ b/builtin/repack.c\n> > @@ -22,6 +22,7 @@ static int delta_base_offset = 1;\n> >  static int pack_kept_objects = -1;\n> >  static int write_bitmaps = -1;\n> >  static int use_delta_islands;\n> > +static int no_update_server_info = 0;\n> \n> Not the fault of this patch, but I wonder if this would be less\n> confusing if we stored `update_server_info` instead of\n> `no_update_server_info`. If you have time, I think it may be worth a\n> preparatory patch at the beginning to swap the two.\n[snip]\n\nI indeed first had a look at how to do this, but didn't find a negated\n`OPT_BOOL()`. I had another look now though, and it seems like this is\ntypically solved via `OPT_NEGBIT()`.\n\nThanks!\n\nPatrick\n"},{"id":"451290","messageId":"cover.1647243508.git.ps@pks.im","threadId":"57537","inReplyTo":"659d5528df56f6b9aece6b1f3c4e2e5a4ae04e1e.1646996936.git.ps@pks.im","subject":"[PATCH v2 0/2] repack: add config to skip updating server info","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2022-03-14T07:42:42Z","receivedAt":"2022-03-14T07:42:54Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"Hi,\n\nthis is the second version of my patch series which adds a new config to\nallow users and admins to permanently skip updating server info required\nfor the dumb HTTP protocol in git-repack(1).\n\nThe following things changed in comparison to v1:\n\n    - I've split out a preparatory patch which refactors the logic to\n      avoid double-negation of the `no_update_server_info` field.\n\n    - I've updated documentation to be more explicit with regards to the\n      default of the new config and to mention that the `-n` flag\n      overrides it.\n\n    - I've refactored tests to be less verbose.\n\nThanks for your feedback, Taylor!\n\nPatrick\n\nPatrick Steinhardt (2):\n  repack: refactor to avoid double-negation of update-server-info\n  repack: add config to skip updating server info\n\n Documentation/config/repack.txt |  5 ++++\n builtin/repack.c                | 12 +++++---\n t/t7700-repack.sh               | 50 +++++++++++++++++++++++++++++++++\n 3 files changed, 63 insertions(+), 4 deletions(-)\n\n-- \n2.35.1\n\n"},{"id":"451291","messageId":"feaa4615e2dcc3bc644d12bb2dba1ab28d5ecc1c.1647243508.git.ps@pks.im","threadId":"57537","inReplyTo":"cover.1647243508.git.ps@pks.im","subject":"[PATCH v2 1/2] repack: refactor to avoid double-negation of update-server-info","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2022-03-14T07:42:46Z","receivedAt":"2022-03-14T07:42:56Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"By default, git-repack(1) runs `update_server_info()` to generate info\nrequired for the dumb HTTP protocol. This can be disabled via the `-n`\nflag, which then sets the `no_update_server_info` flag. Further down the\ncode this leads to some double-negation logic, which is about to become\nmore confusing as we're about to add a new config which allows the user\nto permanently disable generation of the info.\n\nRefactor the code to avoid the double-negation and add some tests which\nverify that the flag continues to work as expected.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n builtin/repack.c  |  8 ++++----\n t/t7700-repack.sh | 32 ++++++++++++++++++++++++++++++++\n 2 files changed, 36 insertions(+), 4 deletions(-)\n\ndiff --git a/builtin/repack.c b/builtin/repack.c\nindex da1e364a75..f2ac8ad14b 100644\n--- a/builtin/repack.c\n+++ b/builtin/repack.c\n@@ -620,7 +620,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)\n \tconst char *unpack_unreachable = NULL;\n \tint keep_unreachable = 0;\n \tstruct string_list keep_pack_list = STRING_LIST_INIT_NODUP;\n-\tint no_update_server_info = 0;\n+\tint run_update_server_info = 1;\n \tstruct pack_objects_args po_args = {NULL};\n \tint geometric_factor = 0;\n \tint write_midx = 0;\n@@ -637,8 +637,8 @@ int cmd_repack(int argc, const char **argv, const char *prefix)\n \t\t\t\tN_(\"pass --no-reuse-delta to git-pack-objects\")),\n \t\tOPT_BOOL('F', NULL, &po_args.no_reuse_object,\n \t\t\t\tN_(\"pass --no-reuse-object to git-pack-objects\")),\n-\t\tOPT_BOOL('n', NULL, &no_update_server_info,\n-\t\t\t\tN_(\"do not run git-update-server-info\")),\n+\t\tOPT_NEGBIT('n', NULL, &run_update_server_info,\n+\t\t\t\tN_(\"do not run git-update-server-info\"), 1),\n \t\tOPT__QUIET(&po_args.quiet, N_(\"be quiet\")),\n \t\tOPT_BOOL('l', \"local\", &po_args.local,\n \t\t\t\tN_(\"pass --local to git-pack-objects\")),\n@@ -939,7 +939,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)\n \t\t\tprune_shallow(PRUNE_QUICK);\n \t}\n \n-\tif (!no_update_server_info)\n+\tif (run_update_server_info)\n \t\tupdate_server_info(0);\n \tremove_temporary_files();\n \ndiff --git a/t/t7700-repack.sh b/t/t7700-repack.sh\nindex 5922fb5bdd..6b387bbdbe 100755\n--- a/t/t7700-repack.sh\n+++ b/t/t7700-repack.sh\n@@ -381,4 +381,36 @@ test_expect_success TTY '--quiet disables progress' '\n \ttest_must_be_empty stderr\n '\n \n+test_expect_success 'setup for update-server-info' '\n+\tgit init update-server-info &&\n+\ttest_commit -C update-server-info message\n+'\n+\n+test_server_info_present () {\n+\ttest_path_is_file update-server-info/.git/objects/info/packs &&\n+\ttest_path_is_file update-server-info/.git/info/refs\n+}\n+\n+test_server_info_missing () {\n+\ttest_path_is_missing update-server-info/.git/objects/info/packs &&\n+\ttest_path_is_missing update-server-info/.git/info/refs\n+}\n+\n+test_server_info_cleanup () {\n+\trm -f update-server-info/.git/objects/info/packs update-server-info/.git/info/refs &&\n+\ttest_server_info_missing\n+}\n+\n+test_expect_success 'updates server info by default' '\n+\ttest_server_info_cleanup &&\n+\tgit -C update-server-info repack &&\n+\ttest_server_info_present\n+'\n+\n+test_expect_success '-n skips updating server info' '\n+\ttest_server_info_cleanup &&\n+\tgit -C update-server-info repack -n &&\n+\ttest_server_info_missing\n+'\n+\n test_done\n-- \n2.35.1\n\n"},{"id":"451292","messageId":"f8639116d2d384a6d285c75830c52d8a8230ae6b.1647243509.git.ps@pks.im","threadId":"57537","inReplyTo":"cover.1647243508.git.ps@pks.im","subject":"[PATCH v2 2/2] repack: add config to skip updating server info","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2022-03-14T07:42:51Z","receivedAt":"2022-03-14T07:43:04Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"By default, git-repack(1) will update server info that is required by\nthe dumb HTTP transport. This can be skipped by passing the `-n` flag,\nbut what we're noticably missing is a config option to permanently\ndisable updating this information.\n\nAdd a new option \"repack.updateServerInfo\" which can be used to disable\nthe logic. Most hosting providers have turned off the dumb HTTP protocol\nanyway, and on the client-side it woudln't typically be useful either.\nGiving a persistent way to disable this feature thus makes quite some\nsense to avoid wasting compute cycles and storage.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n Documentation/config/repack.txt |  5 +++++\n builtin/repack.c                |  6 +++++-\n t/t7700-repack.sh               | 18 ++++++++++++++++++\n 3 files changed, 28 insertions(+), 1 deletion(-)\n\ndiff --git a/Documentation/config/repack.txt b/Documentation/config/repack.txt\nindex 9c413e177e..41ac6953c8 100644\n--- a/Documentation/config/repack.txt\n+++ b/Documentation/config/repack.txt\n@@ -25,3 +25,8 @@ repack.writeBitmaps::\n \tspace and extra time spent on the initial repack.  This has\n \tno effect if multiple packfiles are created.\n \tDefaults to true on bare repos, false otherwise.\n+\n+repack.updateServerInfo::\n+\tIf set to false, linkgit:git-repack[1] will not run\n+\tlinkgit:git-update-server-info[1]. Defaults to true. Can be overridden\n+\twhen true by the `-n` option of linkgit:git-repack[1].\ndiff --git a/builtin/repack.c b/builtin/repack.c\nindex f2ac8ad14b..d1a563d5b6 100644\n--- a/builtin/repack.c\n+++ b/builtin/repack.c\n@@ -22,6 +22,7 @@ static int delta_base_offset = 1;\n static int pack_kept_objects = -1;\n static int write_bitmaps = -1;\n static int use_delta_islands;\n+static int run_update_server_info = 1;\n static char *packdir, *packtmp_name, *packtmp;\n \n static const char *const git_repack_usage[] = {\n@@ -54,6 +55,10 @@ static int repack_config(const char *var, const char *value, void *cb)\n \t\tuse_delta_islands = git_config_bool(var, value);\n \t\treturn 0;\n \t}\n+\tif (strcmp(var, \"repack.updateserverinfo\") == 0) {\n+\t\trun_update_server_info = git_config_bool(var, value);\n+\t\treturn 0;\n+\t}\n \treturn git_default_config(var, value, cb);\n }\n \n@@ -620,7 +625,6 @@ int cmd_repack(int argc, const char **argv, const char *prefix)\n \tconst char *unpack_unreachable = NULL;\n \tint keep_unreachable = 0;\n \tstruct string_list keep_pack_list = STRING_LIST_INIT_NODUP;\n-\tint run_update_server_info = 1;\n \tstruct pack_objects_args po_args = {NULL};\n \tint geometric_factor = 0;\n \tint write_midx = 0;\ndiff --git a/t/t7700-repack.sh b/t/t7700-repack.sh\nindex 6b387bbdbe..770d143204 100755\n--- a/t/t7700-repack.sh\n+++ b/t/t7700-repack.sh\n@@ -413,4 +413,22 @@ test_expect_success '-n skips updating server info' '\n \ttest_server_info_missing\n '\n \n+test_expect_success 'repack.updateServerInfo=true updates server info' '\n+\ttest_server_info_cleanup &&\n+\tgit -C update-server-info -c repack.updateServerInfo=true repack &&\n+\ttest_server_info_present\n+'\n+\n+test_expect_success 'repack.updateServerInfo=false skips updating server info' '\n+\ttest_server_info_cleanup &&\n+\tgit -C update-server-info -c repack.updateServerInfo=false repack &&\n+\ttest_server_info_missing\n+'\n+\n+test_expect_success '-n overrides repack.updateServerInfo=true' '\n+\ttest_server_info_cleanup &&\n+\tgit -C update-server-info -c repack.updateServerInfo=true repack -n &&\n+\ttest_server_info_missing\n+'\n+\n test_done\n-- \n2.35.1\n\n"},{"id":"451355","messageId":"xmqq5yognpaw.fsf@gitster.g","threadId":"57537","inReplyTo":"f8639116d2d384a6d285c75830c52d8a8230ae6b.1647243509.git.ps@pks.im","subject":"Re: [PATCH v2 2/2] repack: add config to skip updating server info","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2022-03-14T22:26:47Z","receivedAt":"2022-03-14T22:26:55Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> By default, git-repack(1) will update server info that is required by\n> the dumb HTTP transport. This can be skipped by passing the `-n` flag,\n> but what we're noticably missing is a config option to permanently\n> disable updating this information.\n>\n> Add a new option \"repack.updateServerInfo\" which can be used to disable\n> the logic. Most hosting providers have turned off the dumb HTTP protocol\n> anyway, and on the client-side it woudln't typically be useful either.\n> Giving a persistent way to disable this feature thus makes quite some\n> sense to avoid wasting compute cycles and storage.\n\nMakes sense.  Perhaps we can leave a NEEDSWORK comment somewhere to\nflip the default to false in two years or so.\n\nWill queue.\n\nThanks.\n"}]}