mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
oeqa.utils.git: support bare repos
[YOCTO #10582] (From OE-Core rev: a223b4d26c8834485cbec1f10defca42301550f7) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
69c7907bd9
commit
e3f06659c2
|
@ -16,12 +16,17 @@ class GitError(Exception):
|
|||
class GitRepo(object):
|
||||
"""Class representing a Git repository clone"""
|
||||
def __init__(self, path, is_topdir=False):
|
||||
self.top_dir = self._run_git_cmd_at(['rev-parse', '--show-toplevel'],
|
||||
path)
|
||||
git_dir = self._run_git_cmd_at(['rev-parse', '--git-dir'], path)
|
||||
git_dir = git_dir if os.path.isabs(git_dir) else os.path.join(path, git_dir)
|
||||
self.git_dir = os.path.realpath(git_dir)
|
||||
|
||||
if self._run_git_cmd_at(['rev-parse', '--is-bare-repository'], path) == 'true':
|
||||
self.bare = True
|
||||
self.top_dir = self.git_dir
|
||||
else:
|
||||
self.bare = False
|
||||
self.top_dir = self._run_git_cmd_at(['rev-parse', '--show-toplevel'],
|
||||
path)
|
||||
realpath = os.path.realpath(path)
|
||||
if is_topdir and realpath != self.top_dir:
|
||||
raise GitError("{} is not a Git top directory".format(realpath))
|
||||
|
@ -40,9 +45,12 @@ class GitRepo(object):
|
|||
return ret.output.strip()
|
||||
|
||||
@staticmethod
|
||||
def init(path):
|
||||
def init(path, bare=False):
|
||||
"""Initialize a new Git repository"""
|
||||
GitRepo._run_git_cmd_at('init', cwd=path)
|
||||
cmd = ['init']
|
||||
if bare:
|
||||
cmd.append('--bare')
|
||||
GitRepo._run_git_cmd_at(cmd, cwd=path)
|
||||
return GitRepo(path, is_topdir=True)
|
||||
|
||||
def run_cmd(self, git_args, env_update=None):
|
||||
|
|
Loading…
Reference in New Issue
Block a user