Browse Source

git add -p: new "quit" command at the prompt.

There's already 'd' to stop staging hunks in a file, but no explicit
command to stop the interactive staging (for the current files and the
remaining ones).  Of course you can do 'd' and then ^C, but it would be
more intuitive to allow 'quit' action.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Matthieu Moy 16 years ago committed by Junio C Hamano
parent
commit
9a7a1e03d5
  1. 1
      Documentation/git-add.txt
  2. 20
      git-add--interactive.perl

1
Documentation/git-add.txt

@ -245,6 +245,7 @@ patch:: @@ -245,6 +245,7 @@ patch::

y - stage this hunk
n - do not stage this hunk
q - quite, do not stage this hunk nor any of the remaining ones
a - stage this and all the remaining hunks in the file
d - do not stage this hunk nor any of the remaining hunks in the file
j - leave this hunk undecided, see next undecided hunk

20
git-add--interactive.perl

@ -894,6 +894,7 @@ sub help_patch_cmd { @@ -894,6 +894,7 @@ sub help_patch_cmd {
print colored $help_color, <<\EOF ;
y - stage this hunk
n - do not stage this hunk
q - quit, do not stage this hunk nor any of the remaining ones
a - stage this and all the remaining hunks in the file
d - do not stage this hunk nor any of the remaining hunks in the file
g - select a hunk to go to
@ -930,7 +931,7 @@ sub patch_update_cmd { @@ -930,7 +931,7 @@ sub patch_update_cmd {
@mods);
}
for (@them) {
patch_update_file($_->{VALUE});
return 0 if patch_update_file($_->{VALUE});
}
}

@ -976,6 +977,7 @@ sub display_hunks { @@ -976,6 +977,7 @@ sub display_hunks {
}

sub patch_update_file {
my $quit = 0;
my ($ix, $num);
my $path = shift;
my ($head, @hunk) = parse_diff($path);
@ -1006,6 +1008,11 @@ sub patch_update_file { @@ -1006,6 +1008,11 @@ sub patch_update_file {
$_->{USE} = 0 foreach ($mode, @hunk);
last;
}
elsif ($line =~ /^q/i) {
$_->{USE} = 0 foreach ($mode, @hunk);
$quit = 1;
last;
}
else {
help_patch_cmd('');
next;
@ -1113,6 +1120,16 @@ sub patch_update_file { @@ -1113,6 +1120,16 @@ sub patch_update_file {
}
next;
}
elsif ($line =~ /^q/i) {
while ($ix < $num) {
if (!defined $hunk[$ix]{USE}) {
$hunk[$ix]{USE} = 0;
}
$ix++;
}
$quit = 1;
next;
}
elsif ($line =~ m|^/(.*)|) {
my $regex = $1;
if ($1 eq "") {
@ -1239,6 +1256,7 @@ sub patch_update_file { @@ -1239,6 +1256,7 @@ sub patch_update_file {
}

print "\n";
return $quit;
}

sub diff_cmd {

Loading…
Cancel
Save