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
							parent
							
								
									c965c02933
								
							
						
					
					
						commit
						9a7a1e03d5
					
				|  | @ -245,6 +245,7 @@ patch:: | ||||||
|  |  | ||||||
|        y - stage this hunk |        y - stage this hunk | ||||||
|        n - do not 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 |        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 |        d - do not stage this hunk nor any of the remaining hunks in the file | ||||||
|        j - leave this hunk undecided, see next undecided hunk |        j - leave this hunk undecided, see next undecided hunk | ||||||
|  |  | ||||||
|  | @ -894,6 +894,7 @@ sub help_patch_cmd { | ||||||
| 	print colored $help_color, <<\EOF ; | 	print colored $help_color, <<\EOF ; | ||||||
| y - stage this hunk | y - stage this hunk | ||||||
| n - do not 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 | 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 | d - do not stage this hunk nor any of the remaining hunks in the file | ||||||
| g - select a hunk to go to | g - select a hunk to go to | ||||||
|  | @ -930,7 +931,7 @@ sub patch_update_cmd { | ||||||
| 					@mods); | 					@mods); | ||||||
| 	} | 	} | ||||||
| 	for (@them) { | 	for (@them) { | ||||||
| 		patch_update_file($_->{VALUE}); | 		return 0 if patch_update_file($_->{VALUE}); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -976,6 +977,7 @@ sub display_hunks { | ||||||
| } | } | ||||||
|  |  | ||||||
| sub patch_update_file { | sub patch_update_file { | ||||||
|  | 	my $quit = 0; | ||||||
| 	my ($ix, $num); | 	my ($ix, $num); | ||||||
| 	my $path = shift; | 	my $path = shift; | ||||||
| 	my ($head, @hunk) = parse_diff($path); | 	my ($head, @hunk) = parse_diff($path); | ||||||
|  | @ -1006,6 +1008,11 @@ sub patch_update_file { | ||||||
| 				$_->{USE} = 0 foreach ($mode, @hunk); | 				$_->{USE} = 0 foreach ($mode, @hunk); | ||||||
| 				last; | 				last; | ||||||
| 			} | 			} | ||||||
|  | 			elsif ($line =~ /^q/i) { | ||||||
|  | 				$_->{USE} = 0 foreach ($mode, @hunk); | ||||||
|  | 				$quit = 1; | ||||||
|  | 				last; | ||||||
|  | 			} | ||||||
| 			else { | 			else { | ||||||
| 				help_patch_cmd(''); | 				help_patch_cmd(''); | ||||||
| 				next; | 				next; | ||||||
|  | @ -1113,6 +1120,16 @@ sub patch_update_file { | ||||||
| 				} | 				} | ||||||
| 				next; | 				next; | ||||||
| 			} | 			} | ||||||
|  | 			elsif ($line =~ /^q/i) { | ||||||
|  | 				while ($ix < $num) { | ||||||
|  | 					if (!defined $hunk[$ix]{USE}) { | ||||||
|  | 						$hunk[$ix]{USE} = 0; | ||||||
|  | 					} | ||||||
|  | 					$ix++; | ||||||
|  | 				} | ||||||
|  | 				$quit = 1; | ||||||
|  | 				next; | ||||||
|  | 			} | ||||||
| 			elsif ($line =~ m|^/(.*)|) { | 			elsif ($line =~ m|^/(.*)|) { | ||||||
| 				my $regex = $1; | 				my $regex = $1; | ||||||
| 				if ($1 eq "") { | 				if ($1 eq "") { | ||||||
|  | @ -1239,6 +1256,7 @@ sub patch_update_file { | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	print "\n"; | 	print "\n"; | ||||||
|  | 	return $quit; | ||||||
| } | } | ||||||
|  |  | ||||||
| sub diff_cmd { | sub diff_cmd { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Matthieu Moy
						Matthieu Moy