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

Re: [PATCHv1 1/2] git-p4: support git-workspaces

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 5, 2016, 21:24 UTC
Message-ID
<xmqq4m2i3w8b.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<CAE5ih78Y_AbfgtW_6zMKLC8NzBxCKSagrgrjtfWZVOEwaAg6ZA@mail.gmail.com>
Luke Diamand <luke@diamand.org> writes:
Show 8 quoted lines
> On 5 December 2016 at 20:53, Junio C Hamano <gitster@pobox.com> wrote:
>> Luke Diamand <luke@diamand.org> writes:
>>
>>> Teach git-p4 about git-workspaces.
>>
>> Is this what we call "git worktree", or something else?
>
> Ah, I think you're right!
Then I'll queue it like the attached.
HOWEVER.

How fast does isValidGitDir() function need to be? The primary one seems to check HEAD (but it does not notice a non-repository that has a directory with that name), refs and objects (but it does not notice a non-repository that has a non-directory with these names), and this new one uses a test that is even more sloppy.

What I am trying to get at is if we want to use a single command that can be given a path and answer "Yes, that is a repository" here, and that single command should know how the repository should look like. I offhand do not know we already have such a command we can use, e.g. "git rev-parse --is-git-dir $path", but if there isn't perhaps we would want one, so that not just "git p4" but other scripted Porcelains can make use of it?

-- >8 --
From: Luke Diamand <luke@diamand.org>
Date: Fri, 2 Dec 2016 22:43:18 +0000
Subject: [PATCH] git-p4: support secondary working trees managed by "git worktree"
Teach git-p4 about them.
Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 git-p4.py | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/git-p4.py b/git-p4.py
index fd5ca52462..b3c50ae7e5 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -566,6 +566,12 @@ def isValidGitDir(path):
     if (os.path.exists(path + "/HEAD")
         and os.path.exists(path + "/refs") and os.path.exists(path + "/objects")):
         return True;
+
+    # secondary working tree managed by "git worktree"?
+    if (os.path.exists(path + "/HEAD")
+        and os.path.exists(path + "/gitdir")):
+        return True
+
     return False
 
 def parseRevision(ref):
-- 
2.11.0-222-g22b1346184
Previous: Luke DiamandNext: Junio C Hamano
Message 5 of 9 in “[PATCHv1 0/2] git-p4 patches”
  1. Luke DiamandDec 2, 2016
  2. 1/2 git-p4: support git-workspacesLuke Diamand, Dec 2, 2016
  3. Junio C HamanoDec 5, 2016
  4. Luke DiamandDec 5, 2016
  5. Junio C HamanoDec 5, 2016
  6. Junio C HamanoDec 5, 2016
  7. Luke DiamandDec 5, 2016
  8. Junio C HamanoDec 5, 2016
  9. 2/2 git-p4: support updating an existing shelved changelistLuke Diamand, Dec 2, 2016

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.