Skip to content

Commit

Permalink
Support case folding in git fast-import when core.ignorecase=true
Browse files Browse the repository at this point in the history
When core.ignorecase=true, imported file paths will be folded to match
existing directory case.

Signed-off-by: Joshua Jensen <jjensen@workspacewhiz.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Joshua Jensen authored and Junio C Hamano committed Oct 6, 2010
1 parent dc1ae70 commit 50906e0
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions fast-import.c
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ Format of STDIN stream:
#include "csum-file.h"
#include "quote.h"
#include "exec_cmd.h"
#include "dir.h"

#define PACK_ID_BITS 16
#define MAX_PACK_ID ((1<<PACK_ID_BITS)-1)
Expand Down Expand Up @@ -1461,7 +1462,7 @@ static int tree_content_set(

for (i = 0; i < t->entry_count; i++) {
e = t->entries[i];
if (e->name->str_len == n && !strncmp(p, e->name->str_dat, n)) {
if (e->name->str_len == n && !strncmp_icase(p, e->name->str_dat, n)) {
if (!slash1) {
if (!S_ISDIR(mode)
&& e->versions[1].mode == mode
Expand Down Expand Up @@ -1527,7 +1528,7 @@ static int tree_content_remove(

for (i = 0; i < t->entry_count; i++) {
e = t->entries[i];
if (e->name->str_len == n && !strncmp(p, e->name->str_dat, n)) {
if (e->name->str_len == n && !strncmp_icase(p, e->name->str_dat, n)) {
if (!slash1 || !S_ISDIR(e->versions[1].mode))
goto del_entry;
if (!e->tree)
Expand Down Expand Up @@ -1577,7 +1578,7 @@ static int tree_content_get(

for (i = 0; i < t->entry_count; i++) {
e = t->entries[i];
if (e->name->str_len == n && !strncmp(p, e->name->str_dat, n)) {
if (e->name->str_len == n && !strncmp_icase(p, e->name->str_dat, n)) {
if (!slash1) {
memcpy(leaf, e, sizeof(*leaf));
if (e->tree && is_null_sha1(e->versions[1].sha1))
Expand Down

0 comments on commit 50906e0

Please sign in to comment.