diff options
| author | Pratyush Yadav <me@yadavpratyush.com> | 2020-06-22 20:23:28 +0530 |
|---|---|---|
| committer | Pratyush Yadav <me@yadavpratyush.com> | 2020-06-22 20:23:28 +0530 |
| commit | 469725c1a3d44f7e1475f1d37cd13e0824d4ea41 (patch) | |
| tree | f705800282a6243305f94212ee38035d97007552 /lib/choose_repository.tcl | |
| parent | c195247812f8cd38ba7e1c603112e6c1d8d8e71e (diff) | |
| parent | a7473956f7e0ff710f6928b1c23a577f66cb4165 (diff) | |
| download | git-469725c1a3d44f7e1475f1d37cd13e0824d4ea41.tar.gz | |
Merge branch 'mt/open-worktree'
Clean up the code that checks if a directory is a Git repo. Use git
rev-parse instead of rolling our own logic to find that out. A side
effect (which also happens to be the main motivation behind it) of this
change is that git-gui can now open worktrees other than the main
worktree.
* mt/open-worktree:
git-gui: allow opening work trees from the startup dialog
Diffstat (limited to 'lib/choose_repository.tcl')
| -rw-r--r-- | lib/choose_repository.tcl | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index e54f3e66d8..af1fee7c75 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -357,31 +357,10 @@ proc _is_git {path {outdir_var ""}} { if {$outdir_var ne ""} { upvar 1 $outdir_var outdir } - if {[file isfile $path]} { - set fp [open $path r] - gets $fp line - close $fp - if {[regexp "^gitdir: (.+)$" $line line link_target]} { - set path [file join [file dirname $path] $link_target] - set path [file normalize $path] - } - } - - if {[file exists [file join $path HEAD]] - && [file exists [file join $path objects]] - && [file exists [file join $path config]]} { - set outdir $path - 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]]} { - set outdir $path - return 1 - } + if {[catch {set outdir [git rev-parse --resolve-git-dir $path]}]} { + return 0 } - return 0 + return 1 } proc _objdir {path} { |
