@@ -894,6 +894,7 @@ set default_config(gui.textconv) true
894894set default_config(gui.pruneduringfetch) false
895895set default_config(gui.trustmtime) false
896896set default_config(gui.fastcopyblame) false
897+ set default_config(gui.maxrecentrepo) 10
897898set default_config(gui.copyblamethreshold) 40
898899set default_config(gui.blamehistoryctx) 7
899900set default_config(gui.diffcontext) 5
@@ -912,6 +913,7 @@ set font_descs {
912913 {fontdiff font_diff {mc " Diff/Console Font" }}
913914}
914915set default_config(gui.stageuntracked) ask
916+ set default_config(gui.displayuntracked) true
915917
916918######################################################################
917919##
@@ -1282,7 +1284,11 @@ apply_config
12821284
12831285# v1.7.0 introduced --show-toplevel to return the canonical work-tree
12841286if {[ package vsatisfies $_git_version 1.7.0] } {
1285- set _gitworktree [ git rev-parse --show-toplevel]
1287+ if { [ is_Cygwin] } {
1288+ catch {set _gitworktree [ exec cygpath --windows [git rev-parse --show-toplevel] ]}
1289+ } else {
1290+ set _gitworktree [ git rev-parse --show-toplevel]
1291+ }
12861292} else {
12871293 # try to set work tree from environment, core.worktree or use
12881294 # cdup to obtain a relative path to the top of the worktree. If
@@ -1550,18 +1556,23 @@ proc rescan_stage2 {fd after} {
15501556 set buf_rdf {}
15511557 set buf_rlo {}
15521558
1553- set rescan_active 3
1559+ set rescan_active 2
15541560 ui_status [ mc " Scanning for modified files ..." ]
15551561 set fd_di [ git_read diff-index --cached -z [PARENT] ]
15561562 set fd_df [ git_read diff-files -z]
1557- set fd_lo [ eval git_read ls-files --others -z $ls_others ]
15581563
15591564 fconfigure $fd_di -blocking 0 -translation binary -encoding binary
15601565 fconfigure $fd_df -blocking 0 -translation binary -encoding binary
1561- fconfigure $fd_lo -blocking 0 -translation binary -encoding binary
1566+
15621567 fileevent $fd_di readable [ list read_diff_index $fd_di $after ]
15631568 fileevent $fd_df readable [ list read_diff_files $fd_df $after ]
1564- fileevent $fd_lo readable [ list read_ls_others $fd_lo $after ]
1569+
1570+ if {[ is_config_true gui.displayuntracked] } {
1571+ set fd_lo [ eval git_read ls-files --others -z $ls_others ]
1572+ fconfigure $fd_lo -blocking 0 -translation binary -encoding binary
1573+ fileevent $fd_lo readable [ list read_ls_others $fd_lo $after ]
1574+ incr rescan_active
1575+ }
15651576}
15661577
15671578proc load_message {file {encoding {}}} {
@@ -2654,6 +2665,16 @@ if {![is_bare]} {
26542665 .mbar.repository add command \
26552666 -label [ mc " Explore Working Copy" ] \
26562667 -command {do_explore}
2668+ }
2669+
2670+ if {[ is_Windows] } {
2671+ .mbar.repository add command \
2672+ -label [ mc " Git Bash" ] \
2673+ -command {eval exec [ auto_execok start] \
2674+ [ list " Git Bash" bash --login -l &] }
2675+ }
2676+
2677+ if {[ is_Windows] || ![ is_bare] } {
26572678 .mbar.repository add separator
26582679}
26592680
@@ -3203,13 +3224,19 @@ unset i
32033224
32043225# -- Diff and Commit Area
32053226#
3206- ${NS} ::frame .vpane.lower -height 300 -width 400
3227+ ${NS} ::panedwindow .vpane.lower -orient vertical
32073228${NS} ::frame .vpane.lower.commarea
3208- ${NS} ::frame .vpane.lower.diff -relief sunken -borderwidth 1
3209- pack .vpane.lower.diff -fill both -expand 1
3210- pack .vpane.lower.commarea -side bottom -fill x
3229+ ${NS} ::frame .vpane.lower.diff -relief sunken -borderwidth 1 -height 500
3230+ .vpane.lower add .vpane.lower.diff
3231+ .vpane.lower add .vpane.lower.commarea
32113232.vpane add .vpane.lower
3212- if {!$use_ttk } {.vpane paneconfigure .vpane.lower -sticky nsew}
3233+ if {$use_ttk } {
3234+ .vpane.lower pane .vpane.lower.diff -weight 1
3235+ .vpane.lower pane .vpane.lower.commarea -weight 0
3236+ } else {
3237+ .vpane.lower paneconfigure .vpane.lower.diff -stretch always
3238+ .vpane.lower paneconfigure .vpane.lower.commarea -stretch never
3239+ }
32133240
32143241# -- Commit Area Buttons
32153242#
0 commit comments