aboutsummaryrefslogtreecommitdiffstats
path: root/lib/choose_repository.tcl
diff options
context:
space:
mode:
authorPratyush Yadav <me@yadavpratyush.com>2020-06-22 20:23:28 +0530
committerPratyush Yadav <me@yadavpratyush.com>2020-06-22 20:23:28 +0530
commit469725c1a3d44f7e1475f1d37cd13e0824d4ea41 (patch)
treef705800282a6243305f94212ee38035d97007552 /lib/choose_repository.tcl
parentc195247812f8cd38ba7e1c603112e6c1d8d8e71e (diff)
parenta7473956f7e0ff710f6928b1c23a577f66cb4165 (diff)
downloadgit-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.tcl27
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} {