Re: [PATCH] git-add--interactive: print message if there are no untracked files
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:03:38
Alexander Kuleshov [off-list ref] writes:
If user selects 'add untracked' and there are no untracked files, "Add untracked>>" opens. But it does not make sense in this case, because there are no untracked files. So let's print message and exit from "add untracked" mode.
That reasoning makes perfect sense.
quoted hunk
Signed-off-by: Alexander Kuleshov <redacted> --- git-add--interactive.perl | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 94b988c..1a6dcf3 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl@@ -724,11 +724,15 @@ sub revert_cmd { } sub add_untracked_cmd { - my @add = list_and_choose({ PROMPT => 'Add untracked' }, - list_untracked()); - if (@add) { - system(qw(git update-index --add --), @add); - say_n_paths('added', @add); + if (system(qw(git ls-files --others --exclude-standard --))) {
But this ls-files invocation that knows too much about how
list_untracked() computes things does not.
Why not
my @add = list_untracked();
if (@add) {
@add = list_and_choose({...}, @add);
}
if (!@add) {
Nothing to do;
} else {
Run update-index
}
or something instead?
+ my @add = list_and_choose({ PROMPT => 'Add untracked' },
+ list_untracked());
+ if (@add) {
+ system(qw(git update-index --add --), @add);
+ say_n_paths('added', @add);
+ }
+ } else {
+ print "No untracked files.\n";
}
print "\n";
}