Luke Diamand <luke@xxxxxxxxxxx> writes: > On 5 December 2016 at 20:53, Junio C Hamano <gitster@xxxxxxxxx> wrote: >> Luke Diamand <luke@xxxxxxxxxxx> 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@xxxxxxxxxxx> 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@xxxxxxxxxxx> Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- 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