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

Re: Having Git follow symlinks

From
Johan Herland <johan@herland.net>
Date
Jan 28, 2014, 14:47 UTC
Message-ID
<CALKQrgf5o-ZcaeqXLm3P7RpK2yPcFd_HnG4ewwoEGESduyDSjQ@mail.gmail.com>
In-Reply-To
<alpine.DEB.2.02.1401281443330.17426@perkele.intern.softwolves.pp.se>
On Tue, Jan 28, 2014 at 2:49 PM, Peter Krefting <peter@softwolves.pp.se> wrote:
> Is there a (per-repo) setting to get Git to follow symlinks in the working
> directory, i.e., to not store the symlinks themselves but rather work on
> what they point to?
Not that I know of.
Show 10 quoted lines
> Background: I have a repository that stores a number of my dotfiles, shared
> between all my machines (Linux, OSX, Windows/CygWin, Solaris). It is
> currently a CVS repo that I wish to convert to Git since CVS is getting more
> and more scarce. However, I have the repo set up so that I check it out into
> a subdirectory of its own, and have symlinks (junctions on Windows) both
> coming into it (for files that live in ~) and out of it (for subdirectories
> of ~ that cannot be symlinks themselves, such as ~/.ssh, or that live
> elsewhere, such as under AppData on Windows or ~/Library on MacOS). CVS
> handles this by simply not knowing anything about symlinks, and I would like
> to get Git to do the same.

I believe a preferable way to manage dotfiles in Git, is to have a script that does the necessary setup/installation from the repo (that lives in some subdirectory of ~) and into ~. This script would be able to:

 - Set up whatever symlinks or copies are needed
 - Apply permission/mode bits that are not stored by Git
 - Properly handle various platform differences (symlinks vs. junctions, etc.)

As a bonus, you can run the script as a post-checkout hook, to have it automatically apply any updates you fetch/push into your dotfiles repo.

...Johan
-- 
Johan Herland, <johan@herland.net>
www.herland.net
Previous: Peter KreftingNext: Peter Krefting
Message 2 of 9 in “Having Git follow symlinks”
  1. Peter KreftingJan 28, 2014
  2. Johan HerlandJan 28, 2014
  3. Peter KreftingJan 30, 2014
  4. Christian CouderJan 30, 2014
  5. Matthieu MoyJan 30, 2014
  6. Peter KreftingJan 31, 2014
  7. Matthew RuffaloJan 31, 2014
  8. Junio C HamanoJan 31, 2014
  9. Matthieu MoyJan 31, 2014

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.