{"thread":{"id":"34949","subject":"[PATCH] Add core.mode configuration","startedAt":"2013-09-17T14:07:51Z","lastAt":"2013-09-17T14:07:51Z","messageCount":1,"participants":["Felipe Contreras"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"227751","messageId":"1379426871-6823-1-git-send-email-felipe.contreras@gmail.com","threadId":"34949","inReplyTo":null,"subject":"[PATCH] Add core.mode configuration","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-09-17T14:07:51Z","receivedAt":"2013-09-17T14:07:51Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"So that we can specify general modes of operation, specifically, add the\n'next' mode, which makes Git pre v2.0 behave as Git v2.0.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n builtin/add.c |  3 +++\n cache.h       |  6 ++++++\n config.c      | 13 +++++++++++++\n environment.c |  1 +\n 4 files changed, 23 insertions(+)\n\ndiff --git a/builtin/add.c b/builtin/add.c\nindex 8266a9c..85b4c54 100644\n--- a/builtin/add.c\n+++ b/builtin/add.c\n@@ -41,6 +41,9 @@ static void warn_pathless_add(void)\n \tstatic int shown;\n \tassert(option_with_implicit_dot && short_option_with_implicit_dot);\n \n+\tif (git_mode == MODE_NEXT)\n+\t\treturn;\n+\n \tif (shown)\n \t\treturn;\n \tshown = 1;\ndiff --git a/cache.h b/cache.h\nindex 85b544f..f28240f 100644\n--- a/cache.h\n+++ b/cache.h\n@@ -627,9 +627,15 @@ enum push_default_type {\n \tPUSH_DEFAULT_UNSPECIFIED\n };\n \n+enum git_mode {\n+\tMODE_CURRENT = 0,\n+\tMODE_NEXT\n+};\n+\n extern enum branch_track git_branch_track;\n extern enum rebase_setup_type autorebase;\n extern enum push_default_type push_default;\n+extern enum git_mode git_mode;\n \n enum object_creation_mode {\n \tOBJECT_CREATION_USES_HARDLINKS = 0,\ndiff --git a/config.c b/config.c\nindex e13a7b6..f0e0370 100644\n--- a/config.c\n+++ b/config.c\n@@ -831,6 +831,19 @@ static int git_default_core_config(const char *var, const char *value)\n \t\treturn 0;\n \t}\n \n+\tif (!strcmp(var, \"core.mode\")) {\n+\t\tif (!value)\n+\t\t\treturn config_error_nonbool(var);\n+\t\telse if (!strcmp(value, \"current\"))\n+\t\t\tgit_mode = MODE_CURRENT;\n+\t\telse if (!strcmp(value, \"next\")) {\n+\t\t\tgit_mode = MODE_NEXT;\n+\t\t\tpush_default = PUSH_DEFAULT_SIMPLE;\n+\t\t} else\n+\t\t\tdie(\"wrong mode '%s'\", value);\n+\t\treturn 0;\n+\t}\n+\n \t/* Add other config variables here and to Documentation/config.txt. */\n \treturn 0;\n }\ndiff --git a/environment.c b/environment.c\nindex 5398c36..751e14d 100644\n--- a/environment.c\n+++ b/environment.c\n@@ -62,6 +62,7 @@ int merge_log_config = -1;\n int precomposed_unicode = -1; /* see probe_utf8_pathname_composition() */\n struct startup_info *startup_info;\n unsigned long pack_size_limit_cfg;\n+enum git_mode git_mode = MODE_CURRENT;\n \n /*\n  * The character that begins a commented line in user-editable file\n-- \n1.8.4-fc\n"}]}