-command [cb _next new] \
-accelerator $M1T-N \
-label [mc "New..."]
+ bind $top <$M1B-n> [cb _next new]
+ bind $top <$M1B-N> [cb _next new]
}
$opts tag conf link_clone -foreground blue -underline 1
-command [cb _next clone] \
-accelerator $M1T-C \
-label [mc "Clone..."]
+ bind $top <$M1B-c> [cb _next clone]
+ bind $top <$M1B-C> [cb _next clone]
}
$opts tag conf link_open -foreground blue -underline 1
-command [cb _next open] \
-accelerator $M1T-O \
-label [mc "Open..."]
+ bind $top <$M1B-o> [cb _next open]
+ bind $top <$M1B-O> [cb _next open]
}
+ $opts conf -state disabled
+
set sorted_recent [_get_recentrepos]
if {[llength $sorted_recent] > 0} {
if {$m_repo ne {}} {
&& [file exists [file join $path config]]} {
return 1
}
+ if {[is_Cygwin]} {
+ if {[file exists [file join $path HEAD]]
+ && [file exists [file join $path objects.lnk]]
+ && [file exists [file join $path config.lnk]]} {
+ return 1
+ }
+ }
return 0
}
+proc _objdir {path} {
+ set objdir [file join $path .git objects]
+ if {[file isdirectory $objdir]} {
+ return $objdir
+ }
+
+ set objdir [file join $path objects]
+ if {[file isdirectory $objdir]} {
+ return $objdir
+ }
+
+ if {[is_Cygwin]} {
+ set objdir [file join $path .git objects.lnk]
+ if {[file isfile $objdir]} {
+ return [win32_read_lnk $objdir]
+ }
+
+ set objdir [file join $path objects.lnk]
+ if {[file isfile $objdir]} {
+ return [win32_read_lnk $objdir]
+ }
+ }
+
+ return {}
+}
+
######################################################################
##
## Create New Repository
pack $w_body.where -fill x
trace add variable @local_path write [cb _write_local_path]
+ bind $w_body.h <Destroy> [list trace remove variable @local_path write [cb _write_local_path]]
update
focus $w_body.where.t
}
trace add variable @local_path write [cb _update_clone]
trace add variable @origin_url write [cb _update_clone]
+ bind $w_body.h <Destroy> "
+ [list trace remove variable @local_path write [cb _update_clone]]
+ [list trace remove variable @origin_url write [cb _update_clone]]
+ "
update
focus $args.origin_t
}
}
if {$clone_type eq {hardlink} || $clone_type eq {shared}} {
- set objdir [file join $origin_url .git objects]
- if {![file isdirectory $objdir]} {
- set objdir [file join $origin_url objects]
- if {![file isdirectory $objdir]} {
- error_popup [mc "Not a Git repository: %s" [file tail $origin_url]]
- return
- }
+ set objdir [_objdir $origin_url]
+ if {$objdir eq {}} {
+ error_popup [mc "Not a Git repository: %s" [file tail $origin_url]]
+ return
}
}
pack $w_body.where -fill x
trace add variable @local_path write [cb _write_local_path]
+ bind $w_body.h <Destroy> [list trace remove variable @local_path write [cb _write_local_path]]
update
focus $w_body.where.t
}