Skip to content

Commit 14823d4

Browse files
committed
Merge branch 'core-longpaths-everywhere'
Git for Windows supports the core.longPaths config setting to allow writing/reading long paths via the \\?\ trick for a long time now. However, for that support to work, it is absolutely necessary that git_default_config() is given a chance to parse the config. Otherwise Git will be non the wiser. So let's make sure that as many commands that previously failed to parse the core.* settings now do that, implicitly enabling long path support in a lot more places. Note: this is not a perfect solution, and it cannot be, as there is a chicken-and-egg problem in reading the config itself... This fixes #1218 Signed-off-by: Johannes Schindelin <[email protected]>
2 parents a3d9cd5 + 23b2a8d commit 14823d4

33 files changed

+62
-4
lines changed

builtin/archive.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "pkt-line.h"
1111
#include "protocol.h"
1212
#include "sideband.h"
13+
#include "config.h"
1314

1415
static void create_output_file(const char *output_file)
1516
{
@@ -96,6 +97,7 @@ int cmd_archive(int argc, const char **argv, const char *prefix)
9697
OPT_END()
9798
};
9899

100+
git_config(git_default_config, NULL);
99101
register_allowed_protocol_version(protocol_v0);
100102

101103
argc = parse_options(argc, argv, prefix, local_opts, NULL,

builtin/bisect--helper.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "run-command.h"
99
#include "prompt.h"
1010
#include "quote.h"
11+
#include "config.h"
1112

1213
static GIT_PATH_FUNC(git_path_bisect_terms, "BISECT_TERMS")
1314
static GIT_PATH_FUNC(git_path_bisect_expected_rev, "BISECT_EXPECTED_REV")
@@ -651,6 +652,7 @@ int cmd_bisect__helper(int argc, const char **argv, const char *prefix)
651652
};
652653
struct bisect_terms terms = { .term_good = NULL, .term_bad = NULL };
653654

655+
git_config(git_default_config, NULL);
654656
argc = parse_options(argc, argv, prefix, options,
655657
git_bisect_helper_usage,
656658
PARSE_OPT_KEEP_DASHDASH | PARSE_OPT_KEEP_UNKNOWN);

builtin/bundle.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "builtin.h"
22
#include "cache.h"
33
#include "bundle.h"
4+
#include "config.h"
45

56
/*
67
* Basic handler for bundle files to connect repositories via sneakernet.
@@ -21,6 +22,7 @@ int cmd_bundle(int argc, const char **argv, const char *prefix)
2122
const char *cmd, *bundle_file;
2223
int bundle_fd = -1;
2324

25+
git_config(git_default_config, NULL);
2426
if (argc < 3)
2527
usage(builtin_bundle_usage);
2628

builtin/check-ref-format.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "refs.h"
77
#include "builtin.h"
88
#include "strbuf.h"
9+
#include "config.h"
910

1011
static const char builtin_check_ref_format_usage[] =
1112
"git check-ref-format [--normalize] [<options>] <refname>\n"
@@ -58,6 +59,7 @@ int cmd_check_ref_format(int argc, const char **argv, const char *prefix)
5859
int flags = 0;
5960
const char *refname;
6061

62+
git_config(git_default_config, NULL);
6163
if (argc == 2 && !strcmp(argv[1], "-h"))
6264
usage(builtin_check_ref_format_usage);
6365

builtin/clone.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -913,6 +913,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
913913

914914
struct argv_array ref_prefixes = ARGV_ARRAY_INIT;
915915

916+
git_config(platform_core_config, NULL);
917+
916918
register_allowed_protocol_version(protocol_v2);
917919
register_allowed_protocol_version(protocol_v1);
918920
register_allowed_protocol_version(protocol_v0);

builtin/column.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ int cmd_column(int argc, const char **argv, const char *prefix)
3434
OPT_END()
3535
};
3636

37+
git_config(platform_core_config, NULL);
38+
3739
/* This one is special and must be the first one */
3840
if (argc > 1 && starts_with(argv[1], "--command=")) {
3941
command = argv[1] + 10;

builtin/credential.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "git-compat-util.h"
22
#include "credential.h"
33
#include "builtin.h"
4+
#include "config.h"
45

56
static const char usage_msg[] =
67
"git credential [fill|approve|reject]";
@@ -10,6 +11,8 @@ int cmd_credential(int argc, const char **argv, const char *prefix)
1011
const char *op;
1112
struct credential c = CREDENTIAL_INIT;
1213

14+
git_config(git_default_config, NULL);
15+
1316
if (argc != 2 || !strcmp(argv[1], "-h"))
1417
usage(usage_msg);
1518
op = argv[1];

builtin/fetch-pack.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "connect.h"
66
#include "sha1-array.h"
77
#include "protocol.h"
8+
#include "config.h"
89

910
static const char fetch_pack_usage[] =
1011
"git fetch-pack [--all] [--stdin] [--quiet | -q] [--keep | -k] [--thin] "
@@ -57,6 +58,7 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix)
5758
struct packet_reader reader;
5859
enum protocol_version version;
5960

61+
git_config(git_default_config, NULL);
6062
fetch_if_missing = 0;
6163

6264
register_allowed_protocol_version(protocol_v2);

builtin/get-tar-commit-id.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "tar.h"
77
#include "builtin.h"
88
#include "quote.h"
9+
#include "config.h"
910

1011
static const char builtin_get_tar_commit_id_usage[] =
1112
"git get-tar-commit-id";
@@ -27,6 +28,7 @@ int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix)
2728
if (argc != 1)
2829
usage(builtin_get_tar_commit_id_usage);
2930

31+
git_config(git_default_config, NULL);
3032
n = read_in_full(0, buffer, HEADERSIZE);
3133
if (n < 0)
3234
die_errno("git get-tar-commit-id: read error");

builtin/interpret-trailers.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "parse-options.h"
1111
#include "string-list.h"
1212
#include "trailer.h"
13+
#include "config.h"
1314

1415
static const char * const git_interpret_trailers_usage[] = {
1516
N_("git interpret-trailers [--in-place] [--trim-empty] [(--trailer <token>[(=|:)<value>])...] [<file>...]"),
@@ -112,6 +113,7 @@ int cmd_interpret_trailers(int argc, const char **argv, const char *prefix)
112113
OPT_END()
113114
};
114115

116+
git_config(git_default_config, NULL);
115117
argc = parse_options(argc, argv, prefix, options,
116118
git_interpret_trailers_usage, 0);
117119

0 commit comments

Comments
 (0)