Merge branch 'maint' to sync with 1.5.2.5

* maint:
  GIT 1.5.2.5
  git-add -u paths... now works from subdirectory
  Fix "git add -u" data corruption.
This commit is contained in:
Junio C Hamano
2007-08-15 21:38:38 -07:00
3 changed files with 92 additions and 20 deletions

View File

@ -102,6 +102,7 @@ static void update_callback(struct diff_queue_struct *q,
break;
case DIFF_STATUS_DELETED:
remove_file_from_cache(path);
cache_tree_invalidate_path(active_cache_tree, path);
if (verbose)
printf("remove '%s'\n", path);
break;
@ -109,12 +110,12 @@ static void update_callback(struct diff_queue_struct *q,
}
}
static void update(int verbose, const char **files)
static void update(int verbose, const char *prefix, const char **files)
{
struct rev_info rev;
init_revisions(&rev, "");
init_revisions(&rev, prefix);
setup_revisions(0, NULL, &rev, NULL);
rev.prune_data = get_pathspec(rev.prefix, files);
rev.prune_data = get_pathspec(prefix, files);
rev.diffopt.output_format = DIFF_FORMAT_CALLBACK;
rev.diffopt.format_callback = update_callback;
rev.diffopt.format_callback_data = &verbose;
@ -216,7 +217,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
}
if (take_worktree_changes) {
update(verbose, argv + i);
update(verbose, prefix, argv + i);
goto finish;
}