{"thread":{"id":"4434","subject":"[PATCH 0/2] Introduce ~/.gitconfig","startedAt":"2006-06-08T11:30:29Z","lastAt":"2006-06-08T20:15:52Z","messageCount":11,"participants":["Johannes Schindelin","Sven Ekman","Nikolai Weibull","Jon Loeliger","Alex Riesen","Jakub Narebski"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"21418","messageId":"Pine.LNX.4.63.0606081329200.11910@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"4434","inReplyTo":null,"subject":"[PATCH 0/2] Introduce ~/.gitconfig","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-06-08T11:30:29Z","receivedAt":"2006-06-08T11:30:29Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"\nThese two patches introduce the long awaited global config. Thanks to \nPaksy for pushing and starting it.\n\nThe first patch only does the reading part, while the second introduces the\n--no-local flag to git-repo-config.\n\nThere are three subjects for discussion:\n\n- The name. I personally prefer .gitconfig, since we talk about the repo\n  config all the time. But I have no strong feelings there.\n\n- The --no-local flag could be implemented more cleanly, but also less\n  elegantly, by introducing git_config_set_multivar_in_file(). I hesitated\n  to do that, because there would be even more places replicating the\n  global / local path resolution.\n\n- With this, repo-config does no longer merit its name. What do people think\n  about making it a builtin named \"git config\"? (Of course, nothing hinders\n  us to keep the synonymous \"repo-config\" indefinitely...)\n\nCiao,\nDscho\n"},{"id":"21423","messageId":"20060608120216.46722.qmail@web25908.mail.ukl.yahoo.com","threadId":"4434","inReplyTo":"Pine.LNX.4.63.0606081329200.11910@wbgn013.biozentrum.uni-wuerzburg.de","subject":"SV: [PATCH 0/2] Introduce ~/.gitconfig","fromName":"Sven Ekman","fromEmail":"svekman@yahoo.se","sentAt":"2006-06-08T12:02:16Z","receivedAt":"2006-06-08T12:02:16Z","isPatch":true,"sender":{"key":"svekman@yahoo.se","avatar":null},"body":"<Johannes.Schindelin@gmx.de> skrev:\n \n> There are three subjects for discussion:\n\nHave you considered making ~/.gitconfig a directory?\nMaybe Git wants to store more data later.\n\nMaybe, porcelains would want to use this directory,\ntoo.  Gitk, tig, maybe Cogito at some time.  One could\nhave the configuration of all these git-related tools\nin a common namespace.\n\nPeople like me, who work on a lot of different\nmachines, could simply sync this directory across\naccounts and always work in their environment.\n\nSven\n"},{"id":"21424","messageId":"dbfc82860606080506y52dc2771sbf6c90e7246ca4c9@mail.gmail.com","threadId":"4434","inReplyTo":"20060608120216.46722.qmail@web25908.mail.ukl.yahoo.com","subject":"Re: [PATCH 0/2] Introduce ~/.gitconfig","fromName":"Nikolai Weibull","fromEmail":"now@bitwi.se","sentAt":"2006-06-08T12:06:18Z","receivedAt":"2006-06-08T12:06:18Z","isPatch":true,"sender":{"key":"now@bitwi.se","avatar":"https://gravatar.com/avatar/d9242f067845cf9a72be23e4213c3b6e53492178e5df97372088a441af846133?d=mp&s=160"},"body":"On 6/8/06, Sven Ekman <svekman@yahoo.se> wrote:\n> <Johannes.Schindelin@gmx.de> skrev:\n>\n> > There are three subjects for discussion:\n>\n> Have you considered making ~/.gitconfig a directory?\n> Maybe Git wants to store more data later.\n\nI second that.  And it'd be nice if it was configurable through\nan environment variable, e.g., GIT_USER_CONFIG_HOME.\nA better name may be possible ;-).\n\n  nikolai\n"},{"id":"21425","messageId":"Pine.LNX.4.63.0606081415380.26091@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"4434","inReplyTo":"dbfc82860606080506y52dc2771sbf6c90e7246ca4c9@mail.gmail.com","subject":"Re: [PATCH 0/2] Introduce ~/.gitconfig","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-06-08T12:21:55Z","receivedAt":"2006-06-08T12:21:55Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 8 Jun 2006, Nikolai Weibull wrote:\n\n> On 6/8/06, Sven Ekman <svekman@yahoo.se> wrote:\n> > <Johannes.Schindelin@gmx.de> skrev:\n> > \n> > > There are three subjects for discussion:\n> > \n> > Have you considered making ~/.gitconfig a directory?\n> > Maybe Git wants to store more data later.\n> \n> I second that.\n\nI don't. What's wrong with the simple approach of a single config file? \nYou can use a single tool for all the configuration, and do not need to \ncare about anything.\n\nAfter all, it is about _configuration_, not data storing. That is what \n$GIT_DIR/objects is for.\n\n> And it'd be nice if it was configurable through an environment variable, \n> e.g., GIT_USER_CONFIG_HOME.\n\n<sarcasm ignore=if-possible>\nLet's see. AFAIK all programs I know (including cvs and vim, for \none) have a fixed name. Hmm. Perhaps this is for a reason? Like, to reduce \nconfusion?\n\nAlternatively, we could introduce a config variable \"core.globalConfig\" to \nsee where the global config is.\n</sarcasm>\n\nCiao,\nDscho\n"},{"id":"21428","messageId":"dbfc82860606080613n5b5f6a5bs7a8f461a4188228c@mail.gmail.com","threadId":"4434","inReplyTo":"Pine.LNX.4.63.0606081415380.26091@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: [PATCH 0/2] Introduce ~/.gitconfig","fromName":"Nikolai Weibull","fromEmail":"now@bitwi.se","sentAt":"2006-06-08T13:13:56Z","receivedAt":"2006-06-08T13:13:56Z","isPatch":true,"sender":{"key":"now@bitwi.se","avatar":"https://gravatar.com/avatar/d9242f067845cf9a72be23e4213c3b6e53492178e5df97372088a441af846133?d=mp&s=160"},"body":"On 6/8/06, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> On Thu, 8 Jun 2006, Nikolai Weibull wrote:\n> > On 6/8/06, Sven Ekman <svekman@yahoo.se> wrote:\n> > > <Johannes.Schindelin@gmx.de> skrev:\n\n> > > Have you considered making ~/.gitconfig a directory?\n> > > Maybe Git wants to store more data later.\n\n> > I second that.\n\n> I don't. What's wrong with the simple approach of a single config file?\n> You can use a single tool for all the configuration, and do not need to\n> care about anything.\n\nWho said anything about something more than one configuration file?\nIt's nice to have a directory if we later decide to store other kinds of files\nthere as well, e.g., templates or some keyring information or something else,\nperhaps not well-suited for storing in an ini-like file.\n\n> > And it'd be nice if it was configurable through an environment variable,\n> > e.g., GIT_USER_CONFIG_HOME.\n\n> Let's see. AFAIK all programs I know (including cvs and vim, for\n> one) have a fixed name. Hmm. Perhaps this is for a reason? Like, to reduce\n> confusion?\n\nThat's hardly a very good reason.  It's not like you _have_ to use another name.\n\nI keep as many configuration files as possible in ~/.local/etc/, as it\nsimplifies\nkeeping them in a Git repository.  Here's an extract from my .zprofile:\n\nXDG_CONFIG_HOME=~/.local/etc\nVIMINIT=\"so $XDG_CONFIG_HOME/vim/vimrc\"\nINPUTRC=$XDG_CONFIG_HOME/inputrc\nINDENT_PROFILE=$XDG_CONFIG_HOME/indentrc\nSCREENRC=$XDG_CONFIG_HOME/screenrc\nGNUPGHOME=$XDG_CONFIG_HOME/gnupg\nIRBRC=$XDG_CONFIG_HOME/irbrc\nLFTP_HOME=$XDG_CONFIG_HOME/lftp\nMPLAYER_HOME=$XDG_CONFIG_HOME/mplayer\nGTK2_RC_FILES=$XDG_CONFIG_HOME/gtkrc\n\nThe only programs that don't play along, yet, are Mozilla, OpenSSH,\nand Subversion.  (Mozilla is actually compile-time configurable.)\n\nBut I guess I should be providing a patch instead of just a bunch of\nreasoning for someone else to write one...\n\n> Alternatively, we could introduce a config variable \"core.globalConfig\" to\n> see where the global config is.\n\nThat is a very good idea.  We wouldn't need an environment variable in\nthat case.\n\n  nikolai (who wonders if people can spot irony and sarcasm without extra help)\n"},{"id":"21429","messageId":"Pine.LNX.4.63.0606081532370.26823@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"4434","inReplyTo":"dbfc82860606080613n5b5f6a5bs7a8f461a4188228c@mail.gmail.com","subject":"Re: [PATCH 0/2] Introduce ~/.gitconfig","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-06-08T13:35:36Z","receivedAt":"2006-06-08T13:35:36Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 8 Jun 2006, Nikolai Weibull wrote:\n\n> Who said anything about something more than one configuration file? It's \n> nice to have a directory if we later decide to store other kinds of \n> files there as well, e.g., templates or some keyring information or \n> something else, perhaps not well-suited for storing in an ini-like file.\n\nMy point was: this has nothing to do with the \"git config\". Gitk, for \nexample, has its own file there, ~/.gitk.\n\n> > Alternatively, we could introduce a config variable \"core.globalConfig\" to\n> > see where the global config is.\n> \n> That is a very good idea.  We wouldn't need an environment variable in\n> that case.\n> \n>  nikolai (who wonders if people can spot irony and sarcasm without extra \n> help)\n\nNo they can't. You almost had me falling for it...\n\nCiao,\nDscho\n\nP.S.: I also wanted to mention that we could migrate all the config into \nan XML format. And maybe have an SQL backend instead of an object store.\n"},{"id":"21432","messageId":"1149775348.23938.236.camel@cashmere.sps.mot.com","threadId":"4434","inReplyTo":"Pine.LNX.4.63.0606081329200.11910@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: [PATCH 0/2] Introduce ~/.gitconfig","fromName":"Jon Loeliger","fromEmail":"jdl@freescale.com","sentAt":"2006-06-08T14:02:29Z","receivedAt":"2006-06-08T14:02:29Z","isPatch":true,"sender":{"key":"jdl@jdl.com","avatar":"https://gravatar.com/avatar/75ce9a10b151acd2c28ec4ab2136dba7b2ff1634530bd04b155981a749d08a64?d=mp&s=160"},"body":"On Thu, 2006-06-08 at 06:30, Johannes Schindelin wrote:\n\n> \n> - The name. I personally prefer .gitconfig, since we talk about the repo\n>   config all the time. But I have no strong feelings there.\n\nI like .gitconfig over .gitrc.\n\n> - The --no-local flag could be implemented more cleanly, but also less\n\nCould we have multiple levels, and have names that call out\nwhere it applies?  Perhaps something like:\n\n--repo   into $GIT_DIR/.gitconfig  <- current default, right?\n--home   into ~/.gitconfig\n--site   into /etc/gitconfig\n--share  into /usr/share/git/config\n\nMy issue is that --no-local is vague and doesn't call out\nwhere it actually does go.  There could be more than one\ndifferent non-local place.\n\n\n> - With this, repo-config does no longer merit its name. What do people think\n>   about making it a builtin named \"git config\"? (Of course, nothing hinders\n>   us to keep the synonymous \"repo-config\" indefinitely...)\n\nI have often forgotten the \"repo-\" part, and go looking\nfor the \"git config ...\" man page and command.  I think\nit should be \"git config\".\n\nPerhaps, \"git repo-config\"  would be \"git config --repo ....\"\nAnd \"git config ...\" would need an explict --home, --repo,\n--site type location flag from above?\n\n\nBut, hey, that's all pre-coffee.\n\njdl\n"},{"id":"21433","messageId":"81b0412b0606080749k25a306cetf44a50836998ae09@mail.gmail.com","threadId":"4434","inReplyTo":"1149775348.23938.236.camel@cashmere.sps.mot.com","subject":"Re: [PATCH 0/2] Introduce ~/.gitconfig","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2006-06-08T14:49:43Z","receivedAt":"2006-06-08T14:49:43Z","isPatch":true,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"On 6/8/06, Jon Loeliger <jdl@freescale.com> wrote:\n> --repo   into $GIT_DIR/.gitconfig  <- current default, right?\n> --home   into ~/.gitconfig\n> --site   into /etc/gitconfig\n> --share  into /usr/share/git/config\n\nBTW, if we go that far, maybe it makes more sense to\nimplement a way to include files other config files?\nSo repo-level config can (maybe implicitely) have an\n\"include ~/.gitconfig\" which in turn can \"include /etc/gitconfig\".\n\nWe could even do like C-preprocessor does: relative\npathnames can be searched in a defined set of directores.\n\nThat's all overengineered, probably. I never needed .git/config,\nexcept for switching exec-bit (which I'd like to have on per-site\nbasis, to be fair).\n"},{"id":"21434","messageId":"Pine.LNX.4.63.0606081711520.27335@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"4434","inReplyTo":"1149775348.23938.236.camel@cashmere.sps.mot.com","subject":"Re: [PATCH 0/2] Introduce ~/.gitconfig","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-06-08T15:19:33Z","receivedAt":"2006-06-08T15:19:33Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 8 Jun 2006, Jon Loeliger wrote:\n\n> On Thu, 2006-06-08 at 06:30, Johannes Schindelin wrote:\n> \n> > - The --no-local flag could be implemented more cleanly, but also less\n> \n> Could we have multiple levels, and have names that call out\n> where it applies?  Perhaps something like:\n> \n> --repo   into $GIT_DIR/.gitconfig  <- current default, right?\n> --home   into ~/.gitconfig\n> --site   into /etc/gitconfig\n> --share  into /usr/share/git/config\n> \n> My issue is that --no-local is vague and doesn't call out\n> where it actually does go.  There could be more than one\n> different non-local place.\n\nThe whole idea is that there are only two levels of configuration. Global \n(applies to all calls to git) and local (applies only to the repository).\n\nNow, it makes sense to make settings overrideable in a certain order: If \nthe global default does not match your needs in a particular case, \noverride it. With \"git-repo-config <key> <value>\".\n\n*However*, if you want to change the default, it makes sense to say \n\"--no-local\" or \"--global\", but I doubt that it makes any sense at all to \naccess a certain finer level. For example, when would you possibly need to \nwrap in porcelain a method to query exactly which aliases are defined in \n/usr/local/share/git/config?\n\nIOW if you want to edit /etc/gitconfig or something else you need admin \npermissions for with git-repo-config, you should look for another \nprofession. Quickly.\n\n> But, hey, that's all pre-coffee.\n\npost-coffee is pre-coffee.\n\nCiao,\nDscho\n"},{"id":"21445","messageId":"e69qev$nnl$1@sea.gmane.org","threadId":"4434","inReplyTo":"1149775348.23938.236.camel@cashmere.sps.mot.com","subject":"Re: [PATCH 0/2] Introduce ~/.gitconfig","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-06-08T18:32:03Z","receivedAt":"2006-06-08T18:32:03Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Jon Loeliger wrote:\n\n> On Thu, 2006-06-08 at 06:30, Johannes Schindelin wrote:\n\n>> - The --no-local flag [...]\n> \n> Could we have multiple levels, and have names that call out\n> where it applies?  Perhaps something like:\n> \n> --repo   into $GIT_DIR/.gitconfig  <- current default, right?\n> --home   into ~/.gitconfig\n> --site   into /etc/gitconfig\n> --share  into /usr/share/git/config\n\nI like that too, wlthough --home might be named --user, and --share be named\n--predefined or --library.\n\n-- \nJakub Narebski\nWarsaw, Poland\n"},{"id":"21449","messageId":"Pine.LNX.4.63.0606082212260.28323@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"4434","inReplyTo":"e69qev$nnl$1@sea.gmane.org","subject":"Re: [PATCH 0/2] Introduce ~/.gitconfig","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-06-08T20:15:52Z","receivedAt":"2006-06-08T20:15:52Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 8 Jun 2006, Jakub Narebski wrote:\n\n> Jon Loeliger wrote:\n> \n> > On Thu, 2006-06-08 at 06:30, Johannes Schindelin wrote:\n> \n> >> - The --no-local flag [...]\n> > \n> > Could we have multiple levels, and have names that call out\n> > where it applies?  Perhaps something like:\n> > \n> > --repo   into $GIT_DIR/.gitconfig  <- current default, right?\n> > --home   into ~/.gitconfig\n> > --site   into /etc/gitconfig\n> > --share  into /usr/share/git/config\n> \n> I like that too, wlthough --home might be named --user, and --share be \n> named --predefined or --library.\n\nI am rather disinclined for the --share or --predefined flags, as these \nwould only make sense for the administrator. And since this code was \npartly written by me, it eats small children.\n\nCiao,\nDscho\n"}]}