Browse Source

Support Git worktrees in generation of hash header

Pedro J. Estébanez 2 years ago
parent
commit
078ab7fe05
1 changed files with 4 additions and 0 deletions
  1. 4 0
      methods.py

+ 4 - 0
methods.py

@@ -111,6 +111,10 @@ def get_version_info(module_version_string="", silent=False):
         head = open(os.path.join(gitfolder, "HEAD"), "r", encoding="utf8").readline().strip()
         head = open(os.path.join(gitfolder, "HEAD"), "r", encoding="utf8").readline().strip()
         if head.startswith("ref: "):
         if head.startswith("ref: "):
             ref = head[5:]
             ref = head[5:]
+            # If this directory is a Git worktree instead of a root clone.
+            parts = gitfolder.split("/")
+            if len(parts) > 2 and parts[-2] == "worktrees":
+                gitfolder = "/".join(parts[0:-2])
             head = os.path.join(gitfolder, ref)
             head = os.path.join(gitfolder, ref)
             packedrefs = os.path.join(gitfolder, "packed-refs")
             packedrefs = os.path.join(gitfolder, "packed-refs")
             if os.path.isfile(head):
             if os.path.isfile(head):