[PATCH] patman: fix use in worktree

Ludwig Nussel ludwig.nussel at siemens.com
Wed Apr 29 14:18:51 CEST 2026


When using a worktree '.git' actually is a file and pygit2
init_repository() does not like that. The intention is not to create
a new git repo anyway so use normal constructor instead of
init_repository().

Signed-off-by: Ludwig Nussel <ludwig.nussel at siemens.com>
---

 tools/patman/cser_helper.py | 4 ++--
 tools/patman/cseries.py     | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/tools/patman/cser_helper.py b/tools/patman/cser_helper.py
index 2841fcd9c20..81ad212daee 100644
--- a/tools/patman/cser_helper.py
+++ b/tools/patman/cser_helper.py
@@ -309,7 +309,7 @@ class CseriesHelper:
         self._copy_db_fields_to(series, ser)
         msg = None
         if end:
-            repo = pygit2.init_repository(self.gitdir)
+            repo = pygit2.Repository(self.gitdir)
             target = repo.revparse_single(end)
             first_line = target.message.splitlines()[0]
             msg = f'Ending before {oid(target.id)} {first_line}'
@@ -725,7 +725,7 @@ class CseriesHelper:
             raise ValueError(
                 f"Modified files exist: use 'git status' to check: "
                 f'{dirty[:5]}')
-        repo = pygit2.init_repository(self.gitdir)
+        repo = pygit2.Repository(self.gitdir)
 
         commit = None
         upstream_name = None
diff --git a/tools/patman/cseries.py b/tools/patman/cseries.py
index bcbc4963cea..0844b5f0257 100644
--- a/tools/patman/cseries.py
+++ b/tools/patman/cseries.py
@@ -119,7 +119,7 @@ class Cseries(cser_helper.CseriesHelper):
 
         new_max = max_vers - 1
 
-        repo = pygit2.init_repository(self.gitdir)
+        repo = pygit2.Repository(self.gitdir)
         if not dry_run:
             name = self._get_branch_name(ser.name, new_max)
             branch = repo.lookup_branch(name)
@@ -859,7 +859,7 @@ class Cseries(cser_helper.CseriesHelper):
             tag_info[svi.version] = [svi.idnum, name, f'{name}-{now_str}']
 
         # Create the tags
-        repo = pygit2.init_repository(self.gitdir)
+        repo = pygit2.Repository(self.gitdir)
         for _, (idnum, name, tag_name) in tag_info.items():
             commit = repo.revparse_single(name)
             repo.create_tag(tag_name, commit.hex,
@@ -896,7 +896,7 @@ class Cseries(cser_helper.CseriesHelper):
         svlist = self.db.ser_ver_get_for_series(ser.idnum)
 
         # Collect the tags
-        repo = pygit2.init_repository(self.gitdir)
+        repo = pygit2.Repository(self.gitdir)
         tag_info = {}
         for svi in svlist:
             name = self._get_branch_name(ser.name, svi.version)
-- 
2.43.0

base-commit: 4433253ecf2041f9362a763bb6cb79960921ac7e
branch: patman


More information about the U-Boot mailing list