Re: [PATCH] Teach git-gui to split hunks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, 26 Jul 2007, Shawn O. Pearce wrote:

> [talk about the --unidiff-zero stuff]
> 
> Yea, there's context there.  Junio and I talked about this patch on #git 
> a few minutes ago.  I really appreciate that Dscho wrote it, especially 
> given that he hasn't really been into Tcl hacking for Git much before.

Heh.  I did my share of Tcl hacking.  In one (closed source) project, I 
was in constant awe why the devs chose Tcl as a scripting language, but Qt 
as windowing library (back when it was pretty expensive for a startup to 
use Qt).

> But I'd really like to save/create context, like `git add -i` does, so 
> that we don't have to use --unidiff-zero here.

See below.

> It won't matter if git-apply rejected overlapping context in this case.  
> git-gui will only ever feed one hunk at a time to git-apply. And if 
> things get really f'd in the diff buffer the user can easily regenerate 
> it (right click, Refresh).

But you're right, the other hunk headers should be updated.  I'll have a 
look at it this weekend.

> Right now git-gui's apply doesn't correctly update the other hunk 
> headers when you apply a hunk.  I've seen git-apply fail on some hunks 
> just for this reason.  Refreshing the diff (so git recomputes the 
> headers) works around the issue.  So I'm a little worried about using 
> --unidiff-zero here.

Okay, but just using more context means that you also have to _update_ the 
context of another hunk.  Imagine this:

--- a/x
+++ a/x
 one line
-a removed one
+an added one
 another line

Now you split between the "-" and "+" line.  If you stage the first hunk, 
not only do you have to update the hunk header of the second hunk (now the 
only one shown), which you already hinted should be done; you _also_ have 
to update the context in the second hunk, since it changed.

This is just tricky enough that I am tempted to have a go at it.  Not 
today, though, since I have other work to do, and the issues are easier to 
work around for the moment than to work around the lack of "Split Hunk" 
for me.

BTW did you think about any kind of integrity checking, i.e. see if the 
files involved still have the same hashes as when the diff was generated?  
It _is_ possible to use git-gui _and_ the command line...

Ciao,
Dscho

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux