summaryrefslogtreecommitdiff
path: root/fast-import.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-01-27 10:23:53 -0800
committerJunio C Hamano <gitster@pobox.com>2011-01-27 10:23:53 -0800
commit5ce3258122939f93a927c75d308c1c34038f0386 (patch)
treef4a60897502baeb1be16c81b4dafc08aa5c5bdac /fast-import.c
parent4ac5356c62d02b118c49cd85f88c7e6f65590400 (diff)
parent8fe533f686e20852fa9bd2df2755faed7c7bcdcc (diff)
downloadgit-5ce3258122939f93a927c75d308c1c34038f0386.tar.gz
Merge branch 'jn/fast-import-empty-tree-removal' into maint
* jn/fast-import-empty-tree-removal: fast-import: treat filemodify with empty tree as delete
Diffstat (limited to 'fast-import.c')
-rw-r--r--fast-import.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fast-import.c b/fast-import.c
index 613623be14..7563e43a39 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -2166,6 +2166,12 @@ static void file_change_m(struct branch *b)
p = uq.buf;
}
+ /* Git does not track empty, non-toplevel directories. */
+ if (S_ISDIR(mode) && !memcmp(sha1, EMPTY_TREE_SHA1_BIN, 20) && *p) {
+ tree_content_remove(&b->branch_tree, p, NULL);
+ return;
+ }
+
if (S_ISGITLINK(mode)) {
if (inline_data)
die("Git links cannot be specified 'inline': %s",