add --interactive: allow update
to stage deleted files
The scripted version of `git add -i` used `git update-index --add --remove`, but the built-in version implemented only the `--add` part. This fixes https://github.com/msys2/MSYS2-packages/issues/3066 Reported-by: Christoph Reiter <reiter.christoph@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3beff388b2
commit
4788e8b256
@ -665,8 +665,16 @@ static int run_update(struct add_i_state *s, const struct pathspec *ps,
|
|||||||
|
|
||||||
for (i = 0; i < files->items.nr; i++) {
|
for (i = 0; i < files->items.nr; i++) {
|
||||||
const char *name = files->items.items[i].string;
|
const char *name = files->items.items[i].string;
|
||||||
if (files->selected[i] &&
|
struct stat st;
|
||||||
add_file_to_index(s->r->index, name, 0) < 0) {
|
|
||||||
|
if (!files->selected[i])
|
||||||
|
continue;
|
||||||
|
if (lstat(name, &st) && is_missing_file_error(errno)) {
|
||||||
|
if (remove_file_from_index(s->r->index, name) < 0) {
|
||||||
|
res = error(_("could not stage '%s'"), name);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (add_file_to_index(s->r->index, name, 0) < 0) {
|
||||||
res = error(_("could not stage '%s'"), name);
|
res = error(_("could not stage '%s'"), name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -71,6 +71,15 @@ test_expect_success 'status works (commit)' '
|
|||||||
grep "+1/-0 *+2/-0 file" output
|
grep "+1/-0 *+2/-0 file" output
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'update can stage deletions' '
|
||||||
|
>to-delete &&
|
||||||
|
git add to-delete &&
|
||||||
|
rm to-delete &&
|
||||||
|
test_write_lines u t "" | git add -i &&
|
||||||
|
git ls-files to-delete >output &&
|
||||||
|
test_must_be_empty output
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'setup expected' '
|
test_expect_success 'setup expected' '
|
||||||
cat >expected <<-\EOF
|
cat >expected <<-\EOF
|
||||||
index 180b47c..b6f2c08 100644
|
index 180b47c..b6f2c08 100644
|
||||||
|
Loading…
x
Reference in New Issue
Block a user