Code

add -p: do not attempt to coalesce mode changes
authorThomas Rast <trast@student.ethz.ch>
Sat, 15 Aug 2009 13:56:39 +0000 (15:56 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sat, 15 Aug 2009 17:36:59 +0000 (10:36 -0700)
commit3d792161b1c86632d5331bb30d6b7c6b17261f38
treed8f132560b20662e12e880713a5d2d7669eb332c
parent87ca2eaade70519e0f4509808f662c0bb1dbcadf
add -p: do not attempt to coalesce mode changes

In 0392513 (add-interactive: refactor mode hunk handling, 2009-04-16),
we merged the interaction loops for mode changes and hunk staging.
This was fine at the time, because 0beee4c (git-add--interactive:
remove hunk coalescing, 2008-07-02) removed hunk coalescing.

However, in 7a26e65 (Revert "git-add--interactive: remove hunk
coalescing", 2009-05-16), we resurrected it.  Since then, the code
would attempt in vain to merge mode changes with diff hunks,
corrupting both in the process.

We add a check to the coalescing loop to ensure it only looks at diff
hunks, thus skipping mode changes.

Noticed-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-add--interactive.perl
t/t3701-add-interactive.sh