diff options
author | Vicent Martà <vicent@github.com> | 2013-03-04 16:19:38 -0800 |
---|---|---|
committer | Vicent Martà <vicent@github.com> | 2013-03-04 16:19:38 -0800 |
commit | b8daa9e0fc9669f0677105b5ecce5c67462a108e (patch) | |
tree | 9e9734e256ca95665fc0bc383586fd7bae300490 /src/tree.c | |
parent | f6d96409a84f0b4c854da830027ff26bb10e27c3 (diff) | |
parent | cb53669e14f9a29b797d108c50d04566f82ab58f (diff) | |
download | libgit2-b8daa9e0fc9669f0677105b5ecce5c67462a108e.tar.gz |
Merge pull request #1380 from phkelley/index_icase
Disable ignore_case when writing the index to a tree
Diffstat (limited to 'src/tree.c')
-rw-r--r-- | src/tree.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/tree.c b/src/tree.c index ec57e8bb8..11123a18a 100644 --- a/src/tree.c +++ b/src/tree.c @@ -566,6 +566,7 @@ int git_tree__write_index( git_oid *oid, git_index *index, git_repository *repo) { int ret; + bool old_ignore_case = false; assert(oid && index && repo); @@ -580,8 +581,21 @@ int git_tree__write_index( return 0; } - /* The tree cache didn't help us */ + /* The tree cache didn't help us; we'll have to write + * out a tree. If the index is ignore_case, we must + * make it case-sensitive for the duration of the tree-write + * operation. */ + + if (index->ignore_case) { + old_ignore_case = true; + git_index__set_ignore_case(index, false); + } + ret = write_tree(oid, repo, index, "", 0); + + if (old_ignore_case) + git_index__set_ignore_case(index, true); + return ret < 0 ? ret : 0; } |