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

Re: git: "git stash" changes owners and permissions

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Apr 6, 2011, 22:12 UTC
Message-ID
<20110406221205.GB2894@elie>
In-Reply-To
<7voc4jgig7.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
> How does this "rsync" solve "the wrong order" and "creates windows"
> problems?  It will update the paths in the order rsync happens to discover
> and there is a wondow between the time the first path is updated and the
> whole directory gets finally in sync.

All true. It's a little better than "git checkout" because rsync will stage files and then rename them into place rather than leaving a window with files unlinked[1], but it is not much better.

In fact the rsync was a misleading placeholder. What I really meant to convey is that this is not something "git checkout" and "git reset --hard" are designed to do, and that when this much control is needed, it can be easier to update files out-of-band.

Show 5 quoted lines
> If you truly want an atomicity, you can make /etc/interesting-subdir a
> symbolic link that points to either interesting-subdir-{0,1}, do the above
> procedure of yours against interesting-subdir-0 (or 1) that is currently
> not pointed by the symbolic link, and when everything in that one is Ok,
> atomically switch the symbolic link to point at it.
True.  Though in practice, a little race might be considered ok. :)

Thanks for clarifying. Jonathan

[1] rsync with --files-from can update files in a specific order, which might be appropriate in some cases.

Previous: Junio C Hamano
Message 3 of 3 in “Re: git: "git stash" changes owners and permissions”
  1. Jonathan NiederApr 6, 2011
  2. Junio C HamanoApr 6, 2011
  3. Jonathan NiederApr 6, 2011

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.