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.