X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=read-tree.c;h=eaff4441963409ea058722ef08fcf181a34a0c96;hb=ec26b4d6b004b6529c79e995a543945076c683aa;hp=bb50a800d79dbfb7836b6cba1c62935d9a78577e;hpb=7bd1527d2d8c80a6e9a0f8583082a5aee5428c68;p=git.git diff --git a/read-tree.c b/read-tree.c index bb50a800..eaff4441 100644 --- a/read-tree.c +++ b/read-tree.c @@ -337,7 +337,7 @@ static void check_updates(struct cache_entry **src, int nr) if (ce->ce_flags & mask) { ce->ce_flags &= ~mask; if (update) - checkout_entry(ce, &state); + checkout_entry(ce, &state, NULL); } } if (total) { @@ -404,7 +404,7 @@ static void verify_uptodate(struct cache_entry *ce) return; if (!lstat(ce->name, &st)) { - unsigned changed = ce_match_stat(ce, &st); + unsigned changed = ce_match_stat(ce, &st, 1); if (!changed) return; errno = 0; @@ -560,9 +560,11 @@ static int threeway_merge(struct cache_entry **stages) */ if ((head_deleted && remote_deleted) || (head_deleted && remote && remote_match) || - (remote_deleted && head && head_match)) + (remote_deleted && head && head_match)) { + if (index) + return deleted_entry(index, index); return 0; - + } /* * Added in both, identically. */ @@ -704,7 +706,7 @@ static int read_cache_unmerged(void) return deleted; } -static const char read_tree_usage[] = "git-read-tree ( | -m [-u | -i] [ []])"; +static const char read_tree_usage[] = "git-read-tree ( | -m [--aggressive] [-u | -i] [ []])"; static struct cache_file cache_file; @@ -715,6 +717,7 @@ int main(int argc, char **argv) merge_fn_t fn = NULL; setup_git_directory(); + git_config(git_default_config); newfd = hold_index_file_for_update(&cache_file, get_index_file()); if (newfd < 0)