git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Proposal: sharing .git/config

From
Jeff King <peff@peff.net>
Date
Feb 19, 2013, 15:36 UTC
Message-ID
<20130219153600.GA5338@sigill.intra.peff.net>
In-Reply-To
<CACsJy8Ch70gZMkT7ScY3R-FNQU4QjtUe8UhoGRzE27cH9mu0HA@mail.gmail.com>
On Tue, Feb 19, 2013 at 05:34:43PM +0700, Nguyen Thai Ngoc Duy wrote:
Show 16 quoted lines
> On Tue, Feb 19, 2013 at 4:25 PM, Ramkumar Ramachandra
> <artagnon@gmail.com> wrote:
> > Hi,
> >
> > I have this itch where I want to share my remotes config between
> > machines.  In my fork, I should be able to specify where my upstream
> > sources are, so remotes get set up automatically when I clone.  There
> > are also other things in .git/config that would be nice to share, like
> > whether to do a --word-diff (why isn't it a configuration variable
> > yet?) on the repository.  The only problem is that I have no clue how
> > to implement this: I'm currently thinking a special remote ref?
> 
> If you check out the config file, then include.path should work. You
> could add include.ref to point to a ref, but you need to deal with the
> attached security implications. This has been proposed before (and
> turned down, I think).
Here's the patch:
  http://article.gmane.org/gmane.comp.version-control.git/189144
The basic argument against it is that you would _not_ want to do:
  $ git config include.ref origin/config

because it's unsafe (you immediately start using config fetched from the remote, before you even get a chance to inspect it). So the recommended way to use it is:

  $ git config include.ref config
  $ git show origin/config ;# make sure it looks reasonable
  $ git update-ref refs/config origin/config
  [time passes...]
  $ git fetch
  $ git diff config origin/config ;# inspect changes
  $ git update-ref refs/config origin/config
But it was pointed out that you could also just do:
  $ git config include.ref upstream-config
  $ git show origin/config ;# make sure it looks reasonable
  $ git show origin/config >.git/upstream-config

and so forth. There are some ways that a pure ref can be more convenient (e.g., if you are carrying local changes on top of the upstream config and want to merge), but ultimately, you can replicate any include.ref workflow with include.path by adding a "deploy" step where you copy the file into $GIT_DIR.

-Peff
Previous: Duy NguyenNext: Ramkumar Ramachandra
Message 6 of 11 in “Proposal: sharing .git/config”
  1. Ramkumar RamachandraFeb 19, 2013
  2. Thomas RastFeb 19, 2013
  3. Ramkumar RamachandraFeb 19, 2013
  4. Thomas RastFeb 19, 2013
  5. Duy NguyenFeb 19, 2013
  6. Jeff KingFeb 19, 2013
  7. Ramkumar RamachandraMar 11, 2013
  8. Jeff KingMar 12, 2013
  9. Ramkumar RamachandraMar 18, 2013
  10. Jeff KingMar 18, 2013
  11. Adam SpiersFeb 19, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.