path: root/git-add--interactive.perl
diff options
authorJunio C Hamano <>2011-04-06 21:20:57 (GMT)
committerJunio C Hamano <>2011-04-29 22:27:59 (GMT)
commit933e44d3a040c41a1e45d53a416edd107cc3ae0a (patch)
tree984bda83451936aa1d75aff08ff8438e53826f2d /git-add--interactive.perl
parent9dce832354502a04e724c5776e60fc6189182307 (diff)
"add -p": work-around an old laziness that does not coalesce hunks
Since 0beee4c (git-add--interactive: remove hunk coalescing, 2008-07-02), "git add--interactive" behaves lazily and passes overlapping hunks to the underlying "git apply" without coalescing. This was partially corrected by 7a26e65 (its partial revert, 2009-05-16), but overlapping hunks are still passed when the patch is edited. Teach "git apply" the --allow-overlap option that disables a safety feature that avoids misapplication of patches by not applying patches to overlapping hunks, and pass this option form "add -p" codepath. Do not even advertise the option, as this is merely a workaround, and the correct fix is to make "add -p" correctly coalesce adjacent patch hunks. Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'git-add--interactive.perl')
1 files changed, 1 insertions, 1 deletions
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index fced0ce..4f08fe7 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -705,7 +705,7 @@ sub add_untracked_cmd {
sub run_git_apply {
my $cmd = shift;
my $fh;
- open $fh, '| git ' . $cmd . " --recount";
+ open $fh, '| git ' . $cmd . " --recount --allow-overlap";
print $fh @_;
return close $fh;