git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] git-gui: allow opening work trees from the startup dialog

From
MGMikhail Terekhov via GitGitGadget <gitgitgadget@gmail.com>
Date
May 26, 2020, 15:33 UTC
Message-ID
<pull.644.git.1590507201474.gitgitgadget@gmail.com>
From: Mikhail Terekhov <termim@gmail.com>

In proc _is_git check that supplied path is a valid work tree path. This allows the choose_repository::pick dialog to accept path to a work tree directory.

Signed-off-by: Mikhail Terekhov <termim@gmail.com>
---
    git-gui: allow opening work trees from the startup dialog
    
    Trying to open a working tree from the "Open Existing Repository" link
    of the git-gui startup dialog results in an error: Not a Git repository:
    .... This patch fixes that error.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-644%2Ftermim%2Fgit-gui-open-worktree-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-644/termim/git-gui-open-worktree-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/644
 lib/choose_repository.tcl | 11 +++++++++++
 1 file changed, 11 insertions(+)
diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl
index e54f3e66d8f..8f911e89fbb 100644
--- a/lib/choose_repository.tcl
+++ b/lib/choose_repository.tcl
@@ -362,8 +362,19 @@ proc _is_git {path {outdir_var ""}} {
 		gets $fp line
 		close $fp
 		if {[regexp "^gitdir: (.+)$" $line line link_target]} {
+			set check_path [file normalize $path]
 			set path [file join [file dirname $path] $link_target]
 			set path [file normalize $path]
+
+			if {[file exists [file join $path gitdir]]} {
+				set fp [open [file join $path gitdir] r]
+				gets $fp worktree_path
+				close $fp
+				if {[string equal $check_path $worktree_path]} {
+					set outdir $path
+					return 1
+				}
+			}
 		}
 	}
 

base-commit: c195247812f8cd38ba7e1c603112e6c1d8d8e71e
-- 
gitgitgadget
Next: Pratyush Yadav
Message 1 of 6 in “git-gui: allow opening work trees from the startup dialog”
  1. git-gui: allow opening work trees from the startup dialogMikhail Terekhov via GitGitGadget, May 26, 2020
  2. Pratyush YadavJun 5, 2020
  3. Eric SunshineJun 5, 2020
  4. git-gui: allow opening work trees from the startup dialogMikhail Terekhov via GitGitGadget, Jun 6, 2020
  5. Pratyush YadavJun 8, 2020
  6. Pratyush YadavJun 22, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.