{"thread":{"id":"48627","subject":"how exactly can git config section names contain periods?","startedAt":"2018-06-01T20:16:26Z","lastAt":"2018-06-04T12:09:23Z","messageCount":13,"participants":["Robert P. J. Day","Randall S. Becker","Jeff King","Junio C Hamano","SZEDER Gábor","Johannes Sixt"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"349021","messageId":"alpine.LFD.2.21.1806011606490.11215@localhost.localdomain","threadId":"48627","inReplyTo":null,"subject":"how exactly can git config section names contain periods?","fromName":"Robert P. J. Day","fromEmail":"rpjday@crashcourse.ca","sentAt":"2018-06-01T20:14:12Z","receivedAt":"2018-06-01T20:16:26Z","isPatch":false,"sender":{"key":"rpjday@crashcourse.ca","avatar":"https://avatars.githubusercontent.com/u/226084077?v=4"},"body":"\n  more oddities in my travels, this from Doc.../config.txt:\n\n\"The file consists of sections and variables.  A section begins with\nthe name of the section in square brackets and continues until the\nnext section begins.  Section names are case-insensitive.  Only\nalphanumeric characters, `-` and `.` are allowed in section names.\n                                  ^ ?????\n\n  what? how can section names contain periods? reading further,\n\n\"Sections can be further divided into subsections.  To begin a\nsubsection put its name in double quotes, separated by space from the\nsection name, in the section header, like in the example below:\n\n--------\n        [section \"subsection\"]\n\n\n  ok, so how on earth would i use \"git config\" at the command line to\nset a config variable with some arbitrary level of subsections? let's\ntry this:\n\n  $ git config --global a.b.c.d.e rday\n\nhuh ... seemed to work fine, and added this to my ~/.gitconfig:\n\n  [a \"b.c.d\"]\n          e = rday\n\nas i see it, the first component is intgerpreted as the section name,\nthe last component is the variable/key(?) name, and everything in\nbetween is treated as subsection(s), which is not at all obvious from\nthat Doc file, or from \"man git-config\".\n\n  and if a section name can contain periods, how would you specify\nthat at the command line?\n\nrday\n\n-- \n\n========================================================================\nRobert P. J. Day                                 Ottawa, Ontario, CANADA\n                  http://crashcourse.ca/dokuwiki\n\nTwitter:                                       http://twitter.com/rpjday\nLinkedIn:                               http://ca.linkedin.com/in/rpjday\n========================================================================\n"},{"id":"349022","messageId":"00ce01d3f9ea$270a0d30$751e2790$@nexbridge.com","threadId":"48627","inReplyTo":"alpine.LFD.2.21.1806011606490.11215@localhost.localdomain","subject":"RE: how exactly can git config section names contain periods?","fromName":"Randall S. Becker","fromEmail":"rsbecker@nexbridge.com","sentAt":"2018-06-01T20:50:14Z","receivedAt":"2018-06-01T20:51:07Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"> -----Original Message-----\n> From: git-owner@vger.kernel.org <git-owner@vger.kernel.org> On Behalf\n> Of Robert P. J. Day\n> Sent: June 1, 2018 4:14 PM\n> To: Git Mailing list <git@vger.kernel.org>\n> Subject: how exactly can git config section names contain periods?\n> \n> \n>   more oddities in my travels, this from Doc.../config.txt:\n> \n> \"The file consists of sections and variables.  A section begins with the\nname\n> of the section in square brackets and continues until the next section\nbegins.\n> Section names are case-insensitive.  Only alphanumeric characters, `-` and\n`.`\n> are allowed in section names.\n>                                   ^ ?????\n> \n>   what? how can section names contain periods? reading further,\n> \n> \"Sections can be further divided into subsections.  To begin a subsection\nput\n> its name in double quotes, separated by space from the section name, in\nthe\n> section header, like in the example below:\n> \n> --------\n>         [section \"subsection\"]\n> \n> \n>   ok, so how on earth would i use \"git config\" at the command line to set\na\n> config variable with some arbitrary level of subsections? let's try this:\n> \n>   $ git config --global a.b.c.d.e rday\n> \n> huh ... seemed to work fine, and added this to my ~/.gitconfig:\n> \n>   [a \"b.c.d\"]\n>           e = rday\n> \n> as i see it, the first component is intgerpreted as the section name, the\nlast\n> component is the variable/key(?) name, and everything in between is\n> treated as subsection(s), which is not at all obvious from that Doc file,\nor from\n> \"man git-config\".\n> \n>   and if a section name can contain periods, how would you specify that at\nthe\n> command line?\n\nI'm with Robert on this. I would have thought that the interpretation should\nhave been:\n\n[\"a.b.c.d\"]\n         e = rday\n\nConfused as well,\n\nRandall\n\n-- Brief whoami:\n NonStop developer since approximately 211288444200000000\n UNIX developer since approximately 421664400\n-- In my real life, I talk too much.\n\n\n\n"},{"id":"349023","messageId":"20180601210731.GA20974@sigill.intra.peff.net","threadId":"48627","inReplyTo":"alpine.LFD.2.21.1806011606490.11215@localhost.localdomain","subject":"Re: how exactly can git config section names contain periods?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2018-06-01T21:07:31Z","receivedAt":"2018-06-01T21:07:37Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Jun 01, 2018 at 04:14:12PM -0400, Robert P. J. Day wrote:\n\n>   more oddities in my travels, this from Doc.../config.txt:\n> \n> \"The file consists of sections and variables.  A section begins with\n> the name of the section in square brackets and continues until the\n> next section begins.  Section names are case-insensitive.  Only\n> alphanumeric characters, `-` and `.` are allowed in section names.\n>                                   ^ ?????\n> \n>   what? how can section names contain periods? reading further,\n\nI agree that seems like nonsense. Once we get to the first period, we\nconsider parts after that to be a subsection name, due to the\n\"flattened\" form we use in various places (i.e., \"section.key\" or\n\"section.subsection.key\").\n\nSyntactically we do allow:\n\n  [foo.bar]\n  key = true\n\nin the config file, which should equivalent to:\n\n  [foo \"bar\"]\n  key = true\n\nThis is mentioned later:\n\n  There is also a deprecated [section.subsection] syntax. With this\n  syntax, the subsection name is converted to lower-case and is also\n  compared case sensitively. These subsection names follow the same\n  restrictions as section names.\n\nThis has been deprecated since 2011. Maybe it's time to finally get rid\nof it.\n\n> \"Sections can be further divided into subsections.  To begin a\n> subsection put its name in double quotes, separated by space from the\n> section name, in the section header, like in the example below:\n> \n> --------\n>         [section \"subsection\"]\n> \n> \n>   ok, so how on earth would i use \"git config\" at the command line to\n> set a config variable with some arbitrary level of subsections? let's\n> try this:\n\nYou don't. There are only three levels: section, (optional) subsection,\nand key. If there is a subsection, it consists of _everything_ between\nthe two outer periods.\n\n>   $ git config --global a.b.c.d.e rday\n> \n> huh ... seemed to work fine, and added this to my ~/.gitconfig:\n> \n>   [a \"b.c.d\"]\n>           e = rday\n> \n> as i see it, the first component is intgerpreted as the section name,\n> the last component is the variable/key(?) name, and everything in\n> between is treated as subsection(s), which is not at all obvious from\n> that Doc file, or from \"man git-config\".\n\nYep, your understanding is correct.\n\n>   and if a section name can contain periods, how would you specify\n> that at the command line?\n\nYou can't, because section names cannot contain periods. ;)\n\nI agree that the docs you quoted are somewhere between misleading and\noutright wrong. At the very least, we should remove the part about \".\nallowed in section names\". But I also think we could stand to make the\n3-level mental model more explicit.\n\n-Peff\n"},{"id":"349033","messageId":"alpine.LFD.2.21.1806011754510.14826@localhost.localdomain","threadId":"48627","inReplyTo":"20180601210731.GA20974@sigill.intra.peff.net","subject":"Re: how exactly can git config section names contain periods?","fromName":"Robert P. J. Day","fromEmail":"rpjday@crashcourse.ca","sentAt":"2018-06-01T21:55:38Z","receivedAt":"2018-06-01T21:57:45Z","isPatch":false,"sender":{"key":"rpjday@crashcourse.ca","avatar":"https://avatars.githubusercontent.com/u/226084077?v=4"},"body":"On Fri, 1 Jun 2018, Jeff King wrote:\n\n> This is mentioned later:\n>\n>   There is also a deprecated [section.subsection] syntax. With this\n>   syntax, the subsection name is converted to lower-case and is also\n>   compared case sensitively. These subsection names follow the same\n>   restrictions as section names.\n\n> This has been deprecated since 2011. Maybe it's time to finally get\n> rid of it.\n\n  seven years seems sufficient for deprecation.\n\nrday\n\n-- \n\n========================================================================\nRobert P. J. Day                                 Ottawa, Ontario, CANADA\n                  http://crashcourse.ca/dokuwiki\n\nTwitter:                                       http://twitter.com/rpjday\nLinkedIn:                               http://ca.linkedin.com/in/rpjday\n========================================================================\n"},{"id":"349037","messageId":"xmqq36y685vx.fsf@gitster-ct.c.googlers.com","threadId":"48627","inReplyTo":"20180601210731.GA20974@sigill.intra.peff.net","subject":"Re: how exactly can git config section names contain periods?","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2018-06-01T23:05:22Z","receivedAt":"2018-06-01T23:05:28Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> Syntactically we do allow:\n>\n>   [foo.bar]\n>   key = true\n>\n> in the config file, which should equivalent to:\n>\n>   [foo \"bar\"]\n>   key = true\n>\n> This is mentioned later:\n>\n>   There is also a deprecated [section.subsection] syntax. With this\n>   syntax, the subsection name is converted to lower-case and is also\n>   compared case sensitively. These subsection names follow the same\n>   restrictions as section names.\n>\n> This has been deprecated since 2011. Maybe it's time to finally get rid\n> of it.\n\nSure, but is it worth the transition noise?\n\nThe way we lightly utter the word \"deprecated\" around here probably\ndoes not align well with the way how end-users perceive the word.\nJust marking something deprecated in a corner of the documentation\nset, without actively making an effort to wean the existing users\noff, while happily accepting the existing \"deprecated\" practice, is\nwhat we've done.\n\nIn those repositories people have with \"[foo.bar] key\" syntax that\nwere created before or after 2011, we first should start issuing a\n\"that syntax will no longer be valid---I'll update it for you if you\nwant (y/n)?\" warning and keep it for a release or three before\nfinally removing the \"feature\".\n"},{"id":"349040","messageId":"20180602000252.GA25016@sigill.intra.peff.net","threadId":"48627","inReplyTo":"xmqq36y685vx.fsf@gitster-ct.c.googlers.com","subject":"Re: how exactly can git config section names contain periods?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2018-06-02T00:02:52Z","receivedAt":"2018-06-02T00:02:57Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sat, Jun 02, 2018 at 08:05:22AM +0900, Junio C Hamano wrote:\n\n> > This has been deprecated since 2011. Maybe it's time to finally get rid\n> > of it.\n> \n> Sure, but is it worth the transition noise?\n> \n> The way we lightly utter the word \"deprecated\" around here probably\n> does not align well with the way how end-users perceive the word.\n> Just marking something deprecated in a corner of the documentation\n> set, without actively making an effort to wean the existing users\n> off, while happily accepting the existing \"deprecated\" practice, is\n> what we've done.\n> \n> In those repositories people have with \"[foo.bar] key\" syntax that\n> were created before or after 2011, we first should start issuing a\n> \"that syntax will no longer be valid---I'll update it for you if you\n> want (y/n)?\" warning and keep it for a release or three before\n> finally removing the \"feature\".\n\nYeah, sorry to be unclear: I meant that we should actually start moving\nforward on the removal, and I agree that the first step is issuing a\nwarning.\n\nIt may not be worth the transition noise. For the most part historical\noddities like these aren't hurting anybody. On the other hand, people\nread the documentation and go \"huh?\". These kinds of vestigial options\nand special cases can add up to clutter the explanations. So I dunno.\n\n-Peff\n"},{"id":"349075","messageId":"alpine.LFD.2.21.1806020448030.24235@localhost.localdomain","threadId":"48627","inReplyTo":"20180601210731.GA20974@sigill.intra.peff.net","subject":"Re: how exactly can git config section names contain periods?","fromName":"Robert P. J. Day","fromEmail":"rpjday@crashcourse.ca","sentAt":"2018-06-02T08:50:57Z","receivedAt":"2018-06-02T08:53:14Z","isPatch":false,"sender":{"key":"rpjday@crashcourse.ca","avatar":"https://avatars.githubusercontent.com/u/226084077?v=4"},"body":"On Fri, 1 Jun 2018, Jeff King wrote:\n\n> On Fri, Jun 01, 2018 at 04:14:12PM -0400, Robert P. J. Day wrote:\n>\n> >   $ git config --global a.b.c.d.e rday\n> >\n> > huh ... seemed to work fine, and added this to my ~/.gitconfig:\n> >\n> >   [a \"b.c.d\"]\n> >           e = rday\n> >\n> > as i see it, the first component is intgerpreted as the section\n> > name, the last component is the variable/key(?) name, and\n> > everything in between is treated as subsection(s), which is not at\n> > all obvious from that Doc file, or from \"man git-config\".\n>\n> Yep, your understanding is correct.\n\n  just to be precise regarding terminology, in my example above, is\n\"b.c.d\" a single subsection, or does it refer to three subsections?\ni'm guessing it refers to a single subsection, which is fine with me,\nas long as it's very clearly explained that way in the docs.\n\nrday\n\n-- \n\n========================================================================\nRobert P. J. Day                                 Ottawa, Ontario, CANADA\n                  http://crashcourse.ca/dokuwiki\n\nTwitter:                                       http://twitter.com/rpjday\nLinkedIn:                               http://ca.linkedin.com/in/rpjday\n========================================================================\n"},{"id":"349076","messageId":"20180602092604.GC3200@sigill.intra.peff.net","threadId":"48627","inReplyTo":"alpine.LFD.2.21.1806020448030.24235@localhost.localdomain","subject":"Re: how exactly can git config section names contain periods?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2018-06-02T09:26:05Z","receivedAt":"2018-06-02T09:26:10Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sat, Jun 02, 2018 at 04:50:57AM -0400, Robert P. J. Day wrote:\n\n> On Fri, 1 Jun 2018, Jeff King wrote:\n> \n> > On Fri, Jun 01, 2018 at 04:14:12PM -0400, Robert P. J. Day wrote:\n> >\n> > >   $ git config --global a.b.c.d.e rday\n> > >\n> > > huh ... seemed to work fine, and added this to my ~/.gitconfig:\n> > >\n> > >   [a \"b.c.d\"]\n> > >           e = rday\n> > >\n> > > as i see it, the first component is intgerpreted as the section\n> > > name, the last component is the variable/key(?) name, and\n> > > everything in between is treated as subsection(s), which is not at\n> > > all obvious from that Doc file, or from \"man git-config\".\n> >\n> > Yep, your understanding is correct.\n> \n>   just to be precise regarding terminology, in my example above, is\n> \"b.c.d\" a single subsection, or does it refer to three subsections?\n> i'm guessing it refers to a single subsection, which is fine with me,\n> as long as it's very clearly explained that way in the docs.\n\nIt's a single subsection. Each config key at most one subsection.\n\n-Peff\n"},{"id":"349130","messageId":"alpine.LFD.2.21.1806030547070.5332@localhost.localdomain","threadId":"48627","inReplyTo":"20180601210731.GA20974@sigill.intra.peff.net","subject":"Re: how exactly can git config section names contain periods?","fromName":"Robert P. J. Day","fromEmail":"rpjday@crashcourse.ca","sentAt":"2018-06-03T09:53:18Z","receivedAt":"2018-06-03T09:55:30Z","isPatch":false,"sender":{"key":"rpjday@crashcourse.ca","avatar":"https://avatars.githubusercontent.com/u/226084077?v=4"},"body":"On Fri, 1 Jun 2018, Jeff King wrote:\n\n> On Fri, Jun 01, 2018 at 04:14:12PM -0400, Robert P. J. Day wrote:\n\n... snip ...\n\n> >   ok, so how on earth would i use \"git config\" at the command line\n> > to set a config variable with some arbitrary level of subsections?\n> > let's try this:\n>\n> You don't. There are only three levels: section, (optional)\n> subsection, and key. If there is a subsection, it consists of\n> _everything_ between the two outer periods.\n>\n> >   $ git config --global a.b.c.d.e rday\n> >\n> > huh ... seemed to work fine, and added this to my ~/.gitconfig:\n> >\n> >   [a \"b.c.d\"]\n> >           e = rday\n> >\n> > as i see it, the first component is intgerpreted as the section name,\n> > the last component is the variable/key(?) name, and everything in\n> > between is treated as subsection(s), which is not at all obvious from\n> > that Doc file, or from \"man git-config\".\n>\n> Yep, your understanding is correct.\n>\n> >   and if a section name can contain periods, how would you specify\n> > that at the command line?\n>\n> You can't, because section names cannot contain periods. ;)\n\n  if (for some weird reason) i wanted to define a multi-level\nsubsection, is there any benefit to using periods as i did above, as\nopposed to any other delimiting character? apparently, running this:\n\n  $ git config --global a.b_c_d.e rday\n\ndumps this into my ~/.gitconfig:\n\n  [a \"b_c_d\"]\n\te = rday\n\nif i wanted to do something this admittedly awkward, would using\nperiods give me some benefit related to, i don't know, regex matching,\nas compared to using a different character? or am i just way\noverthinking this? is anyone out there actually taking advantage of\nmulti-level subsections?\n\nrday\n\n-- \n\n========================================================================\nRobert P. J. Day                                 Ottawa, Ontario, CANADA\n                  http://crashcourse.ca/dokuwiki\n\nTwitter:                                       http://twitter.com/rpjday\nLinkedIn:                               http://ca.linkedin.com/in/rpjday\n========================================================================\n"},{"id":"349133","messageId":"20180603103510.21020-1-szeder.dev@gmail.com","threadId":"48627","inReplyTo":"alpine.LFD.2.21.1806030547070.5332@localhost.localdomain","subject":"Re: how exactly can git config section names contain periods?","fromName":"SZEDER Gábor","fromEmail":"szeder.dev@gmail.com","sentAt":"2018-06-03T10:35:10Z","receivedAt":"2018-06-03T10:35:24Z","isPatch":false,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"\n\n> On Fri, 1 Jun 2018, Jeff King wrote:\n> \n> > On Fri, Jun 01, 2018 at 04:14:12PM -0400, Robert P. J. Day wrote:\n> > >   ok, so how on earth would i use \"git config\" at the command line\n> > > to set a config variable with some arbitrary level of subsections?\n> > > let's try this:\n> >\n> > You don't. There are only three levels: section, (optional)\n> > subsection, and key. If there is a subsection, it consists of\n> > _everything_ between the two outer periods.\n\n<snip>\n\n>   if (for some weird reason) i wanted to define a multi-level\n> subsection,\n\nYou can't, there are no multi-level subsections, see above.\n\n\n"},{"id":"349134","messageId":"alpine.LFD.2.21.1806030634200.8966@localhost.localdomain","threadId":"48627","inReplyTo":"20180603103510.21020-1-szeder.dev@gmail.com","subject":"Re: how exactly can git config section names contain periods?","fromName":"Robert P. J. Day","fromEmail":"rpjday@crashcourse.ca","sentAt":"2018-06-03T10:35:44Z","receivedAt":"2018-06-03T10:37:55Z","isPatch":false,"sender":{"key":"rpjday@crashcourse.ca","avatar":"https://avatars.githubusercontent.com/u/226084077?v=4"},"body":"On Sun, 3 Jun 2018, SZEDER Gábor wrote:\n\n>\n>\n> > On Fri, 1 Jun 2018, Jeff King wrote:\n> >\n> > > On Fri, Jun 01, 2018 at 04:14:12PM -0400, Robert P. J. Day wrote:\n> > > >   ok, so how on earth would i use \"git config\" at the command line\n> > > > to set a config variable with some arbitrary level of subsections?\n> > > > let's try this:\n> > >\n> > > You don't. There are only three levels: section, (optional)\n> > > subsection, and key. If there is a subsection, it consists of\n> > > _everything_ between the two outer periods.\n>\n> <snip>\n>\n> >   if (for some weird reason) i wanted to define a multi-level\n> > subsection,\n>\n> You can't, there are no multi-level subsections, see above.\n\n  no, i *get* that, what i was asking was if i wanted to simulate or\nemulate such a thing ... or is that just getting too weird and there\nis no compelling reason to want to go down that road? (which i am\ntotally prepared to accept.)\n\nrday\n\n-- \n\n========================================================================\nRobert P. J. Day                                 Ottawa, Ontario, CANADA\n                  http://crashcourse.ca/dokuwiki\n\nTwitter:                                       http://twitter.com/rpjday\nLinkedIn:                               http://ca.linkedin.com/in/rpjday\n========================================================================"},{"id":"349135","messageId":"8fe323a2-60ae-8382-ed0e-bfe772052b7f@kdbg.org","threadId":"48627","inReplyTo":"alpine.LFD.2.21.1806030547070.5332@localhost.localdomain","subject":"Re: how exactly can git config section names contain periods?","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2018-06-03T10:44:22Z","receivedAt":"2018-06-03T10:44:28Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 03.06.2018 um 11:53 schrieb Robert P. J. Day:\n> if i wanted to do something this admittedly awkward, would using\n> periods give me some benefit related to, i don't know, regex matching,\n> as compared to using a different character? or am i just way\n> overthinking this? is anyone out there actually taking advantage of\n> multi-level subsections?\n\nThere is nothing wrong with having all of these\n\n     git config foo.a.b.c.key value\n     git config foo.a.b.c value\n     git config foo.a.b.key value\n\nin a single configuration file, I think. There is nothing special there. \nThey're three different settings in two different (sub-)sections.\n\n-- Hannes\n"},{"id":"349232","messageId":"20180604120917.GA22371@sigill.intra.peff.net","threadId":"48627","inReplyTo":"alpine.LFD.2.21.1806030634200.8966@localhost.localdomain","subject":"Re: how exactly can git config section names contain periods?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2018-06-04T12:09:17Z","receivedAt":"2018-06-04T12:09:23Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sun, Jun 03, 2018 at 06:35:44AM -0400, Robert P. J. Day wrote:\n\n> > >   if (for some weird reason) i wanted to define a multi-level\n> > > subsection,\n> >\n> > You can't, there are no multi-level subsections, see above.\n> \n>   no, i *get* that, what i was asking was if i wanted to simulate or\n> emulate such a thing ... or is that just getting too weird and there\n> is no compelling reason to want to go down that road? (which i am\n> totally prepared to accept.)\n\nYou can do whatever you like with the subsection; its contents are\ngenerally dependent on the semantics of the key. E.g.,\nremote.<remotename>.*, branch.<branchname>.*. That's why Git tries to be\npermissive with the syntax.\n\nSo you are free to consider \"foo.a.b.c.key\" as some kind of multi-level\nhierarchy if that's useful to you. But you won't get any tool support\nfrom Git, and I don't think there is any compelling reason to use \".\"\nversus some other syntax (except that it perhaps looks better to the\nuser).\n\n-Peff\n"}]}