Skip to content

Commit 4fb92f8

Browse files
committed
Merge branch 'long-paths'
2 parents e0b02c3 + 10be3a1 commit 4fb92f8

39 files changed

+480
-57
lines changed

Documentation/config/core.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,13 @@ core.fscache::
570570
Git for Windows uses this to bulk-read and cache lstat data of entire
571571
directories (instead of doing lstat file by file).
572572

573+
core.longpaths::
574+
Enable long path (> 260) support for builtin commands in Git for
575+
Windows. This is disabled by default, as long paths are not supported
576+
by Windows Explorer, cmd.exe and the Git for Windows tool chain
577+
(msys, bash, tcl, perl...). Only enable this if you know what you're
578+
doing and are prepared to live with a few quirks.
579+
573580
core.unsetenvvars::
574581
Windows-only: comma-separated list of environment variables'
575582
names that need to be unset before spawning any other process.

builtin/archive.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "parse-options.h"
1010
#include "pkt-line.h"
1111
#include "sideband.h"
12+
#include "config.h"
1213

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

99+
git_config(git_default_config, NULL);
98100
argc = parse_options(argc, argv, prefix, local_opts, NULL,
99101
PARSE_OPT_KEEP_ALL);
100102

builtin/bisect--helper.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "prompt.h"
1010
#include "quote.h"
1111
#include "revision.h"
12+
#include "config.h"
1213

1314
static GIT_PATH_FUNC(git_path_bisect_terms, "BISECT_TERMS")
1415
static GIT_PATH_FUNC(git_path_bisect_expected_rev, "BISECT_EXPECTED_REV")
@@ -894,6 +895,7 @@ int cmd_bisect__helper(int argc, const char **argv, const char *prefix)
894895
};
895896
struct bisect_terms terms = { .term_good = NULL, .term_bad = NULL };
896897

898+
git_config(git_default_config, NULL);
897899
argc = parse_options(argc, argv, prefix, options,
898900
git_bisect_helper_usage,
899901
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
@@ -3,6 +3,7 @@
33
#include "parse-options.h"
44
#include "cache.h"
55
#include "bundle.h"
6+
#include "config.h"
67

78
/*
89
* Basic handler for bundle files to connect repositories via sneakernet.
@@ -109,6 +110,7 @@ static int cmd_bundle_verify(int argc, const char **argv, const char *prefix) {
109110
};
110111
const char* bundle_file;
111112

113+
git_config(git_default_config, NULL);
112114
argc = parse_options_cmd_bundle(argc, argv, prefix,
113115
builtin_bundle_verify_usage, options, &bundle_file);
114116
/* bundle internals use argv[1] as further parameters */

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
@@ -962,6 +962,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
962962

963963
struct strvec ref_prefixes = STRVEC_INIT;
964964

965+
git_config(platform_core_config, NULL);
966+
965967
packet_trace_identity("clone");
966968
argc = parse_options(argc, argv, prefix, builtin_clone_options,
967969
builtin_clone_usage, 0);

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-store.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include "credential.h"
44
#include "string-list.h"
55
#include "parse-options.h"
6+
#include "config.h"
67

78
static struct lock_file credential_lock;
89

@@ -161,6 +162,8 @@ int cmd_credential_store(int argc, const char **argv, const char *prefix)
161162

162163
umask(077);
163164

165+
git_config(git_default_config, NULL);
166+
164167
argc = parse_options(argc, (const char **)argv, prefix, options, usage, 0);
165168
if (argc != 1)
166169
usage_with_options(usage, options);

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 "oid-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
packet_trace_identity("fetch-pack");

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/log.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2271,6 +2271,7 @@ int cmd_cherry(int argc, const char **argv, const char *prefix)
22712271
OPT_END()
22722272
};
22732273

2274+
git_config(git_default_config, NULL);
22742275
argc = parse_options(argc, argv, prefix, options, cherry_usage, 0);
22752276

