{"thread":{"id":"32970","subject":"[PATCH] add: allow users to silence Git 2.0 warnings about \"add -u\"","startedAt":"2013-02-22T06:07:04Z","lastAt":"2013-02-23T08:44:47Z","messageCount":8,"participants":["David Aguilar","Junio C Hamano","Matthieu Moy"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"210014","messageId":"1361513224-34550-1-git-send-email-davvid@gmail.com","threadId":"32970","inReplyTo":null,"subject":"[PATCH] add: allow users to silence Git 2.0 warnings about \"add -u\"","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2013-02-22T06:07:04Z","receivedAt":"2013-02-22T06:07:04Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"When \"git add -u\" is invoked from a subdirectory it prints a\nloud warning message about an upcoming Git 2.0 behavior change.\nSome users do not care to be warned.  Accomodate them.\n\nThe \"add.silence-pathless-warnings\" configuration variable can\nnow be used to silence this warning.\n\nSigned-off-by: David Aguilar <davvid@gmail.com>\n---\nI found the warning a informative but also a little annoying.\nI can imagine others might as well.\n\nI would also like to change the warning message to mention what the Git 2.0\nbehavior will be (which it does not mention), but I realize that the string\nhas already been translated.  That can be a follow-on patch if this is seen as\na worthwhile change, but might not be worth the trouble since it's a problem\nwhich will go away in 2.0.\n\n Documentation/config.txt |  7 +++++++\n builtin/add.c            |  8 +++++++-\n t/t2200-add-update.sh    | 11 +++++++++++\n 3 files changed, 25 insertions(+), 1 deletion(-)\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 3bb53da..b6ed859 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -648,6 +648,13 @@ core.abbrev::\n \tfor abbreviated object names to stay unique for sufficiently long\n \ttime.\n \n+add.silence-pathless-warnings::\n+\tTells 'git add' to silence warnings when 'git add -u' is used in\n+\ta subdirectory without specifying a path.  Git 2.0 updates the\n+\twhole tree.  Git 1.x updates the current directory only, and warns\n+\tabout the upcoming change unless this variable is set to true.\n+\tFalse by default, and ignored by Git 2.0.\n+\n add.ignore-errors::\n add.ignoreErrors::\n \tTells 'git add' to continue adding files when some files cannot be\ndiff --git a/builtin/add.c b/builtin/add.c\nindex 0dd014e..01b9cac 100644\n--- a/builtin/add.c\n+++ b/builtin/add.c\n@@ -272,6 +272,7 @@ N_(\"The following paths are ignored by one of your .gitignore files:\\n\");\n \n static int verbose = 0, show_only = 0, ignored_too = 0, refresh_only = 0;\n static int ignore_add_errors, addremove, intent_to_add, ignore_missing = 0;\n+static int silence_pathless_warnings;\n \n static struct option builtin_add_options[] = {\n \tOPT__DRY_RUN(&show_only, N_(\"dry run\")),\n@@ -296,6 +297,8 @@ static int add_config(const char *var, const char *value, void *cb)\n \t    !strcmp(var, \"add.ignore-errors\")) {\n \t\tignore_add_errors = git_config_bool(var, value);\n \t\treturn 0;\n+\t} else if (!strcmp(var, \"add.silence-pathless-warnings\")) {\n+\t\tsilence_pathless_warnings = git_config_bool(var, value);\n \t}\n \treturn git_default_config(var, value, cb);\n }\n@@ -321,7 +324,8 @@ static int add_files(struct dir_struct *dir, int flags)\n \treturn exit_status;\n }\n \n-static void warn_pathless_add(const char *option_name, const char *short_name) {\n+static void warn_pathless_add(const char *option_name, const char *short_name)\n+{\n \t/*\n \t * To be consistent with \"git add -p\" and most Git\n \t * commands, we should default to being tree-wide, but\n@@ -332,6 +336,8 @@ static void warn_pathless_add(const char *option_name, const char *short_name) {\n \t * turned into a die(...), and eventually we may\n \t * reallow the command with a new behavior.\n \t */\n+\tif (silence_pathless_warnings)\n+\t\treturn;\n \twarning(_(\"The behavior of 'git add %s (or %s)' with no path argument from a\\n\"\n \t\t  \"subdirectory of the tree will change in Git 2.0 and should not be used anymore.\\n\"\n \t\t  \"To add content for the whole tree, run:\\n\"\ndiff --git a/t/t2200-add-update.sh b/t/t2200-add-update.sh\nindex 4cdebda..779dbe7 100755\n--- a/t/t2200-add-update.sh\n+++ b/t/t2200-add-update.sh\n@@ -171,4 +171,15 @@ test_expect_success '\"add -u non-existent\" should fail' '\n \t! (git ls-files | grep \"non-existent\")\n '\n \n+test_expect_success 'add.silence-pathless-warnings configuration variable' '\n+\t: >expect &&\n+\ttest_config add.silence-pathless-warnings true &&\n+\t(\n+\t\tcd dir1 &&\n+\t\techo more >>sub2 &&\n+\t\tgit add -u\n+\t) >actual 2>&1 &&\n+\ttest_cmp expect actual\n+'\n+\n test_done\n-- \n1.8.2.rc0.22.gb3600c3.dirty\n"},{"id":"210015","messageId":"7vtxp4sw8e.fsf@alter.siamese.dyndns.org","threadId":"32970","inReplyTo":"1361513224-34550-1-git-send-email-davvid@gmail.com","subject":"Re: [PATCH] add: allow users to silence Git 2.0 warnings about \"add -u\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-02-22T06:23:13Z","receivedAt":"2013-02-22T06:23:13Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Aguilar <davvid@gmail.com> writes:\n\n> When \"git add -u\" is invoked from a subdirectory it prints a\n> loud warning message about an upcoming Git 2.0 behavior change.\n> Some users do not care to be warned.  Accomodate them.\n\nI do not think this is what we discussed to do.\n\nIt was very much deliberate to make the way to \"squelch the warning\"\nnot a \"set once and *forget*\", aka configuration variable, but a\nsimple-to-type extra command line argument i.e. \"git add -u .\", that\nyou will *always* type to train your fingers to explicitly say what\nyou mean, so that the default switch will not matter to existing\nusers.\n"},{"id":"210016","messageId":"CAJDDKr4dCJ3p9QBGr09kW4_0BsVJcpE7s83=eNxKE15pMznWCw@mail.gmail.com","threadId":"32970","inReplyTo":"7vtxp4sw8e.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] add: allow users to silence Git 2.0 warnings about \"add -u\"","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2013-02-22T07:12:42Z","receivedAt":"2013-02-22T07:12:42Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"On Thu, Feb 21, 2013 at 10:23 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> David Aguilar <davvid@gmail.com> writes:\n>\n>> When \"git add -u\" is invoked from a subdirectory it prints a\n>> loud warning message about an upcoming Git 2.0 behavior change.\n>> Some users do not care to be warned.  Accomodate them.\n>\n> I do not think this is what we discussed to do.\n>\n> It was very much deliberate to make the way to \"squelch the warning\"\n> not a \"set once and *forget*\", aka configuration variable, but a\n> simple-to-type extra command line argument i.e. \"git add -u .\", that\n> you will *always* type to train your fingers to explicitly say what\n> you mean, so that the default switch will not matter to existing\n> users.\n\nIn my use case:\n\n- The user is always in a subdir; the behavior change\nis immaterial to them.\n\n- The user does not care about these details,\nand is not harmed by using the short and sweet command.\n\nPlease enlighten me.\nAre we really getting rid of it and replacing it with \":/\"?\nThat syntax looks like a meh face.. just sayin'\n\nI was actually surprised when \"add -u\" didn't do the whole tree\nand am happy that 2.0 will make it do the right thing...\n\n(and perhaps I am deluded, and am not aware of what 2.0 will\ndo when not given pathspecs.. is it really going to die()?\nthat's so mean! ;)\n\nSorry if I am missing most of the context.\nI was reading this in builtin/add.c:\n\n\t/*\n\t * To be consistent with \"git add -p\" and most Git\n\t * commands, we should default to being tree-wide, but\n\t * this is not the original behavior and can't be\n\t * changed until users trained themselves not to type\n\t * \"git add -u\" or \"git add -A\". For now, we warn and\n\t * keep the old behavior. Later, this warning can be\n\t * turned into a die(...), and eventually we may\n\t * reallow the command with a new behavior.\n\t */\n\n...and I was being too optimistic about, \"and eventually\".\n\nI misread that and thought it meant that (eventually) 2.0\nwould default to the full tree and fix the consistency.\n\nI didn't think that meant 2.0 would die and \"git add -u\"\nwill not be a valid syntax anymore.\n\nWhy punish these users?  They are going to have :/ face.\n\nUnlike push.default, whose warning can be silenced with configuration,\ngit 1.x does not have a way to silence this warning without retraining\nexisting users.\n\nIn other words I will have to answer an email about it one day, and I'm lazy ;-)\n\n\nAnother example...\n\n$ git grep 'stuff' :/\n\nwould it be too much to teach it to do:\n\n$ git grep -u 'stuff'\n\n(some users are really simple...)\n\nbut in 2.0 that -u would be a no-op because \"grep\" will be full tree, no?\n\nWould having that as an option and configuration be a way to allow 1.x\nusers to transition themselves to a 2.0 world?\n\nI need to read the old discussions.\nCan someone tell me the magic google search syntax they use to dig them up?\n\n\nWould a better way be a method to make \"git add -u\" behave like 2.0 today?\n\nI'm thinking of Python's \"from __future__ import better_behavior\" as a analog.\n\nIf full-tree is a better default then that should be the default.\nSurely that's better than die(), no?\n\nApologies in advance as I have not read the discussions (yet).\n-- \nDavid\n"},{"id":"210021","messageId":"vpqd2vssnh7.fsf@grenoble-inp.fr","threadId":"32970","inReplyTo":"CAJDDKr4dCJ3p9QBGr09kW4_0BsVJcpE7s83=eNxKE15pMznWCw@mail.gmail.com","subject":"Re: [PATCH] add: allow users to silence Git 2.0 warnings about \"add -u\"","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2013-02-22T09:32:20Z","receivedAt":"2013-02-22T09:32:20Z","isPatch":true,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"David Aguilar <davvid@gmail.com> writes:\n\n> Please enlighten me.\n> Are we really getting rid of it and replacing it with \":/\"?\n> That syntax looks like a meh face.. just sayin'\n\nThe current behavior is indeed replaced by \"git add -u .\", not \":/\".\n\n> Unlike push.default, whose warning can be silenced with configuration,\n> git 1.x does not have a way to silence this warning without retraining\n> existing users.\n\nYes, but push.default is really different: there is a config variable,\nand we want the behavior to be configurable. In the case of \"git add\",\nI don't think adding a configuration option would be the right thing.\nThat would mean typing \"git add -u\" on an account which isn't yours will\nbe unpredictable *forever*.\n\nOTOH, \"git add -u :/\" and \"git add -u .\" will behave predictibly on any\nversion of Git that accepts them, past present or future (:/ was added\nin 1.7.6, a year and a half ago).\n\n> Another example...\n>\n> $ git grep 'stuff' :/\n>\n> would it be too much to teach it to do:\n>\n> $ git grep -u 'stuff'\n\n\"git grep\" is out of the scope of this change. Yes, it is inconsistant\nwith the rest of Git, but doesn't seem to surprise users as much as \"git\nadd -u\" (for which the inconsistancy appears within the \"add\" command).\n\nI don't understand what you mean by \"git grep -u\". \"git add -u\" is a\nshortcut for \"git add --update\", and \"git grep --update\" wouldn't make\nsense to me. Do you mean we should add a \"--full-tree\" to \"git grep\"?\nThat seems really overkill to me since we already have the :/ pathspec.\n\n> but in 2.0 that -u would be a no-op because \"grep\" will be full tree, no?\n\nNo it won't.\n\n> I need to read the old discussions.\n> Can someone tell me the magic google search syntax they use to dig them up?\n\nSee the discussion here:\n\nhttp://thread.gmane.org/gmane.comp.version-control.git/213988/focus=214106\n\n(recursively, there's a pointer to an older discussion)\n\n> Would a better way be a method to make \"git add -u\" behave like 2.0 today?\n\nAs I said, I think adding a configuration option that would remain after\n2.0 would do more harm than good. But after thinking about it, I'm not\nagainst an option like a boolean add.use2dot0Behavior that would:\n\n* Right now, adopt the future behavior and kill the warning\n\n* From 2.0, kill the warning without changing the bevavior\n\n* When we stop warning, disapear.\n\nThis, or the add.silence-pathless-warnings (which BTW should be spelled\nadd.silencePathlessWarnings) would not harm as long as they are not\nadvertized in the warning. What we don't want is dumb users reading half\nthe message and apply the quickest receipe they find to kill the warning\nwithout thinking about the consequences.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"210037","messageId":"7va9qws1wh.fsf@alter.siamese.dyndns.org","threadId":"32970","inReplyTo":"CAJDDKr4dCJ3p9QBGr09kW4_0BsVJcpE7s83=eNxKE15pMznWCw@mail.gmail.com","subject":"Re: [PATCH] add: allow users to silence Git 2.0 warnings about \"add -u\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-02-22T17:18:22Z","receivedAt":"2013-02-22T17:18:22Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Aguilar <davvid@gmail.com> writes:\n\n> Please enlighten me.\n\nAs you lack the knowledge of previous discussion, I think you will\nbe the best person to proofread the paragraph on this issue in the\n\"backward compatibilty notes\" section of the draft release notes to\nv1.8.2 to see if that is understandable to the end users and point\nout what are missing or confusing.\n"},{"id":"210040","messageId":"7v621ks1cf.fsf@alter.siamese.dyndns.org","threadId":"32970","inReplyTo":"vpqd2vssnh7.fsf@grenoble-inp.fr","subject":"Re: [PATCH] add: allow users to silence Git 2.0 warnings about \"add -u\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-02-22T17:30:24Z","receivedAt":"2013-02-22T17:30:24Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n\n> Yes, but push.default is really different: there is a config variable,\n> and we want the behavior to be configurable. In the case of \"git add\",\n> I don't think adding a configuration option would be the right thing.\n> That would mean typing \"git add -u\" on an account which isn't yours will\n> be unpredictable *forever*.\n\nExactly.\n\n>> $ git grep 'stuff' :/\n>>\n>> would it be too much to teach it to do:\n>>\n>> $ git grep -u 'stuff'\n>\n> \"git grep\" is out of the scope of this change. Yes, it is inconsistant\n> with the rest of Git, but doesn't seem to surprise users as much as \"git\n> add -u\" (for which the inconsistancy appears within the \"add\" command).\n\nIt is consistent with \"grep\", and the reason \"git grep\" behaves that\nway is because consistency with \"grep\" matters more. I do not think\nit is going to change.\n\nAnother is \"clean\", which I do not personally care too deeply about;\nit being a destructive operation that is only used interactively and\noccasionally), the current behaviour to limit it to the cwd is much\nmore sensible than making it go and touch parts of the tree that is\nunrelated to cwd.\n\n> I don't understand what you mean by \"git grep -u\".\n\nI think he meant to add \"git grep --full-tree\" or something, and I\ndo not think it is going to happen when we have \":/\" magic pathspec.\n\n> As I said, I think adding a configuration option that would remain after\n> 2.0 would do more harm than good. But after thinking about it, I'm not\n> against an option like a boolean add.use2dot0Behavior that would:\n>\n> * Right now, adopt the future behavior and kill the warning\n>\n> * From 2.0, kill the warning without changing the bevavior\n>\n> * When we stop warning, disapear.\n\nIt is marginally better than David's \"set once without thinking\nbecause I read it on stackoverflow without fully understanding the\nramifications, and forget about it only to suffer when Git 2.0\nhappens\" configuration variable, but by not much.  You can easily\nimagine\n\n\tQ. Help, Git 1.8.2 is giving me this warning. What to do?\n\tA. Set this configuration variable. period.\n\nand many users setting it without realizing that they are making the\noperation tree-wide at the same time.  We'd want to see this answer\ninstead:\n\n\tA. Say \"git add -u .\"; you want to add changed paths in the\n \t   current directory.\n\nAnother problem with use2dot0 configuration is that it would invite\npeople to imagine that setting it to false will keep the old\nbehaviour forever, which is against what you set out to do with the\npatch under discussion.\n"},{"id":"210083","messageId":"CAJDDKr7F-wunjT_SS0mw+WUgoM3-Lu9bA3JUKk4sQiWWK0N9Jw@mail.gmail.com","threadId":"32970","inReplyTo":"7v621ks1cf.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] add: allow users to silence Git 2.0 warnings about \"add -u\"","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2013-02-23T07:59:06Z","receivedAt":"2013-02-23T07:59:06Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"On Fri, Feb 22, 2013 at 9:30 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n>\n>> Yes, but push.default is really different: there is a config variable,\n>> and we want the behavior to be configurable. In the case of \"git add\",\n>> I don't think adding a configuration option would be the right thing.\n>> That would mean typing \"git add -u\" on an account which isn't yours will\n>> be unpredictable *forever*.\n>\n> Exactly.\n\nI completely agree.  We don't want that [1].\n\nI'm actually a big enemy of configuration, don't get me wrong.\nThe real point of the patch I sent was to start a conversation\nabout the thing I actually care about:\n\nAfter reading the draft release notes I now realize that\n\"git add -u\" will not die() in Git 2.0.  It will operate on the\nfull tree, as described in the note.  Sweet.\n\nI was originally concerned that \"git add -u\" was going to die()\nand we would no longer be able to use it without pathspec.\nMy concerns were unfounded.\n\n(If I am not understanding this correctly then it is a sign\n that the draft release notes can be made more clear)\n\n> Another problem with use2dot0 configuration is that it would invite\n> people to imagine that setting it to false will keep the old\n> behaviour forever, which is against what you set out to do with the\n> patch under discussion.\n\nI agree with both sides.  There's the part of me that wants the 2.0\nbehavior now with a config switch for the same reasons as was\ndiscussed earlier:\n\nhttp://thread.gmane.org/gmane.comp.version-control.git/166223/focus=168238\n\nIn addition, mindful users would see one less warning,\nwhich is the only weight I've added to that side of the discussion.\n\nWe would never want to go back to the old behavior when 2.0\nroll around.  Jakub's \"future.wholeTree\" suggestion makes\nsense in that context as the entire \"future.*\" namespace\ncould be designated as variables with these semantics.\n\nOne downside is that adding such a configuration is just more\ntemporary code to maintain and rip out when 2.0 rolls around.\n\nOTOH a positive thing about adding configuration to get\nthe better behavior is that the code path materializes\nsooner, and it will be better exercised before 2.0.  This\nincreases confidence that removing the false side of the\nimaginary \"future.fullTree\" configuration will be harmless.\n\nIn the original-original thread Matthieu and I seemed to\nagree that configuration to get the new behavior\n(but not get the old behavior) would be nice. Peff went\neven farther and suggested that having a way to keep\nthe old behavior would be good, and I agree that this is\nthe thing [1] to avoid since it makes the command forever\nunpredictable.\n\n\"future.*\" means the ambiguous/unpredictable behavior\ndoes eventually go away.\n\nIt's a flag day, there's no way around that.\nScript writers will be hurt, there is no escaping that.\n\nI guess the real question is whether it's a flag day that\nhappens through availability of configuration, or by the\ninevitability of 2.0.\n\nI have one scenario where \"future.fullTree\" would be\nhelpful to script writers: it would allow them to\ntest their scripts with the new behavior and back it out\nif their scripts break.  This gives them more time to\nmake the tiny change needed to be portable across\ndifferent git versions, which helps make the later\ndefault change into much less of an event.\n\nHaving such a configuration would probably mean that\ngit should probably warn for all pathless \"git add -u\",\neven from the root.  It will help usher users towards\nthe new behavior.  The current behavior makes the\nmost sense since we do not have a config variable.\n\nThe current behavior is certainly the simplest.\n\nI don't know what we can do about the clueless user on\nstackoverflow that follows the first suggestion to\nset the future.fullTree variable.  My gut feeling is\nthat optimizing for them is a lost cause.\n\nProviding a way for mindful users to ease themselves\ninto the new behavior does help them, and git is\ncertainly the tool of choice for the mindful user. ;-)\n\nI hope I haven't misrepresented anybody's opinions.\nIf I'm the only one who thinks that \"future.fullTree\"\nis a good idea then I have no problem with the current\nbehavior since the noisy warning will be gone in 2.0.\n\nDoes anyone else have any weight to add to either side?\n-- \nDavid\n"},{"id":"210085","messageId":"7v621j8lmo.fsf@alter.siamese.dyndns.org","threadId":"32970","inReplyTo":"CAJDDKr7F-wunjT_SS0mw+WUgoM3-Lu9bA3JUKk4sQiWWK0N9Jw@mail.gmail.com","subject":"Re: [PATCH] add: allow users to silence Git 2.0 warnings about \"add -u\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-02-23T08:44:47Z","receivedAt":"2013-02-23T08:44:47Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Aguilar <davvid@gmail.com> writes:\n\n> I was originally concerned that \"git add -u\" was going to die()\n> and we would no longer be able to use it without pathspec.\n> My concerns were unfounded.\n>\n> (If I am not understanding this correctly then it is a sign\n>  that the draft release notes can be made more clear)\n\nYes, that is exactly why I asked you to suggest improvements to that\nparagraph.\n\n>> Another problem with use2dot0 configuration is that it would invite\n>> people to imagine that setting it to false will keep the old\n>> behaviour forever, which is against what you set out to do with the\n>> patch under discussion.\n>\n> I agree with both sides.  There's the part of me that wants the 2.0\n> behavior now with a config switch for the same reasons as was\n> discussed earlier...\n\nIf that is really the case and you want the full-tree behaviour, you\nwould have been using \"git add -u :/\" already, and then you wouldn't\nhave seen the warning.\n\nWhy do we have this thread then?\n\nThe reason may well be \"I've heard about the :/ magic pathspec, and\nI thought I understood what it does at the intellectual level, but\nit has not sunk in enough for me to use it regularly\".\n\nThe warning, and \"you can squelch with either :/ or .\" to train the\nfingers (not \"set once and forget\"), is exactly to solve that\nproblem now *and* *in* *the* *future* during the 2.0 transition\nperiod.\n\nYou also said that it often is the case for you that you stay in a\nnarrow subtree without touching other parts of the tree. If that is\nthe case, you may *not* want 2.0 behaviour, which forces Git to run\naround the whole tree, trying to find modified paths outside of your\ncorner that do not exist, wasting cycles.  You want \"git add .\", and\nyou are better off starting to train your fingers so that they type\nthat without thinking now.  I think the conclusion during the old\ndiscussion was not \"we want configuration\", but \"this is not per\nuser and configuration is a poor approach. Depending on what you are\nworking on right now, you would want 'only here' sometimes and\n'whole tree' some other times\".\n\n> We would never want to go back to the old behavior when 2.0\n> roll around.  Jakub's \"future.wholeTree\" suggestion makes\n> sense in that context as the entire \"future.*\" namespace\n> could be designated as variables with these semantics.\n\nNot at all. Even you who visit this list often do not regularly use\nthe \":/\" to affect the whole tree and see the warning. What do you\nimagine other people, who do not even know about this list do and\nsay, at sites like stackoverflow where uninformeds guide other\nuninformeds?\n\n  Q. Help, Git 1.8.2 is giving me this warning. What to do?\n  A. Set this configuration variable. No other explanation.\n\nRenaming use2dot0 to future does not solve anything.\n\n> OTOH a positive thing about adding configuration to get\n> the better behavior is that the code path materializes\n> sooner, and it will be better exercised before 2.0.\n\nThat is not an argument for adding temporary configuration, as it is\nnot the only or even the best way to do so.  It can be easily an\ncleanly achieved by cooking in next until 2.0.\n\nAn ulterior motive for going that way is to encourage more people to\nrun 'next' ;-). Recently we are seeing bugs discovered only after topics\ngraduate to 'master', which is not a good sign X-<.\n"}]}