* [PATCH] gitk: Add "First parent" checkbox
@ 2010-11-08 10:42 Stefan Haller
2010-11-08 17:24 ` Jonathan Nieder
2010-12-12 4:27 ` Paul Mackerras
0 siblings, 2 replies; 11+ messages in thread
From: Stefan Haller @ 2010-11-08 10:42 UTC (permalink / raw)
To: Paul Mackerras; +Cc: git
Sometimes it's desirable to see what changes were introduced by a
merge commit, rather than how conflicts were resolved. This adds
a checkbox which, when turned on, makes gitk show the equivalent
of "git show --first-parent <commit>" for merge commits.
Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
---
I realize this conflicts with Thomas Rast's recent patch to
add a word-diff dropdown box; things are fighting for space
in the diff pane header...
gitk | 24 +++++++++++++++++++++---
1 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/gitk b/gitk
index 45e3380..db0f022 100755
--- a/gitk
+++ b/gitk
@@ -2245,6 +2245,9 @@ proc makewindow {} {
${NS}::checkbutton .bleft.mid.ignspace -text [mc "Ignore space change"] \
-command changeignorespace -variable ignorespace
pack .bleft.mid.ignspace -side left -padx 5
+ ${NS}::checkbutton .bleft.mid.firstparent -text [mc "First parent"] \
+ -command changefirstparent -variable firstparent
+ pack .bleft.mid.firstparent -side left -padx 5
set ctext .bleft.bottom.ctext
text $ctext -background $bgcolor -foreground $fgcolor \
-state disabled -font textfont \
@@ -6872,6 +6875,7 @@ proc selectline {l isnew {desired_loc {}}} {
global cmitmode showneartags allcommits
global targetrow targetid lastscrollrows
global autoselect jump_to_here
+ global firstparent
catch {unset pending_select}
$canv delete hover
@@ -7013,7 +7017,7 @@ proc selectline {l isnew {desired_loc {}}} {
init_flist [mc "Comments"]
if {$cmitmode eq "tree"} {
gettree $id
- } elseif {[llength $olds] <= 1} {
+ } elseif {[llength $olds] <= 1 || $firstparent} {
startdiff $id
} else {
mergediff $id
@@ -7416,7 +7420,7 @@ proc diffcmd {ids flags} {
proc gettreediffs {ids} {
global treediff treepending
- if {[catch {set gdtf [open [diffcmd $ids {--no-commit-id}] r]}]} return
+ if {[catch {set gdtf [open [diffcmd $ids {--no-commit-id -m --first-parent}] r]}]} return
set treepending $ids
set treediff {}
@@ -7504,11 +7508,19 @@ proc changeignorespace {} {
reselectline
}
+proc changefirstparent {} {
+ global treediffs
+ catch {unset treediffs}
+
+ reselectline
+}
+
proc getblobdiffs {ids} {
global blobdifffd diffids env
global diffinhdr treediffs
global diffcontext
global ignorespace
+ global firstparent
global limitdiffs vfilelimit curview
global diffencoding targetline diffnparents
global git_version currdiffsubmod
@@ -7521,10 +7533,15 @@ proc getblobdiffs {ids} {
if {[package vcompare $git_version "1.6.6"] >= 0} {
set submodule "--submodule"
}
- set cmd [diffcmd $ids "-p $textconv $submodule -C --cc --no-commit-id -U$diffcontext"]
+ set cmd [diffcmd $ids "-p $textconv $submodule -C --no-commit-id -U$diffcontext"]
if {$ignorespace} {
append cmd " -w"
}
+ if {$firstparent} {
+ append cmd " -m --first-parent"
+ } else {
+ append cmd " --cc"
+ }
if {$limitdiffs && $vfilelimit($curview) ne {}} {
set cmd [concat $cmd -- $vfilelimit($curview)]
}
@@ -11393,6 +11410,7 @@ if {[tk windowingsystem] eq "win32"} {
set diffcolors {red "#00a000" blue}
set diffcontext 3
set ignorespace 0
+set firstparent 0
set markbgcolor "#e0e0ff"
set circlecolors {white blue gray blue blue}
--
1.7.3.2.153.g8250e
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] gitk: Add "First parent" checkbox
2010-11-08 10:42 [PATCH] gitk: Add "First parent" checkbox Stefan Haller
@ 2010-11-08 17:24 ` Jonathan Nieder
2010-11-08 19:40 ` Stefan Haller
2010-12-12 4:27 ` Paul Mackerras
1 sibling, 1 reply; 11+ messages in thread
From: Jonathan Nieder @ 2010-11-08 17:24 UTC (permalink / raw)
To: Stefan Haller; +Cc: Paul Mackerras, git
Stefan Haller wrote:
> Sometimes it's desirable to see what changes were introduced by a
> merge commit, rather than how conflicts were resolved. This adds
> a checkbox which, when turned on, makes gitk show the equivalent
> of "git show --first-parent <commit>" for merge commits.
To be clear: this is a diff option (like -m but limited to one
parent), not a history traversal option, right?
> I realize this conflicts with Thomas Rast's recent patch to
> add a word-diff dropdown box; things are fighting for space
> in the diff pane header...
Any ideas for addressing the space shortage?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] gitk: Add "First parent" checkbox
2010-11-08 17:24 ` Jonathan Nieder
@ 2010-11-08 19:40 ` Stefan Haller
2010-11-08 19:48 ` Jonathan Nieder
0 siblings, 1 reply; 11+ messages in thread
From: Stefan Haller @ 2010-11-08 19:40 UTC (permalink / raw)
To: Jonathan Nieder; +Cc: Paul Mackerras, git
Jonathan Nieder <jrnieder@gmail.com> wrote:
> Stefan Haller wrote:
>
> > Sometimes it's desirable to see what changes were introduced by a
> > merge commit, rather than how conflicts were resolved. This adds
> > a checkbox which, when turned on, makes gitk show the equivalent
> > of "git show --first-parent <commit>" for merge commits.
>
> To be clear: this is a diff option (like -m but limited to one
> parent), not a history traversal option, right?
Yes, that's right. There is an existing history traversal option called
"Limit to first parent" in the "Edit View" dialog, which can be
controlled with the --first-parent command line option. Do you think
this will cause confusion?
> > I realize this conflicts with Thomas Rast's recent patch to
> > add a word-diff dropdown box; things are fighting for space
> > in the diff pane header...
>
> Any ideas for addressing the space shortage?
Matthieu made the suggestion of "line-wrapping" the widgets in the diff
pane header if it becomes too narrow. I guess this could work; I don't
know enough Tcl/Tk to be able to try it out though.
--
Stefan Haller
Berlin, Germany
http://www.haller-berlin.de/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] gitk: Add "First parent" checkbox
2010-11-08 19:40 ` Stefan Haller
@ 2010-11-08 19:48 ` Jonathan Nieder
2010-11-08 20:23 ` Stefan Haller
0 siblings, 1 reply; 11+ messages in thread
From: Jonathan Nieder @ 2010-11-08 19:48 UTC (permalink / raw)
To: Stefan Haller; +Cc: Paul Mackerras, git, Pat Thoyts, Thomas Rast
Stefan Haller wrote:
>> Stefan Haller wrote:
>>> I realize this conflicts with Thomas Rast's recent patch to
>>> add a word-diff dropdown box; things are fighting for space
>>> in the diff pane header...
[...]
> Matthieu made the suggestion of "line-wrapping" the widgets in the diff
> pane header if it becomes too narrow. I guess this could work; I don't
> know enough Tcl/Tk to be able to try it out though.
Hmm. I don't like where this method tends in the limit.
Maybe we need a notion of a "diff view", for setting up various
diff-tree options (word diff, whitespace options, context lines,
patience, diffstat, first-parent)? The diff pane could then provide a
drop-down box for diff views already set up.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] gitk: Add "First parent" checkbox
2010-11-08 19:48 ` Jonathan Nieder
@ 2010-11-08 20:23 ` Stefan Haller
2010-11-08 21:11 ` Jonathan Nieder
0 siblings, 1 reply; 11+ messages in thread
From: Stefan Haller @ 2010-11-08 20:23 UTC (permalink / raw)
To: Jonathan Nieder; +Cc: Paul Mackerras, git, Pat Thoyts, Thomas Rast
Jonathan Nieder <jrnieder@gmail.com> wrote:
> Stefan Haller wrote:
>
> > Matthieu made the suggestion of "line-wrapping" the widgets in the diff
> > pane header if it becomes too narrow.
>
> Hmm. I don't like where this method tends in the limit.
>
> Maybe we need a notion of a "diff view", for setting up various
> diff-tree options (word diff, whitespace options, context lines,
> patience, diffstat, first-parent)? The diff pane could then provide a
> drop-down box for diff views already set up.
I don't think I would like this. Most of the diff related options are
ones that I want to toggle with one click. That's certainly true for
"Ignore space change", "First parent", and the "Diff/Old Version/New
Version" radio buttons. I would hate to see any of them be removed from
the diff pane.
--
Stefan Haller
Berlin, Germany
http://www.haller-berlin.de/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] gitk: Add "First parent" checkbox
2010-11-08 20:23 ` Stefan Haller
@ 2010-11-08 21:11 ` Jonathan Nieder
2010-11-10 7:17 ` Stefan Haller
0 siblings, 1 reply; 11+ messages in thread
From: Jonathan Nieder @ 2010-11-08 21:11 UTC (permalink / raw)
To: Stefan Haller; +Cc: Paul Mackerras, git, Pat Thoyts, Thomas Rast
Stefan Haller wrote:
> Most of the diff related options are
> ones that I want to toggle with one click. That's certainly true for
> "Ignore space change", "First parent", and the "Diff/Old Version/New
> Version" radio buttons. I would hate to see any of them be removed from
> the diff pane.
Thanks, that's useful information. Could you give example workflows
to illustrate this? Here's an example:
Toggling between "Diff/Old version/New version" with a single click
allows one to compare the preimage and postimage of a patch visually.
It makes what changed much more obvious.
Historically these have been radio buttons on the top-left part of
the diff pane. If they move, it might be hard for people already
familiar with gitk to find them.
The preimage/postimage toggle is a useful and novel feature, and it
is greedy with respect to screen real estate (a few extra diff
lines can go a long way), so it would not be good to hide it in a
separate "more diff options" toolbar.
The case for one-click "diff against parent" is less clear. Is it
that it gets toggled in practice often (i.e., avoiding pointless
repetitive actions)?
Hope that helps.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] gitk: Add "First parent" checkbox
2010-11-08 21:11 ` Jonathan Nieder
@ 2010-11-10 7:17 ` Stefan Haller
0 siblings, 0 replies; 11+ messages in thread
From: Stefan Haller @ 2010-11-10 7:17 UTC (permalink / raw)
To: Jonathan Nieder; +Cc: Paul Mackerras, git, Pat Thoyts, Thomas Rast
Jonathan Nieder <jrnieder@gmail.com> wrote:
> Stefan Haller wrote:
>
> > Most of the diff related options are
> > ones that I want to toggle with one click. That's certainly true for
> > "Ignore space change", "First parent", and the "Diff/Old Version/New
> > Version" radio buttons. I would hate to see any of them be removed from
> > the diff pane.
>
> Thanks, that's useful information. Could you give example workflows
> to illustrate this?
When browsing history, I usually have "First parent" off, so that I see
empty diffs for most merges, except the ones that had conflicts.
Occasionally though, when looking at a merge of a larger branch, I want
to see what changes were introduced by the merge; turning on "First
parent" allows me to quickly see that, or in general gives me an idea of
just how "big" the merge was. I usually turn it back off right
afterwards.
Similar for "Ignore space change": I usually have it off most of the
time, so that I see faithful diffs. Occasionally, when just the
indentation of a block of C code has changed, I turn it on just for that
one diff to make it easier to read; then I turn it back off right
afterwards.
Also similar for "Lines of context": this is usually set to a medium
value, like 3 or 4; sometimes I'll increase it to 12 or more for a
single diff to see more of the surrounding code, and sometimes I'll set
it to 1 for a merge diff with hunks so close to each other that they
otherwise show as conflicts.
Your proposal of having presets for diff options has the drawback that I
would need a preset for each combination of these options.
-Stefan
--
Stefan Haller
Berlin, Germany
http://www.haller-berlin.de/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] gitk: Add "First parent" checkbox
2010-11-08 10:42 [PATCH] gitk: Add "First parent" checkbox Stefan Haller
2010-11-08 17:24 ` Jonathan Nieder
@ 2010-12-12 4:27 ` Paul Mackerras
2010-12-12 20:08 ` [PATCH v2/RFC] " lists
1 sibling, 1 reply; 11+ messages in thread
From: Paul Mackerras @ 2010-12-12 4:27 UTC (permalink / raw)
To: Stefan Haller; +Cc: git
On Mon, Nov 08, 2010 at 11:42:59AM +0100, Stefan Haller wrote:
> Sometimes it's desirable to see what changes were introduced by a
> merge commit, rather than how conflicts were resolved. This adds
> a checkbox which, when turned on, makes gitk show the equivalent
> of "git show --first-parent <commit>" for merge commits.
>
> Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
> ---
> I realize this conflicts with Thomas Rast's recent patch to
> add a word-diff dropdown box; things are fighting for space
> in the diff pane header...
I just applied Thomas Rast's patch, so you'll need to rebase. Also
you're right that we're running out of space; perhaps we need to make
the pane header two rows high. Finally, "First parent" doesn't really
convey to me immediately what it does -- I have to think about it, so
it will probably confuse new users. I don't know what would be
better, though.
Paul.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2/RFC] gitk: Add "First parent" checkbox
2010-12-12 4:27 ` Paul Mackerras
@ 2010-12-12 20:08 ` lists
0 siblings, 0 replies; 11+ messages in thread
From: lists @ 2010-12-12 20:08 UTC (permalink / raw)
To: Paul Mackerras; +Cc: Stefan Haller, git
From: Stefan Haller <lists@haller-berlin.de>
Sometimes it's desirable to see what changes were introduced by a
merge commit, rather than how conflicts were resolved. This adds
a checkbox which, when turned on, makes gitk show the equivalent
of "git show --first-parent <commit>" for merge commits.
Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
---
Paul Mackerras <paulus@samba.org> wrote:
> I just applied Thomas Rast's patch, so you'll need to rebase.
OK, here's a new patch, rebased onto current master (but otherwise
unchanged for now).
> Also you're right that we're running out of space; perhaps we need to make
> the pane header two rows high.
The suggestion was to make it two rows high only if it doesn't fit on
one row (i.e. dynamically "line-wrap"), and I like the idea. Unfortunately
that's beyond my Tk skills; anybody willing to help?
> Finally, "First parent" doesn't really convey to me immediately what it
> does -- I have to think about it, so it will probably confuse new users.
> I don't know what would be better, though.
What I like about it is that it's consistent with the command-line
client, "git show --first-parent". But I don't insist on it if anybody
has a better suggestion.
gitk | 25 ++++++++++++++++++++++---
1 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/gitk b/gitk
index e82c6bf..7201ba0 100755
--- a/gitk
+++ b/gitk
@@ -2269,6 +2269,10 @@ proc makewindow {} {
pack .bleft.mid.worddiff -side left -padx 5
}
+ ${NS}::checkbutton .bleft.mid.firstparent -text [mc "First parent"] \
+ -command changefirstparent -variable firstparent
+ pack .bleft.mid.firstparent -side left -padx 5
+
set ctext .bleft.bottom.ctext
text $ctext -background $bgcolor -foreground $fgcolor \
-state disabled -font textfont \
@@ -6897,6 +6901,7 @@ proc selectline {l isnew {desired_loc {}}} {
global cmitmode showneartags allcommits
global targetrow targetid lastscrollrows
global autoselect jump_to_here
+ global firstparent
catch {unset pending_select}
$canv delete hover
@@ -7038,7 +7043,7 @@ proc selectline {l isnew {desired_loc {}}} {
init_flist [mc "Comments"]
if {$cmitmode eq "tree"} {
gettree $id
- } elseif {[llength $olds] <= 1} {
+ } elseif {[llength $olds] <= 1 || $firstparent} {
startdiff $id
} else {
mergediff $id
@@ -7442,7 +7447,7 @@ proc diffcmd {ids flags} {
proc gettreediffs {ids} {
global treediff treepending
- if {[catch {set gdtf [open [diffcmd $ids {--no-commit-id}] r]}]} return
+ if {[catch {set gdtf [open [diffcmd $ids {--no-commit-id -m --first-parent}] r]}]} return
set treepending $ids
set treediff {}
@@ -7534,12 +7539,20 @@ proc changeworddiff {name ix op} {
reselectline
}
+proc changefirstparent {} {
+ global treediffs
+ catch {unset treediffs}
+
+ reselectline
+}
+
proc getblobdiffs {ids} {
global blobdifffd diffids env
global diffinhdr treediffs
global diffcontext
global ignorespace
global worddiff
+ global firstparent
global limitdiffs vfilelimit curview
global diffencoding targetline diffnparents
global git_version currdiffsubmod
@@ -7552,13 +7565,18 @@ proc getblobdiffs {ids} {
if {[package vcompare $git_version "1.6.6"] >= 0} {
set submodule "--submodule"
}
- set cmd [diffcmd $ids "-p $textconv $submodule -C --cc --no-commit-id -U$diffcontext"]
+ set cmd [diffcmd $ids "-p $textconv $submodule -C --no-commit-id -U$diffcontext"]
if {$ignorespace} {
append cmd " -w"
}
if {$worddiff ne [mc "Line diff"]} {
append cmd " --word-diff=porcelain"
}
+ if {$firstparent} {
+ append cmd " -m --first-parent"
+ } else {
+ append cmd " --cc"
+ }
if {$limitdiffs && $vfilelimit($curview) ne {}} {
set cmd [concat $cmd -- $vfilelimit($curview)]
}
@@ -11453,6 +11471,7 @@ set diffcolors {red "#00a000" blue}
set diffcontext 3
set ignorespace 0
set worddiff ""
+set firstparent 0
set markbgcolor "#e0e0ff"
set circlecolors {white blue gray blue blue}
--
1.7.3.2.442.g97e50
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH] gitk: Add "First parent" checkbox
2013-10-30 17:10 Show patch in gitk --first-parent ? Karl Wiberg
@ 2013-10-31 14:59 ` Stefan Haller
0 siblings, 0 replies; 11+ messages in thread
From: Stefan Haller @ 2013-10-31 14:59 UTC (permalink / raw)
To: Karl Wiberg; +Cc: git, Paul Mackerras, Jonathan Nieder
Sometimes it's desirable to see what changes were introduced by a
merge commit, rather than how conflicts were resolved. This adds
a checkbox which, when turned on, makes gitk show the equivalent
of "git show --first-parent <commit>" for merge commits.
Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
---
This is the same patch as the one I sent in
<http://comments.gmane.org/gmane.comp.version-control.git/160920>, with
the same issues discussed in that thread. I just brought it up to date
with current master.
gitk | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/gitk b/gitk
index 5cd00d8..3466054 100755
--- a/gitk
+++ b/gitk
@@ -2336,6 +2336,10 @@ proc makewindow {} {
pack .bleft.mid.worddiff -side left -padx 5
}
+ ${NS}::checkbutton .bleft.mid.firstparent -text [mc "First parent"] \
+ -command changefirstparent -variable firstparent
+ pack .bleft.mid.firstparent -side left -padx 5
+
set ctext .bleft.bottom.ctext
text $ctext -background $bgcolor -foreground $fgcolor \
-state disabled -font textfont \
@@ -7080,6 +7084,7 @@ proc selectline {l isnew {desired_loc {}}} {
global cmitmode showneartags allcommits
global targetrow targetid lastscrollrows
global autoselect autosellen jump_to_here
+ global firstparent
catch {unset pending_select}
$canv delete hover
@@ -7221,7 +7226,7 @@ proc selectline {l isnew {desired_loc {}}} {
init_flist [mc "Comments"]
if {$cmitmode eq "tree"} {
gettree $id
- } elseif {[llength $olds] <= 1} {
+ } elseif {[llength $olds] <= 1 || $firstparent} {
startdiff $id
} else {
mergediff $id
@@ -7624,7 +7629,7 @@ proc diffcmd {ids flags} {
proc gettreediffs {ids} {
global treediff treepending limitdiffs vfilelimit curview
- set cmd [diffcmd $ids {--no-commit-id}]
+ set cmd [diffcmd $ids {--no-commit-id -m --first-parent}]
if {$limitdiffs && $vfilelimit($curview) ne {}} {
set cmd [concat $cmd -- $vfilelimit($curview)]
}
@@ -7710,12 +7715,20 @@ proc changeworddiff {name ix op} {
reselectline
}
+proc changefirstparent {} {
+ global treediffs
+ catch {unset treediffs}
+
+ reselectline
+}
+
proc getblobdiffs {ids} {
global blobdifffd diffids env
global diffinhdr treediffs
global diffcontext
global ignorespace
global worddiff
+ global firstparent
global limitdiffs vfilelimit curview
global diffencoding targetline diffnparents
global git_version currdiffsubmod
@@ -7728,13 +7741,18 @@ proc getblobdiffs {ids} {
if {[package vcompare $git_version "1.6.6"] >= 0} {
set submodule "--submodule"
}
- set cmd [diffcmd $ids "-p $textconv $submodule -C --cc --no-commit-id -U$diffcontext"]
+ set cmd [diffcmd $ids "-p $textconv $submodule -C --no-commit-id -U$diffcontext"]
if {$ignorespace} {
append cmd " -w"
}
if {$worddiff ne [mc "Line diff"]} {
append cmd " --word-diff=porcelain"
}
+ if {$firstparent} {
+ append cmd " -m --first-parent"
+ } else {
+ append cmd " --cc"
+ }
if {$limitdiffs && $vfilelimit($curview) ne {}} {
set cmd [concat $cmd -- $vfilelimit($curview)]
}
@@ -11865,6 +11883,7 @@ set diffcontext 3
set mergecolors {red blue green purple brown "#009090" magenta "#808000" "#009000" "#ff0080" cyan "#b07070" "#70b0f0" "#70f0b0" "#f0b070" "#ff70b0"}
set ignorespace 0
set worddiff ""
+set firstparent 0
set markbgcolor "#e0e0ff"
set headbgcolor green
--
1.8.3.2.747.g15edaa9
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH] gitk: Add "First parent" checkbox
@ 2010-11-08 11:58 Stefan Haller
0 siblings, 0 replies; 11+ messages in thread
From: Stefan Haller @ 2010-11-08 11:58 UTC (permalink / raw)
To: Paul Mackerras; +Cc: git
Sometimes it's desirable to see what changes were introduced by a
merge commit, rather than how conflicts were resolved. This adds
a checkbox which, when turned on, makes gitk show the equivalent
of "git show --first-parent <commit>" for merge commits.
Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
---
I realize this conflicts with Thomas Rast's recent path to add a
word-diff dropdown box; things are fighting for space in the diff
pane header...
gitk | 24 +++++++++++++++++++++---
1 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/gitk b/gitk
index 45e3380..db0f022 100755
--- a/gitk
+++ b/gitk
@@ -2245,6 +2245,9 @@ proc makewindow {} {
${NS}::checkbutton .bleft.mid.ignspace -text [mc "Ignore space change"] \
-command changeignorespace -variable ignorespace
pack .bleft.mid.ignspace -side left -padx 5
+ ${NS}::checkbutton .bleft.mid.firstparent -text [mc "First parent"] \
+ -command changefirstparent -variable firstparent
+ pack .bleft.mid.firstparent -side left -padx 5
set ctext .bleft.bottom.ctext
text $ctext -background $bgcolor -foreground $fgcolor \
-state disabled -font textfont \
@@ -6872,6 +6875,7 @@ proc selectline {l isnew {desired_loc {}}} {
global cmitmode showneartags allcommits
global targetrow targetid lastscrollrows
global autoselect jump_to_here
+ global firstparent
catch {unset pending_select}
$canv delete hover
@@ -7013,7 +7017,7 @@ proc selectline {l isnew {desired_loc {}}} {
init_flist [mc "Comments"]
if {$cmitmode eq "tree"} {
gettree $id
- } elseif {[llength $olds] <= 1} {
+ } elseif {[llength $olds] <= 1 || $firstparent} {
startdiff $id
} else {
mergediff $id
@@ -7416,7 +7420,7 @@ proc diffcmd {ids flags} {
proc gettreediffs {ids} {
global treediff treepending
- if {[catch {set gdtf [open [diffcmd $ids {--no-commit-id}] r]}]} return
+ if {[catch {set gdtf [open [diffcmd $ids {--no-commit-id -m --first-parent}] r]}]} return
set treepending $ids
set treediff {}
@@ -7504,11 +7508,19 @@ proc changeignorespace {} {
reselectline
}
+proc changefirstparent {} {
+ global treediffs
+ catch {unset treediffs}
+
+ reselectline
+}
+
proc getblobdiffs {ids} {
global blobdifffd diffids env
global diffinhdr treediffs
global diffcontext
global ignorespace
+ global firstparent
global limitdiffs vfilelimit curview
global diffencoding targetline diffnparents
global git_version currdiffsubmod
@@ -7521,10 +7533,15 @@ proc getblobdiffs {ids} {
if {[package vcompare $git_version "1.6.6"] >= 0} {
set submodule "--submodule"
}
- set cmd [diffcmd $ids "-p $textconv $submodule -C --cc --no-commit-id -U$diffcontext"]
+ set cmd [diffcmd $ids "-p $textconv $submodule -C --no-commit-id -U$diffcontext"]
if {$ignorespace} {
append cmd " -w"
}
+ if {$firstparent} {
+ append cmd " -m --first-parent"
+ } else {
+ append cmd " --cc"
+ }
if {$limitdiffs && $vfilelimit($curview) ne {}} {
set cmd [concat $cmd -- $vfilelimit($curview)]
}
@@ -11393,6 +11410,7 @@ if {[tk windowingsystem] eq "win32"} {
set diffcolors {red "#00a000" blue}
set diffcontext 3
set ignorespace 0
+set firstparent 0
set markbgcolor "#e0e0ff"
set circlecolors {white blue gray blue blue}
--
1.7.3.2.153.g8250e
^ permalink raw reply related [flat|nested] 11+ messages in thread
end of thread, other threads:[~2013-10-31 14:59 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-08 10:42 [PATCH] gitk: Add "First parent" checkbox Stefan Haller
2010-11-08 17:24 ` Jonathan Nieder
2010-11-08 19:40 ` Stefan Haller
2010-11-08 19:48 ` Jonathan Nieder
2010-11-08 20:23 ` Stefan Haller
2010-11-08 21:11 ` Jonathan Nieder
2010-11-10 7:17 ` Stefan Haller
2010-12-12 4:27 ` Paul Mackerras
2010-12-12 20:08 ` [PATCH v2/RFC] " lists
2010-11-08 11:58 [PATCH] " Stefan Haller
2013-10-30 17:10 Show patch in gitk --first-parent ? Karl Wiberg
2013-10-31 14:59 ` [PATCH] gitk: Add "First parent" checkbox Stefan Haller
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.