22762277
switch (argc) {

builtin/ls-remote.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "ref-filter.h"
55
#include "remote.h"
66
#include "refs.h"
7+
#include "config.h"
78

89
static const char * const ls_remote_usage[] = {
910
N_("git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
@@ -85,6 +86,7 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
8586

8687
UNLEAK(sorting);
8788

89+
git_config(git_default_config, NULL);
8890
if (argc > 1) {
8991
int i;
9092
pattern = xcalloc(argc, sizeof(const char *));

builtin/mailinfo.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "utf8.h"
88
#include "strbuf.h"
99
#include "mailinfo.h"
10+
#include "config.h"
1011

1112
static const char mailinfo_usage[] =
1213
"git mailinfo [-k | -b] [-m | --message-id] [-u | --encoding=<encoding> | -n] [--scissors | --no-scissors] <msg> <patch> < mail >info";
@@ -18,6 +19,7 @@ int cmd_mailinfo(int argc, const char **argv, const char *prefix)
1819
int status;
1920
char *msgfile, *patchfile;
2021

22+
git_config(git_default_config, NULL);
2123
setup_mailinfo(&mi);
2224

2325
def_charset = get_commit_output_encoding();

builtin/mailsplit.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "builtin.h"
99
#include "string-list.h"
1010
#include "strbuf.h"
11+
#include "config.h"
1112

1213
static const char git_mailsplit_usage[] =
1314
"git mailsplit [-d<prec>] [-f<n>] [-b] [--keep-cr] -o<directory> [(<mbox>|<Maildir>)...]";
@@ -276,6 +277,7 @@ int cmd_mailsplit(int argc, const char **argv, const char *prefix)
276277
const char **argp;
277278
static const char *stdin_only[] = { "-", NULL };
278279

280+
git_config(git_default_config, NULL);
279281
for (argp = argv+1; *argp; argp++) {
280282
const char *arg = *argp;
281283

builtin/merge-index.c

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

56
static const char *pgm;
67
static int one_shot, quiet;
@@ -75,6 +76,8 @@ int cmd_merge_index(int argc, const char **argv, const char *prefix)
7576
*/
7677
signal(SIGCHLD, SIG_DFL);
7778

79+
git_config(git_default_config, NULL);
80+
7881
if (argc < 3)
7982
usage("git merge-index [-o] [-q] <merge-program> (-a | [--] [<filename>...])");
8083

builtin/merge-tree.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "blob.h"
88
#include "exec-cmd.h"
99
#include "merge-blobs.h"
10+
#include "config.h"
1011

1112
static const char merge_tree_usage[] = "git merge-tree <base-tree> <branch1> <branch2>";
1213

@@ -377,6 +378,7 @@ int cmd_merge_tree(int argc, const char **argv, const char *prefix)
377378
if (argc != 4)
378379
usage(merge_tree_usage);
379380

381+
git_config(git_default_config, NULL);
380382
buf1 = get_tree_descriptor(r, t+0, argv[1]);
381383
buf2 = get_tree_descriptor(r, t+1, argv[2]);
382384
buf3 = get_tree_descriptor(r, t+2, argv[3]);

builtin/mktag.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "tag.h"
33
#include "replace-object.h"
44
#include "object-store.h"
5+
#include "config.h"
56

67
/*
78
* A signature file has a very simple fixed format: four lines
@@ -161,6 +162,7 @@ int cmd_mktag(int argc, const char **argv, const char *prefix)
161162
if (argc != 1)
162163
usage("git mktag");
163164

165+
git_config(git_default_config, NULL);
164166
if (strbuf_read(&buf, 0, 4096) < 0) {
165167
die_errno("could not read from stdin");
166168
}

builtin/mktree.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "tree.h"
99
#include "parse-options.h"
1010
#include "object-store.h"
11+
#include "config.h"
1112

1213
static struct treeent {
1314
unsigned mode;
@@ -157,6 +158,7 @@ int cmd_mktree(int ac, const char **av, const char *prefix)
157158
OPT_END()
158159
};
159160

161+
git_config(git_default_config, NULL);
160162
ac = parse_options(ac, av, prefix, option, mktree_usage, 0);
161163
getline_fn = nul_term_line ? strbuf_getline_nul : strbuf_getline_lf;
162164

builtin/pack-refs.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include "parse-options.h"
44
#include "refs.h"
55
#include "repository.h"
6+
#include "config.h"
67

78
static char const * const pack_refs_usage[] = {
89
N_("git pack-refs [<options>]"),

builtin/prune-packed.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 "parse-options.h"
33
#include "prune-packed.h"
4+
#include "config.h"
45

56
static const char * const prune_packed_usage[] = {
67
N_("git prune-packed [-n | --dry-run] [-q | --quiet]"),
@@ -18,6 +19,7 @@ int cmd_prune_packed(int argc, const char **argv, const char *prefix)
1819
OPT_END()
1920
};
2021

22+
git_config(git_default_config, NULL);
2123
argc = parse_options(argc, argv, prefix, prune_packed_options,
2224
prune_packed_usage, 0);
2325

builtin/prune.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "prune-packed.h"
1010
#include "object-store.h"
1111
#include "shallow.h"
12+
#include "config.h"
1213

1314
static const char * const prune_usage[] = {
1415
N_("git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"),
@@ -140,6 +141,8 @@ int cmd_prune(int argc, const char **argv, const char *prefix)
140141
};
141142
char *s;
142143

144+
git_config(git_default_config, NULL);
145+
143146
expire = TIME_MAX;
144147
save_commit_buffer = 0;
145148
read_replace_refs = 0;

builtin/reflog.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -766,6 +766,7 @@ N_("git reflog [ show | expire | delete | exists ]");
766766

767767
int cmd_reflog(int argc, const char **argv, const char *prefix)
768768
{
769+
git_config(git_default_config, NULL);
769770
if (argc > 1 && !strcmp(argv[1], "-h"))
770771
usage(_(reflog_usage));
771772

builtin/remote-ext.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "transport.h"
33
#include "run-command.h"
44
#include "pkt-line.h"
5+
#include "config.h"
56

67
static const char usage_msg[] =
78
"git remote-ext <remote> <url>";
@@ -198,5 +199,6 @@ int cmd_remote_ext(int argc, const char **argv, const char *prefix)
198199
if (argc != 3)
199200
usage(usage_msg);
200201

202+
git_config(git_default_config, NULL);
201203
return command_loop(argv[2]);
202204
}

builtin/remote.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1689,6 +1689,7 @@ int cmd_remote(int argc, const char **argv, const char *prefix)
16891689
};
16901690
int result;
16911691

1692+
git_config(git_default_config, NULL);
16921693
argc = parse_options(argc, argv, prefix, options, builtin_remote_usage,
16931694
PARSE_OPT_STOP_AT_NON_OPTION);
16941695

builtin/rev-parse.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,7 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
426426
struct option *opts = NULL;
427427
int onb = 0, osz = 0, unb = 0, usz = 0;
428428

429+
git_config(git_default_config, NULL);
429430
strbuf_addstr(&parsed, "set --");
430431
argc = parse_options(argc, argv, prefix, parseopt_opts, parseopt_usage,
431432
PARSE_OPT_KEEP_DASHDASH);

builtin/show-index.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "cache.h"
33
#include "pack.h"
44
#include "parse-options.h"
5+
#include "config.h"
56

67
static const char *const show_index_usage[] = {
78
"git show-index [--object-format=<hash-algorithm>]",
@@ -23,6 +24,7 @@ int cmd_show_index(int argc, const char **argv, const char *prefix)
2324
OPT_END()
2425
};
2526

27+
git_config(git_default_config, NULL);
2628
argc = parse_options(argc, argv, prefix, show_index_options, show_index_usage, 0);
2729

2830
if (hash_name) {

builtin/show-ref.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "tag.h"
88
#include "string-list.h"
99
#include "parse-options.h"
10+
#include "config.h"
1011

1112
static const char * const show_ref_usage[] = {
1213
N_("git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<pattern>...]"),

builtin/stripspace.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,9 @@ int cmd_stripspace(int argc, const char **argv, const char *prefix)
4646
if (argc)
4747
usage_with_options(stripspace_usage, options);
4848

49-
if (mode == STRIP_COMMENTS || mode == COMMENT_LINES) {
49+
if (mode == STRIP_COMMENTS || mode == COMMENT_LINES)
5050
setup_git_directory_gently(&nongit);
51-
git_config(git_default_config, NULL);
52-
}
51+
git_config(git_default_config, NULL);
5352

5453
if (strbuf_read(&buf, 0, 1024) < 0)
5554
die_errno("could not read the input");

0 commit comments

Comments
 (0)