From: Junio C Hamano Date: Wed, 12 Dec 2007 20:18:46 GMT Subject: Re: [PATCH] Teach git-gui to split hunks Message-ID: <7vk5nj7jkp.fsf@gitster.siamese.dyndns.org> In-Reply-To: Johannes Schindelin writes: > When you select the context menu item "Split Hunk" in the diff area, > git-gui will now split the current hunk so that a new hunk starts at > the current position. > > For this to work, apply has to be called with --unidiff-zero, since > the new hunks can start or stop with a "-" or "+" line. > ... I still have conceptual problem with this whole thing. For example, what does that MEAN to split this hunk from your patch... > @@ -296,7 +369,7 @@ proc apply_hunk {x y} { > if {$current_diff_path eq {} || $current_diff_header eq {}} return > if {![lock_index apply_hunk]} return > > - set apply_cmd {apply --cached --whitespace=nowarn} > + set apply_cmd {apply --cached --whitespace=nowarn --unidiff-zero} > set mi [lindex $file_states($current_diff_path) 0] > if {$current_diff_side eq $ui_index} { > set failed_msg [mc "Failed to unstage selected hunk."] ... by clicking between the '-' and '+' lines, and apply only one half? Well, the question was not very well stated. I know what it means -- remove that old line, without replacing with the corrected/updated one. The real question is how would that be useful?