[BUG] git merge does not prune empty directories
From: Anders Melchiorsen <hidden>
Date: 2016-06-15 22:45:24
I got an empty directory left over today, and have reduced the problem
to this sequence. If I leave out the second add (so the merge is a
fast forward), the directory is removed as I would expect.
This is with Git 1.6.0.2.
Anders
and@dylle:~$ mkdir repo ; cd repo
and@dylle:~/repo$ git init
Initialized empty Git repository in /home/and/repo/.git/
and@dylle:~/repo$ mkdir a ; date >a/b ; git add a/b ; git commit -m'Add 1'
Created initial commit 72194c7: Add 1
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 a/b
and@dylle:~/repo$ git checkout -b other
Switched to a new branch "other"
and@dylle:~/repo$ git rm a/b ; git commit -m'Remove 1'
rm 'a/b'
Created commit 9c0282c: Remove 1
1 files changed, 0 insertions(+), 1 deletions(-)
delete mode 100644 a/b
and@dylle:~/repo$ git checkout master
Switched to branch "master"
and@dylle:~/repo$ date >c ; git add c ; git commit -m'Add 2'
Created commit 39d60d4: Add 2
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 c
and@dylle:~/repo$ git merge other
Removed a/b
Merge made by recursive.
a/b | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
delete mode 100644 a/b
and@dylle:~/repo$ rmdir a
and@dylle:~/repo$ rmdir a
rmdir: failed to remove `a': No such file or directory