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

Re: Unexpected empty directory removal

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 12, 2012, 18:32 UTC
Message-ID
<7vehrs6bt1.fsf@alter.siamese.dyndns.org>
In-Reply-To
<4F870C04.9060304@of-networks.co.uk>
Gary Wilson <gary.wilson@of-networks.co.uk> writes:
Show 12 quoted lines
> Use case to replicate:
>
> 1. Have path/files/a.file exists (and/or path/files/*) on client A and
> client B
> 2. Remove the physical files from the path/files/ directory on client A,
> so that the directory is empty
> 3. git commit
> 4. git pull on client B
> 5. On client A an empty path/files/ directory exists on client B it has
> been removed, meaning path/files/ no longer exists.
>
> Is this the expected behaviour?

As Git does not track directories at all, but merely uses directories as a means to instantiate files (which it tracks), when the last file is removed as the result of a merge in repository B, it notices that the directory is no longer needed to hold anything it cares about, and removes it.

If you ran "git rm path/files/a.file" in repository A to remove the last file in the directory may also remove the now-empty directory (I do not remember offhand if it does), which is also expected.

Previous: Gary WilsonNext: Gary Wilson
Message 2 of 3 in “Unexpected empty directory removal”
  1. Gary WilsonApr 12, 2012
  2. Junio C HamanoApr 12, 2012
  3. Gary WilsonApr 12, 2012

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.