Merge branch 'js/builtin-add-i-cmds' into maint
Minor bugfixes to "git add -i" that has recently been rewritten in C. * js/builtin-add-i-cmds: built-in add -i: accept open-ended ranges again built-in add -i: do not try to `patch`/`diff` an empty list of files
This commit is contained in:
commit
f0c344ce57
@ -326,7 +326,10 @@ static ssize_t list_and_choose(struct add_i_state *s,
|
||||
if (endp == p + sep)
|
||||
to = from + 1;
|
||||
else if (*endp == '-') {
|
||||
to = strtoul(++endp, &endp, 10);
|
||||
if (isdigit(*(++endp)))
|
||||
to = strtoul(endp, &endp, 10);
|
||||
else
|
||||
to = items->items.nr;
|
||||
/* extra characters after the range? */
|
||||
if (endp != p + sep)
|
||||
from = -1;
|
||||
@ -913,7 +916,7 @@ static int run_patch(struct add_i_state *s, const struct pathspec *ps,
|
||||
|
||||
opts->prompt = N_("Patch update");
|
||||
count = list_and_choose(s, files, opts);
|
||||
if (count >= 0) {
|
||||
if (count > 0) {
|
||||
struct argv_array args = ARGV_ARRAY_INIT;
|
||||
struct pathspec ps_selected = { 0 };
|
||||
|
||||
@ -954,7 +957,7 @@ static int run_diff(struct add_i_state *s, const struct pathspec *ps,
|
||||
opts->flags = IMMEDIATE;
|
||||
count = list_and_choose(s, files, opts);
|
||||
opts->flags = 0;
|
||||
if (count >= 0) {
|
||||
if (count > 0) {
|
||||
struct argv_array args = ARGV_ARRAY_INIT;
|
||||
|
||||
argv_array_pushl(&args, "git", "diff", "-p", "--cached",
|
||||
|
@ -68,6 +68,15 @@ test_expect_success 'revert works (initial)' '
|
||||
! grep . output
|
||||
'
|
||||
|
||||
test_expect_success 'add untracked (multiple)' '
|
||||
test_when_finished "git reset && rm [1-9]" &&
|
||||
touch $(test_seq 9) &&
|
||||
test_write_lines a "2-5 8-" | git add -i -- [1-9] &&
|
||||
test_write_lines 2 3 4 5 8 9 >expected &&
|
||||
git ls-files [1-9] >output &&
|
||||
test_cmp expected output
|
||||
'
|
||||
|
||||
test_expect_success 'setup (commit)' '
|
||||
echo baseline >file &&
|
||||
git add file &&
|
||||
|
Loading…
Reference in New Issue
Block a user