Subject: Strange effect merging empty file

From: Ralf Nyren <[email-masked]>
Date: Wed, 21 Mar 2012 11:28:12 +0100

Hi,

I found a "strange effect" when merging from a branch containing a 
change of a previously empty file. The change is added to another empty 
file in the current branch by the merge.

I guess git sees it as a renamed file which is logical from a 
content-perspective.

Not sure what to do with this, I would not say it is a bug really...

Reproduce as follows (should be cut-n-paste friendly):

# Start with a new repository
git init
echo 'Readme file' > README
git add README
git commit -m 'Initial commit'

# Setup the branch to be merged
git checkout -b import
touch empty.txt
echo hello world > hello.txt
git add empty.txt hello.txt
git commit -m 'Import 1.0'
git tag IMPORT_1.0
echo This file is no longer empty > empty.txt
git commit -m 'Import 1.1' empty.txt
git tag IMPORT_1.1

# Setup master branch
git checkout master
mkdir static
touch static/.gitignore
git add static/.gitignore
git commit -m 'Static web content'

# Merge import 1.0 and remove the empty file
git merge IMPORT_1.0
git rm empty.txt
git commit -m 'Remove empty file' empty.txt

# Merge import 1.1 and watch empty.txt contents show up in .gitignore
git merge IMPORT_1.1
cat static/.gitignore

regards, Ralf