{"thread":{"id":"18639","subject":"[PATCHv2 0/4] push.default and branch.<name>.{remote,merge} changes","startedAt":"2009-03-30T10:11:39Z","lastAt":"2009-04-02T06:08:27Z","messageCount":17,"participants":["Santi Béjar","Michael J Gruber","Jeff King","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"109877","messageId":"1238407903-28020-1-git-send-email-santi@agolina.net","threadId":"18639","inReplyTo":null,"subject":"[PATCHv2 0/4] push.default and branch.<name>.{remote,merge} changes","fromName":"Santi Béjar","fromEmail":"santi@agolina.net","sentAt":"2009-03-30T10:11:39Z","receivedAt":"2009-03-30T10:11:39Z","isPatch":false,"sender":{"key":"santi@agolina.net","avatar":null},"body":"Hi *,\n\n  the four patches are conceptually independent, but they have textual\ndependency.\n\n  The 1st one can also be applied to 'maint'.\n\nChanges from v1:\n  rename \"tracking branch\" to \"upstream branch\"\n  rename push.default to push.mode instead of push.style\n\nSanti BÃ©jar (4):\n  Documentation: enhance branch.<name>.{remote,merge}\n  Documentation: push.default applies to all remotes\n  Documentation: branch.*.merge can also afect 'git-push'\n  Rename push.default to push.mode\n\n Documentation/RelNotes-1.6.3.txt |    2 +-\n Documentation/config.txt         |   21 ++++++++++-----------\n builtin-push.c                   |   16 ++++++++--------\n cache.h                          |   14 +++++++-------\n config.c                         |   10 +++++-----\n environment.c                    |    2 +-\n 6 files changed, 32 insertions(+), 33 deletions(-)\n"},{"id":"109878","messageId":"1238407903-28020-2-git-send-email-santi@agolina.net","threadId":"18639","inReplyTo":"1238407903-28020-1-git-send-email-santi@agolina.net","subject":"[PATCHv2 1/4] Documentation: enhance branch.<name>.{remote,merge}","fromName":"Santi Béjar","fromEmail":"santi@agolina.net","sentAt":"2009-03-30T10:11:40Z","receivedAt":"2009-03-30T10:11:40Z","isPatch":false,"sender":{"key":"santi@agolina.net","avatar":null},"body":"The documentation for branch.*.merge is very dense, so add a simple\nexplanation on top of it.\n\nAnd branch.*.remote also afects 'git push'. Text taken from\n'push.default'.\n\nSigned-off-by: Santi Béjar <santi@agolina.net>\n---\n Documentation/config.txt |    8 ++++++--\n 1 files changed, 6 insertions(+), 2 deletions(-)\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 089569a..fa2595b 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -473,10 +473,14 @@ branch.autosetuprebase::\n \tThis option defaults to never.\n \n branch.<name>.remote::\n-\tWhen in branch <name>, it tells 'git-fetch' which remote to fetch.\n-\tIf this option is not given, 'git-fetch' defaults to remote \"origin\".\n+\tWhen in branch <name>, it tells 'git-fetch' and 'git-push' which\n+\tremote to fetch/push, and defaults to `origin` if no remote is\n+\tconfigured. `origin` is also used if you are not on any branch.\n \n branch.<name>.merge::\n+\tIt defines, together with branch.<name>.remote, the upstream branch\n+\tfor the given branch. It tells 'git-fetch'/'git-pull' which\n+\tbranch to merge.\n \tWhen in branch <name>, it tells 'git-fetch' the default\n \trefspec to be marked for merging in FETCH_HEAD. The value is\n \thandled like the remote part of a refspec, and must match a\n-- \n1.6.1.258.g7ff14\n"},{"id":"109881","messageId":"1238407903-28020-3-git-send-email-santi@agolina.net","threadId":"18639","inReplyTo":"1238407903-28020-1-git-send-email-santi@agolina.net","subject":"[PATCHv2 2/4] Documentation: push.default applies to all remotes","fromName":"Santi Béjar","fromEmail":"santi@agolina.net","sentAt":"2009-03-30T10:11:41Z","receivedAt":"2009-03-30T10:11:41Z","isPatch":false,"sender":{"key":"santi@agolina.net","avatar":null},"body":"push.default is not only for the current remote but setting the default\nbehaviour for all remotes.\n\nSigned-off-by: Santi Béjar <santi@agolina.net>\n---\n Documentation/config.txt |   11 +++--------\n 1 files changed, 3 insertions(+), 8 deletions(-)\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex fa2595b..7ae584f 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -1219,19 +1219,14 @@ push.default::\n \tDefines the action git push should take if no refspec is given\n \ton the command line, no refspec is configured in the remote, and\n \tno refspec is implied by any of the options given on the command\n-\tline.\n-+\n-The term `current remote` means the remote configured for the current\n-branch, or `origin` if no remote is configured. `origin` is also used\n-if you are not on any branch. Possible values are:\n+\tline. Possible values are:\n +\n * `nothing` do not push anything.\n-* `matching` push all matching branches to the current remote.\n+* `matching` push all matching branches.\n   All branches having the same name in both ends are considered to be\n   matching. This is the current default value.\n * `tracking` push the current branch to the branch it is tracking.\n-* `current` push the current branch to a branch of the same name on the\n-  current remote.\n+* `current` push the current branch to a branch of the same name.\n \n rebase.stat::\n \tWhether to show a diffstat of what changed upstream since the last\n-- \n1.6.1.258.g7ff14\n"},{"id":"109879","messageId":"1238407903-28020-4-git-send-email-santi@agolina.net","threadId":"18639","inReplyTo":"1238407903-28020-1-git-send-email-santi@agolina.net","subject":"[PATCHv2 3/4] Documentation: branch.*.merge can also afect 'git-push'","fromName":"Santi Béjar","fromEmail":"santi@agolina.net","sentAt":"2009-03-30T10:11:42Z","receivedAt":"2009-03-30T10:11:42Z","isPatch":false,"sender":{"key":"santi@agolina.net","avatar":null},"body":"\nSigned-off-by: Santi Béjar <santi@agolina.net>\n---\n Documentation/config.txt |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 7ae584f..38ab785 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -480,7 +480,7 @@ branch.<name>.remote::\n branch.<name>.merge::\n \tIt defines, together with branch.<name>.remote, the upstream branch\n \tfor the given branch. It tells 'git-fetch'/'git-pull' which\n-\tbranch to merge.\n+\tbranch to merge and can also afect 'git-push' (see push.default).\n \tWhen in branch <name>, it tells 'git-fetch' the default\n \trefspec to be marked for merging in FETCH_HEAD. The value is\n \thandled like the remote part of a refspec, and must match a\n-- \n1.6.1.258.g7ff14\n"},{"id":"109880","messageId":"1238407903-28020-5-git-send-email-santi@agolina.net","threadId":"18639","inReplyTo":"1238407903-28020-1-git-send-email-santi@agolina.net","subject":"[PATCHv2 4/4] Rename push.default to push.mode","fromName":"Santi Béjar","fromEmail":"santi@agolina.net","sentAt":"2009-03-30T10:11:43Z","receivedAt":"2009-03-30T10:11:43Z","isPatch":false,"sender":{"key":"santi@agolina.net","avatar":null},"body":"push.default was too generic, and also didn't specify if it was about\nremote, refspec, branches, behaviour...\n\nSigned-off-by: Santi Béjar <santi@agolina.net>\n---\n Documentation/RelNotes-1.6.3.txt |    2 +-\n Documentation/config.txt         |    4 ++--\n builtin-push.c                   |   16 ++++++++--------\n cache.h                          |   14 +++++++-------\n config.c                         |   10 +++++-----\n environment.c                    |    2 +-\n 6 files changed, 24 insertions(+), 24 deletions(-)\n\ndiff --git a/Documentation/RelNotes-1.6.3.txt b/Documentation/RelNotes-1.6.3.txt\nindex f0a2e41..67b2b66 100644\n--- a/Documentation/RelNotes-1.6.3.txt\n+++ b/Documentation/RelNotes-1.6.3.txt\n@@ -24,7 +24,7 @@ receive.denyDeleteCurrent in the receiving repository.\n \n When the user does not tell \"git push\" what to push, it has always\n pushed matching refs.  For some people it is unexpected, and a new\n-configuration variable push.default has been introduced to allow\n+configuration variable push.mode has been introduced to allow\n changing a different default behaviour.  To advertise the new feature,\n a big warning is issued if this is not configured and a git push without\n arguments is attempted.\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 38ab785..80bb3a6 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -480,7 +480,7 @@ branch.<name>.remote::\n branch.<name>.merge::\n \tIt defines, together with branch.<name>.remote, the upstream branch\n \tfor the given branch. It tells 'git-fetch'/'git-pull' which\n-\tbranch to merge and can also afect 'git-push' (see push.default).\n+\tbranch to merge and can also afect 'git-push' (see push.mode).\n \tWhen in branch <name>, it tells 'git-fetch' the default\n \trefspec to be marked for merging in FETCH_HEAD. The value is\n \thandled like the remote part of a refspec, and must match a\n@@ -1215,7 +1215,7 @@ pull.octopus::\n pull.twohead::\n \tThe default merge strategy to use when pulling a single branch.\n \n-push.default::\n+push.mode::\n \tDefines the action git push should take if no refspec is given\n \ton the command line, no refspec is configured in the remote, and\n \tno refspec is implied by any of the options given on the command\ndiff --git a/builtin-push.c b/builtin-push.c\nindex 2eabcd3..c2c4de1 100644\n--- a/builtin-push.c\n+++ b/builtin-push.c\n@@ -72,7 +72,7 @@ static const char *warn_unconfigured_push_msg[] = {\n \t\"not necessarily be what you want to happen.\",\n \t\"\",\n \t\"You can specify what action you want to take in this case, and\",\n-\t\"avoid seeing this message again, by configuring 'push.default' to:\",\n+\t\"avoid seeing this message again, by configuring 'push.mode' to:\",\n \t\"  'nothing'  : Do not push anything\",\n \t\"  'matching' : Push all matching branches (default)\",\n \t\"  'tracking' : Push the current branch to whatever it is tracking\",\n@@ -89,26 +89,26 @@ static void warn_unconfigured_push(void)\n static void setup_default_push_refspecs(void)\n {\n \tgit_config(git_default_config, NULL);\n-\tswitch (push_default) {\n-\tcase PUSH_DEFAULT_UNSPECIFIED:\n+\tswitch (push_mode) {\n+\tcase PUSH_MODE_UNSPECIFIED:\n \t\twarn_unconfigured_push();\n \t\t/* fallthrough */\n \n-\tcase PUSH_DEFAULT_MATCHING:\n+\tcase PUSH_MODE_MATCHING:\n \t\tadd_refspec(\":\");\n \t\tbreak;\n \n-\tcase PUSH_DEFAULT_TRACKING:\n+\tcase PUSH_MODE_TRACKING:\n \t\tsetup_push_tracking();\n \t\tbreak;\n \n-\tcase PUSH_DEFAULT_CURRENT:\n+\tcase PUSH_MODE_CURRENT:\n \t\tadd_refspec(\"HEAD\");\n \t\tbreak;\n \n-\tcase PUSH_DEFAULT_NOTHING:\n+\tcase PUSH_MODE_NOTHING:\n \t\tdie(\"You didn't specify any refspecs to push, and \"\n-\t\t    \"push.default is \\\"nothing\\\".\");\n+\t\t    \"push.mode is \\\"nothing\\\".\");\n \t\tbreak;\n \t}\n }\ndiff --git a/cache.h b/cache.h\nindex 641529b..1625965 100644\n--- a/cache.h\n+++ b/cache.h\n@@ -542,17 +542,17 @@ enum rebase_setup_type {\n \tAUTOREBASE_ALWAYS,\n };\n \n-enum push_default_type {\n-\tPUSH_DEFAULT_UNSPECIFIED = -1,\n-\tPUSH_DEFAULT_NOTHING = 0,\n-\tPUSH_DEFAULT_MATCHING,\n-\tPUSH_DEFAULT_TRACKING,\n-\tPUSH_DEFAULT_CURRENT,\n+enum push_mode_type {\n+\tPUSH_MODE_UNSPECIFIED = -1,\n+\tPUSH_MODE_NOTHING = 0,\n+\tPUSH_MODE_MATCHING,\n+\tPUSH_MODE_TRACKING,\n+\tPUSH_MODE_CURRENT,\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 push_mode_type push_mode;\n \n #define GIT_REPO_VERSION 0\n extern int repository_format_version;\ndiff --git a/config.c b/config.c\nindex b76fe4c..ba02cfb 100644\n--- a/config.c\n+++ b/config.c\n@@ -567,17 +567,17 @@ static int git_default_branch_config(const char *var, const char *value)\n \n static int git_default_push_config(const char *var, const char *value)\n {\n-\tif (!strcmp(var, \"push.default\")) {\n+\tif (!strcmp(var, \"push.mode\")) {\n \t\tif (!value)\n \t\t\treturn config_error_nonbool(var);\n \t\telse if (!strcmp(value, \"nothing\"))\n-\t\t\tpush_default = PUSH_DEFAULT_NOTHING;\n+\t\t\tpush_mode = PUSH_MODE_NOTHING;\n \t\telse if (!strcmp(value, \"matching\"))\n-\t\t\tpush_default = PUSH_DEFAULT_MATCHING;\n+\t\t\tpush_mode = PUSH_MODE_MATCHING;\n \t\telse if (!strcmp(value, \"tracking\"))\n-\t\t\tpush_default = PUSH_DEFAULT_TRACKING;\n+\t\t\tpush_mode = PUSH_MODE_TRACKING;\n \t\telse if (!strcmp(value, \"current\"))\n-\t\t\tpush_default = PUSH_DEFAULT_CURRENT;\n+\t\t\tpush_mode = PUSH_MODE_CURRENT;\n \t\telse {\n \t\t\terror(\"Malformed value for %s: %s\", var, value);\n \t\t\treturn error(\"Must be one of nothing, matching, \"\ndiff --git a/environment.c b/environment.c\nindex 4696885..c925ea4 100644\n--- a/environment.c\n+++ b/environment.c\n@@ -42,7 +42,7 @@ enum safe_crlf safe_crlf = SAFE_CRLF_WARN;\n unsigned whitespace_rule_cfg = WS_DEFAULT_RULE;\n enum branch_track git_branch_track = BRANCH_TRACK_REMOTE;\n enum rebase_setup_type autorebase = AUTOREBASE_NEVER;\n-enum push_default_type push_default = PUSH_DEFAULT_UNSPECIFIED;\n+enum push_mode_type push_mode = PUSH_MODE_UNSPECIFIED;\n \n /* Parallel index stat data preload? */\n int core_preload_index = 0;\n-- \n1.6.1.258.g7ff14\n"},{"id":"109888","messageId":"49D0A05E.7060708@drmicha.warpmail.net","threadId":"18639","inReplyTo":"1238407903-28020-4-git-send-email-santi@agolina.net","subject":"Re: [PATCHv2 3/4] Documentation: branch.*.merge can also afect 'git-push'","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-03-30T10:35:10Z","receivedAt":"2009-03-30T10:35:10Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Santi Béjar venit, vidit, dixit 30.03.2009 12:11:\n> \n> Signed-off-by: Santi Béjar <santi@agolina.net>\n> ---\n>  Documentation/config.txt |    2 +-\n>  1 files changed, 1 insertions(+), 1 deletions(-)\n> \n> diff --git a/Documentation/config.txt b/Documentation/config.txt\n> index 7ae584f..38ab785 100644\n> --- a/Documentation/config.txt\n> +++ b/Documentation/config.txt\n> @@ -480,7 +480,7 @@ branch.<name>.remote::\n>  branch.<name>.merge::\n>  \tIt defines, together with branch.<name>.remote, the upstream branch\n>  \tfor the given branch. It tells 'git-fetch'/'git-pull' which\n> -\tbranch to merge.\n> +\tbranch to merge and can also afect 'git-push' (see push.default).\n\ns/afect/affect/\n\n>  \tWhen in branch <name>, it tells 'git-fetch' the default\n>  \trefspec to be marked for merging in FETCH_HEAD. The value is\n>  \thandled like the remote part of a refspec, and must match a\n"},{"id":"109889","messageId":"49D0A1FE.60300@drmicha.warpmail.net","threadId":"18639","inReplyTo":"1238407903-28020-5-git-send-email-santi@agolina.net","subject":"Re: [PATCHv2 4/4] Rename push.default to push.mode","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-03-30T10:42:06Z","receivedAt":"2009-03-30T10:42:06Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Santi Béjar venit, vidit, dixit 30.03.2009 12:11:\n> push.default was too generic, and also didn't specify if it was about\n> remote, refspec, branches, behaviour...\n\nI guess we go for US spelling here, so it's \"behavior\" ;)\n\n> \n> Signed-off-by: Santi Béjar <santi@agolina.net>\n> ---\n>  Documentation/RelNotes-1.6.3.txt |    2 +-\n>  Documentation/config.txt         |    4 ++--\n>  builtin-push.c                   |   16 ++++++++--------\n>  cache.h                          |   14 +++++++-------\n>  config.c                         |   10 +++++-----\n>  environment.c                    |    2 +-\n>  6 files changed, 24 insertions(+), 24 deletions(-)\n> \n> diff --git a/Documentation/RelNotes-1.6.3.txt b/Documentation/RelNotes-1.6.3.txt\n> index f0a2e41..67b2b66 100644\n> --- a/Documentation/RelNotes-1.6.3.txt\n> +++ b/Documentation/RelNotes-1.6.3.txt\n> @@ -24,7 +24,7 @@ receive.denyDeleteCurrent in the receiving repository.\n>  \n>  When the user does not tell \"git push\" what to push, it has always\n>  pushed matching refs.  For some people it is unexpected, and a new\n> -configuration variable push.default has been introduced to allow\n> +configuration variable push.mode has been introduced to allow\n>  changing a different default behaviour.  To advertise the new feature,\n\nMaybe time to change it here, too.\n\n>  a big warning is issued if this is not configured and a git push without\n>  arguments is attempted.\n> diff --git a/Documentation/config.txt b/Documentation/config.txt\n> index 38ab785..80bb3a6 100644\n> --- a/Documentation/config.txt\n> +++ b/Documentation/config.txt\n> @@ -480,7 +480,7 @@ branch.<name>.remote::\n>  branch.<name>.merge::\n>  \tIt defines, together with branch.<name>.remote, the upstream branch\n>  \tfor the given branch. It tells 'git-fetch'/'git-pull' which\n> -\tbranch to merge and can also afect 'git-push' (see push.default).\n> +\tbranch to merge and can also afect 'git-push' (see push.mode).\n\ns/afect/affect/\n\n>  \tWhen in branch <name>, it tells 'git-fetch' the default\n>  \trefspec to be marked for merging in FETCH_HEAD. The value is\n>  \thandled like the remote part of a refspec, and must match a\n> @@ -1215,7 +1215,7 @@ pull.octopus::\n>  pull.twohead::\n>  \tThe default merge strategy to use when pulling a single branch.\n>  \n> -push.default::\n> +push.mode::\n>  \tDefines the action git push should take if no refspec is given\n>  \ton the command line, no refspec is configured in the remote, and\n>  \tno refspec is implied by any of the options given on the command\n> diff --git a/builtin-push.c b/builtin-push.c\n> index 2eabcd3..c2c4de1 100644\n> --- a/builtin-push.c\n> +++ b/builtin-push.c\n> @@ -72,7 +72,7 @@ static const char *warn_unconfigured_push_msg[] = {\n>  \t\"not necessarily be what you want to happen.\",\n>  \t\"\",\n>  \t\"You can specify what action you want to take in this case, and\",\n> -\t\"avoid seeing this message again, by configuring 'push.default' to:\",\n> +\t\"avoid seeing this message again, by configuring 'push.mode' to:\",\n>  \t\"  'nothing'  : Do not push anything\",\n>  \t\"  'matching' : Push all matching branches (default)\",\n>  \t\"  'tracking' : Push the current branch to whatever it is tracking\",\n> @@ -89,26 +89,26 @@ static void warn_unconfigured_push(void)\n>  static void setup_default_push_refspecs(void)\n>  {\n>  \tgit_config(git_default_config, NULL);\n> -\tswitch (push_default) {\n> -\tcase PUSH_DEFAULT_UNSPECIFIED:\n> +\tswitch (push_mode) {\n> +\tcase PUSH_MODE_UNSPECIFIED:\n>  \t\twarn_unconfigured_push();\n>  \t\t/* fallthrough */\n>  \n> -\tcase PUSH_DEFAULT_MATCHING:\n> +\tcase PUSH_MODE_MATCHING:\n>  \t\tadd_refspec(\":\");\n>  \t\tbreak;\n>  \n> -\tcase PUSH_DEFAULT_TRACKING:\n> +\tcase PUSH_MODE_TRACKING:\n>  \t\tsetup_push_tracking();\n>  \t\tbreak;\n>  \n> -\tcase PUSH_DEFAULT_CURRENT:\n> +\tcase PUSH_MODE_CURRENT:\n>  \t\tadd_refspec(\"HEAD\");\n>  \t\tbreak;\n>  \n> -\tcase PUSH_DEFAULT_NOTHING:\n> +\tcase PUSH_MODE_NOTHING:\n>  \t\tdie(\"You didn't specify any refspecs to push, and \"\n> -\t\t    \"push.default is \\\"nothing\\\".\");\n> +\t\t    \"push.mode is \\\"nothing\\\".\");\n>  \t\tbreak;\n>  \t}\n>  }\n> diff --git a/cache.h b/cache.h\n> index 641529b..1625965 100644\n> --- a/cache.h\n> +++ b/cache.h\n> @@ -542,17 +542,17 @@ enum rebase_setup_type {\n>  \tAUTOREBASE_ALWAYS,\n>  };\n>  \n> -enum push_default_type {\n> -\tPUSH_DEFAULT_UNSPECIFIED = -1,\n> -\tPUSH_DEFAULT_NOTHING = 0,\n> -\tPUSH_DEFAULT_MATCHING,\n> -\tPUSH_DEFAULT_TRACKING,\n> -\tPUSH_DEFAULT_CURRENT,\n> +enum push_mode_type {\n> +\tPUSH_MODE_UNSPECIFIED = -1,\n> +\tPUSH_MODE_NOTHING = 0,\n> +\tPUSH_MODE_MATCHING,\n> +\tPUSH_MODE_TRACKING,\n> +\tPUSH_MODE_CURRENT,\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 push_mode_type push_mode;\n>  \n>  #define GIT_REPO_VERSION 0\n>  extern int repository_format_version;\n> diff --git a/config.c b/config.c\n> index b76fe4c..ba02cfb 100644\n> --- a/config.c\n> +++ b/config.c\n> @@ -567,17 +567,17 @@ static int git_default_branch_config(const char *var, const char *value)\n>  \n>  static int git_default_push_config(const char *var, const char *value)\n>  {\n> -\tif (!strcmp(var, \"push.default\")) {\n> +\tif (!strcmp(var, \"push.mode\")) {\n>  \t\tif (!value)\n>  \t\t\treturn config_error_nonbool(var);\n>  \t\telse if (!strcmp(value, \"nothing\"))\n> -\t\t\tpush_default = PUSH_DEFAULT_NOTHING;\n> +\t\t\tpush_mode = PUSH_MODE_NOTHING;\n>  \t\telse if (!strcmp(value, \"matching\"))\n> -\t\t\tpush_default = PUSH_DEFAULT_MATCHING;\n> +\t\t\tpush_mode = PUSH_MODE_MATCHING;\n>  \t\telse if (!strcmp(value, \"tracking\"))\n> -\t\t\tpush_default = PUSH_DEFAULT_TRACKING;\n> +\t\t\tpush_mode = PUSH_MODE_TRACKING;\n>  \t\telse if (!strcmp(value, \"current\"))\n> -\t\t\tpush_default = PUSH_DEFAULT_CURRENT;\n> +\t\t\tpush_mode = PUSH_MODE_CURRENT;\n>  \t\telse {\n>  \t\t\terror(\"Malformed value for %s: %s\", var, value);\n>  \t\t\treturn error(\"Must be one of nothing, matching, \"\n> diff --git a/environment.c b/environment.c\n> index 4696885..c925ea4 100644\n> --- a/environment.c\n> +++ b/environment.c\n> @@ -42,7 +42,7 @@ enum safe_crlf safe_crlf = SAFE_CRLF_WARN;\n>  unsigned whitespace_rule_cfg = WS_DEFAULT_RULE;\n>  enum branch_track git_branch_track = BRANCH_TRACK_REMOTE;\n>  enum rebase_setup_type autorebase = AUTOREBASE_NEVER;\n> -enum push_default_type push_default = PUSH_DEFAULT_UNSPECIFIED;\n> +enum push_mode_type push_mode = PUSH_MODE_UNSPECIFIED;\n>  \n>  /* Parallel index stat data preload? */\n>  int core_preload_index = 0;\n\nYour patches contain quoted-printable characters all over the place. Are\nthey not sent with git send-email?\n\nMichael\n"},{"id":"109894","messageId":"adf1fd3d0903300537i41d4aef3g49ab6bde9343cbc5@mail.gmail.com","threadId":"18639","inReplyTo":"49D0A1FE.60300@drmicha.warpmail.net","subject":"Re: [PATCHv2 4/4] Rename push.default to push.mode","fromName":"Santi Béjar","fromEmail":"santi@agolina.net","sentAt":"2009-03-30T12:37:52Z","receivedAt":"2009-03-30T12:37:52Z","isPatch":false,"sender":{"key":"santi@agolina.net","avatar":null},"body":"2009/3/30 Michael J Gruber <git@drmicha.warpmail.net>:\n> Santi Béjar venit, vidit, dixit 30.03.2009 12:11:\n>> push.default was too generic, and also didn't specify if it was about\n>> remote, refspec, branches, behaviour...\n>\n> I guess we go for US spelling here, so it's \"behavior\" ;)\n\nOk.\n\n>> diff --git a/Documentation/config.txt b/Documentation/config.txt\n>> index 38ab785..80bb3a6 100644\n>> --- a/Documentation/config.txt\n>> +++ b/Documentation/config.txt\n>> @@ -480,7 +480,7 @@ branch.<name>.remote::\n>>  branch.<name>.merge::\n>>       It defines, together with branch.<name>.remote, the upstream branch\n>>       for the given branch. It tells 'git-fetch'/'git-pull' which\n>> -     branch to merge and can also afect 'git-push' (see push.default).\n>> +     branch to merge and can also afect 'git-push' (see push.mode).\n>\n> s/afect/affect/\n>\n\nOK\n\n>\n> Your patches contain quoted-printable characters all over the place.\n\nI don't see the quoted-printable characters, I see them in utf-8 and 8bit.\n\nContent-Type: text/plain; charset=utf-8\nContent-Transfer-Encoding: 8bit\n\nMaybe some server in between is recoding it.\n\n> Are\n> they not sent with git send-email?\n\nThey are send with git send-email and msmtp.\n\nSanti\n"},{"id":"109898","messageId":"49D0C3B8.2050801@drmicha.warpmail.net","threadId":"18639","inReplyTo":"adf1fd3d0903300537i41d4aef3g49ab6bde9343cbc5@mail.gmail.com","subject":"Re: [PATCHv2 4/4] Rename push.default to push.mode","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-03-30T13:06:00Z","receivedAt":"2009-03-30T13:06:00Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Santi Béjar venit, vidit, dixit 30.03.2009 14:37:\n> 2009/3/30 Michael J Gruber <git@drmicha.warpmail.net>:\n>> Santi Béjar venit, vidit, dixit 30.03.2009 12:11:\n>>> push.default was too generic, and also didn't specify if it was about\n>>> remote, refspec, branches, behaviour...\n>>\n>> I guess we go for US spelling here, so it's \"behavior\" ;)\n> \n> Ok.\n> \n>>> diff --git a/Documentation/config.txt b/Documentation/config.txt\n>>> index 38ab785..80bb3a6 100644\n>>> --- a/Documentation/config.txt\n>>> +++ b/Documentation/config.txt\n>>> @@ -480,7 +480,7 @@ branch.<name>.remote::\n>>>  branch.<name>.merge::\n>>>       It defines, together with branch.<name>.remote, the upstream branch\n>>>       for the given branch. It tells 'git-fetch'/'git-pull' which\n>>> -     branch to merge and can also afect 'git-push' (see push.default).\n>>> +     branch to merge and can also afect 'git-push' (see push.mode).\n>>\n>> s/afect/affect/\n>>\n> \n> OK\n> \n>>\n>> Your patches contain quoted-printable characters all over the place.\n> \n> I don't see the quoted-printable characters, I see them in utf-8 and 8bit.\n> \n> Content-Type: text/plain; charset=utf-8\n> Content-Transfer-Encoding: 8bit\n> \n> Maybe some server in between is recoding it.\n> \n>> Are\n>> they not sent with git send-email?\n> \n> They are send with git send-email and msmtp.\n> \n> Santi\n\nThat's weird. I read through gmane/nntp, but others' posts are fine.\nYours have\n\nContent-Type: text/plain; charset=utf-8\nContent-Transfer-Encoding: QUOTED-PRINTABLE\n\nBut as long as Junio gets them unmangled I don't mind.\n\nOK, I checked the raw mail at marc. It's fine. So I guess it's a gmane\nthing (or tb)... Sorry I bothered you.\n\nMichael\n"},{"id":"109899","messageId":"20090330134544.GA31827@coredump.intra.peff.net","threadId":"18639","inReplyTo":"49D0C3B8.2050801@drmicha.warpmail.net","subject":"Re: [PATCHv2 4/4] Rename push.default to push.mode","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2009-03-30T13:45:45Z","receivedAt":"2009-03-30T13:45:45Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Mar 30, 2009 at 03:06:00PM +0200, Michael J Gruber wrote:\n\n> > I don't see the quoted-printable characters, I see them in utf-8 and 8bit.\n> > \n> > Content-Type: text/plain; charset=utf-8\n> > Content-Transfer-Encoding: 8bit\n> > \n> > Maybe some server in between is recoding it.\n> \n> That's weird. I read through gmane/nntp, but others' posts are fine.\n> Yours have\n> \n> Content-Type: text/plain; charset=utf-8\n> Content-Transfer-Encoding: QUOTED-PRINTABLE\n\nIf a subscriber's mailserver does not support the 8BITMIME SMTP\nextension, then vger will (correctly) encode an 8bit message as QP.\nGmane's mailservers do not seem to support 8BITMIME.\n\nYou see it only with Santi's message because most messages are already\n7bit clean; however, the accent in his name requires git to mark it as\n8-bit.\n\n-Peff\n"},{"id":"109911","messageId":"49D0DB78.2010204@drmicha.warpmail.net","threadId":"18639","inReplyTo":"20090330134544.GA31827@coredump.intra.peff.net","subject":"Re: [PATCHv2 4/4] Rename push.default to push.mode","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-03-30T14:47:20Z","receivedAt":"2009-03-30T14:47:20Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Jeff King venit, vidit, dixit 30.03.2009 15:45:\n> On Mon, Mar 30, 2009 at 03:06:00PM +0200, Michael J Gruber wrote:\n> \n>>> I don't see the quoted-printable characters, I see them in utf-8 and 8bit.\n>>>\n>>> Content-Type: text/plain; charset=utf-8\n>>> Content-Transfer-Encoding: 8bit\n>>>\n>>> Maybe some server in between is recoding it.\n>>\n>> That's weird. I read through gmane/nntp, but others' posts are fine.\n>> Yours have\n>>\n>> Content-Type: text/plain; charset=utf-8\n>> Content-Transfer-Encoding: QUOTED-PRINTABLE\n> \n> If a subscriber's mailserver does not support the 8BITMIME SMTP\n> extension, then vger will (correctly) encode an 8bit message as QP.\n> Gmane's mailservers do not seem to support 8BITMIME.\n> \n> You see it only with Santi's message because most messages are already\n> 7bit clean; however, the accent in his name requires git to mark it as\n> 8-bit.\n\nThanks for the explanation! I rechecked, and for sure it also happened\nwith patches from Tor Arne Vestbø and Nguyễn Thái Ngọc Duy.\nAgain I feel blessed by my umlautlessness... and challenged by gmane.\nAbout time to ditch it for reading patches also, or at least to be aware\nof it when saving patches.\n\nMichael\n"},{"id":"109925","messageId":"7vd4bzdkkq.fsf@gitster.siamese.dyndns.org","threadId":"18639","inReplyTo":"1238407903-28020-4-git-send-email-santi@agolina.net","subject":"Re: [PATCHv2 3/4] Documentation: branch.*.merge can also afect 'git-push'","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-03-30T16:47:17Z","receivedAt":"2009-03-30T16:47:17Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Santi Béjar <santi@agolina.net> writes:\n\n> Signed-off-by: Santi Béjar <santi@agolina.net>\n> ---\n>  Documentation/config.txt |    2 +-\n>  1 files changed, 1 insertions(+), 1 deletions(-)\n>\n> diff --git a/Documentation/config.txt b/Documentation/config.txt\n> index 7ae584f..38ab785 100644\n> --- a/Documentation/config.txt\n> +++ b/Documentation/config.txt\n> @@ -480,7 +480,7 @@ branch.<name>.remote::\n>  branch.<name>.merge::\n>  \tIt defines, together with branch.<name>.remote, the upstream branch\n>  \tfor the given branch. It tells 'git-fetch'/'git-pull' which\n> -\tbranch to merge.\n> +\tbranch to merge and can also afect 'git-push' (see push.default).\n>  \tWhen in branch <name>, it tells 'git-fetch' the default\n>  \trefspec to be marked for merging in FETCH_HEAD. The value is\n>  \thandled like the remote part of a refspec, and must match a\n\nI'll take [1/4] and [2/4] with minor rewording, and I think [4/4] is not\nnecessary (push.default is clear enough---and defaultMode won't make it\nany clearer to the first time readers anyway as it is unspecified what\nkind of \"mode\" it is talking about).\n\nI do not understand this [3/4].  I did look at push.default but it is\nunclear how this variable is involved.\n\nPerhaps it is because the word \"tracking\" in the description \"push the\ncurrent branch to the branch it is tracking\" is used without explaination.\nI think the author meant to say if your local branch frotz by default\nmerges changes made to the branch nitfol of the remote repository, \"frotz\ntracks nitfol\", but the use of the word \"track\" for that meaning appears\nnowhere in Documentation/glossary-content.txt\n\nWhen you have:\n\n        [branch \"frotz\"]\n                remote = xyzzy\n                merge = nitfol\n        [remote \"xyzzy\"]\n                url = ...\n                fetch = refs/heads/*:refs/remotes/xyzzy/*\n\nwe can learn from the glossary the following:\n\n * refs/remotes/xyzzy/nitfol is a (remote) tracking branch and is used to\n   follow changes made on \"nitfol\" branch in another repository \"xyzzy\".\n\n * refs/heads/*:refs/remotes/xyzzy/* is a refspec.  It shows refs under\n   refs/heads/ (aka \"local branches\") of the \"xyzzy\" repository are copied\n   to our refs/remotes/xyzzy/ hierarchy.\n\nThere is no word defined to describe what \"nitfol\" is to \"frotz\".  It is\nwhat \"frotz\" merges from.  So perhaps the description of push.default\nshould say that, instead of using the word \"track\" in a confusing way to\ndescribe unrelated concept.  Saying \"merge\" might confuse people who want\nto use \"branch.<name>.rebase\", so it might be a good idea to say:\n\n\tfrotz updates with nitfol\n\nTo \"track\" is pretty much about one-way communication.  You track the\nother guy, but you do not have to (and often you cannot) update the\nupstream with what you do.  branch.<name>.merge may have been \"tracking\"\nin that sense, but with the push.default set to tracking, suddenly the\ncommunication becomes bidirectional and it is not about tracking anymore.\n"},{"id":"109931","messageId":"20090330180253.GA7220@coredump.intra.peff.net","threadId":"18639","inReplyTo":"49D0DB78.2010204@drmicha.warpmail.net","subject":"Re: [PATCHv2 4/4] Rename push.default to push.mode","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2009-03-30T18:02:53Z","receivedAt":"2009-03-30T18:02:53Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Mar 30, 2009 at 04:47:20PM +0200, Michael J Gruber wrote:\n\n> Thanks for the explanation! I rechecked, and for sure it also happened\n> with patches from Tor Arne Vestbø and Nguyễn Thái Ngọc Duy.\n> Again I feel blessed by my umlautlessness... and challenged by gmane.\n> About time to ditch it for reading patches also, or at least to be aware\n> of it when saving patches.\n\nThe message gmane passes out has the content-transfer-encoding set\nproperly. Your newsreader should properly un-QP it, or if it has an\noption to save it directly (encoding and all), then \"git am\" will un-QP\nit. If you were to \"git apply\" it directly, that would break, though\n(and it is user error). If your newsreader saves the QP text without the\nmatching header, then that would also break (and your newsreader is\nbroken).\n\nJust curious how you are seeing the breakage (because I want to make\nsure there is no git bug).\n\n-Peff\n"},{"id":"109943","messageId":"adf1fd3d0903301506r65bd9b9bv6bf76c652a051400@mail.gmail.com","threadId":"18639","inReplyTo":"7vd4bzdkkq.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCHv2 3/4] Documentation: branch.*.merge can also afect 'git-push'","fromName":"Santi Béjar","fromEmail":"santi@agolina.net","sentAt":"2009-03-30T22:06:30Z","receivedAt":"2009-03-30T22:06:30Z","isPatch":false,"sender":{"key":"santi@agolina.net","avatar":null},"body":"2009/3/30 Junio C Hamano <gitster@pobox.com>:\n> I'll take [1/4] and [2/4] with minor rewording, and I think [4/4] is not\n> necessary (push.default is clear enough---and defaultMode won't make it\n> any clearer to the first time readers anyway as it is unspecified what\n> kind of \"mode\" it is talking about).\n\nAt least to me, mode in the context of 'push' suggest behavior. But\nmaybe only for second time readers...\n\n>\n> I do not understand this [3/4].  I did look at push.default but it is\n> unclear how this variable is involved.\n>\n> Perhaps it is because the word \"tracking\" in the description \"push the\n> current branch to the branch it is tracking\" is used without explaination.\n\nMaybe the push.default description needs some enhancements, but this\n[3/4] is true.\n\n> I think the author meant to say if your local branch frotz by default\n> merges changes made to the branch nitfol of the remote repository, \"frotz\n> tracks nitfol\", but the use of the word \"track\" for that meaning appears\n> nowhere in Documentation/glossary-content.txt\n\nSo we can define:\n\npush.default = \"tracking\" = \"push the current branch to its upstream branch\"\n\nThe \"upstream branch\" is defined in branch.name.merge and could also\nbe added to glossary-content.\n\nSanti\n"},{"id":"110008","messageId":"49D212B0.8070005@drmicha.warpmail.net","threadId":"18639","inReplyTo":"20090330180253.GA7220@coredump.intra.peff.net","subject":"Re: [PATCHv2 4/4] Rename push.default to push.mode","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2009-03-31T12:55:12Z","receivedAt":"2009-03-31T12:55:12Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Jeff King venit, vidit, dixit 30.03.2009 20:02:\n> On Mon, Mar 30, 2009 at 04:47:20PM +0200, Michael J Gruber wrote:\n> \n>> Thanks for the explanation! I rechecked, and for sure it also happened\n>> with patches from Tor Arne Vestbø and Nguyễn Thái Ngọc Duy.\n>> Again I feel blessed by my umlautlessness... and challenged by gmane.\n>> About time to ditch it for reading patches also, or at least to be aware\n>> of it when saving patches.\n> \n> The message gmane passes out has the content-transfer-encoding set\n> properly. Your newsreader should properly un-QP it, or if it has an\n> option to save it directly (encoding and all), then \"git am\" will un-QP\n> it. If you were to \"git apply\" it directly, that would break, though\n> (and it is user error). If your newsreader saves the QP text without the\n> matching header, then that would also break (and your newsreader is\n> broken).\n> \n> Just curious how you are seeing the breakage (because I want to make\n> sure there is no git bug).\n> \n> -Peff\n\nI haven't seen any breakage. I just noticed a different font being used\nfor Santi's posts (due to different character encoding, with a different\nfont preset in TB) and looked at the message source, where I saw =20 and\nsuch all over the place (message display is fine). When saving from TB\nthe QP is undone. It just made me feel uneasy because of our recent\ndiscussion regarding format-flowed and patch submission. I know ff \\ne\nqp, but still I thought git-{send-email,apply} would prefer straight ascii.\n\nMichael\n"},{"id":"110009","messageId":"20090331130813.GA8148@coredump.intra.peff.net","threadId":"18639","inReplyTo":"49D212B0.8070005@drmicha.warpmail.net","subject":"Re: [PATCHv2 4/4] Rename push.default to push.mode","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2009-03-31T13:08:13Z","receivedAt":"2009-03-31T13:08:13Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Mar 31, 2009 at 02:55:12PM +0200, Michael J Gruber wrote:\n\n> I haven't seen any breakage. I just noticed a different font being used\n> for Santi's posts (due to different character encoding, with a different\n> font preset in TB) and looked at the message source, where I saw =20 and\n> such all over the place (message display is fine). When saving from TB\n> the QP is undone. It just made me feel uneasy because of our recent\n> discussion regarding format-flowed and patch submission. I know ff \\ne\n> qp, but still I thought git-{send-email,apply} would prefer straight ascii.\n\nAh, OK. I think everything is working as expected, then. Thanks for the\nclarification.\n\n-Peff\n"},{"id":"110195","messageId":"7v3acrk2p0.fsf@gitster.siamese.dyndns.org","threadId":"18639","inReplyTo":"adf1fd3d0903301506r65bd9b9bv6bf76c652a051400@mail.gmail.com","subject":"Re: [PATCHv2 3/4] Documentation: branch.*.merge can also afect 'git-push'","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-04-02T06:08:27Z","receivedAt":"2009-04-02T06:08:27Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Santi Béjar <santi@agolina.net> writes:\n\n> 2009/3/30 Junio C Hamano <gitster@pobox.com>:\n> ...\n> Maybe the push.default description needs some enhancements, but this\n> [3/4] is true.\n>\n>> I think the author meant to say if your local branch frotz by default\n>> merges changes made to the branch nitfol of the remote repository, \"frotz\n>> tracks nitfol\", but the use of the word \"track\" for that meaning appears\n>> nowhere in Documentation/glossary-content.txt\n>\n> So we can define:\n>\n> push.default = \"tracking\" = \"push the current branch to its upstream branch\"\n>\n> The \"upstream branch\" is defined in branch.name.merge and could also\n> be added to glossary-content.\n\nSounds like a good plan.  Please make it so.\n"}]}