mirror of
https://git.yoctoproject.org/poky
synced 2026-04-21 03:32:12 +02:00
oeqa.utils.git.GitRepo: new arg to require topdir
Add a new 'is_topdir' argument to the GitRepo init method which validates that the given path is the top directory of a Git repository. Without this argument GitRepo also accepts subdirectories of a Git repository (in which case GitRepo will point to the parent directory that is the top directory of this repository) which may have undesired in some cases. (From OE-Core rev: 044c81bd916fbe7140d184eb103f74786cfef604) 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:
committed by
Richard Purdie
parent
618a2ede75
commit
979c735678
@@ -4,6 +4,8 @@
|
||||
# Released under the MIT license (see COPYING.MIT)
|
||||
#
|
||||
"""Git repository interactions"""
|
||||
import os
|
||||
|
||||
from oeqa.utils.commands import runCmd
|
||||
|
||||
|
||||
@@ -13,9 +15,12 @@ class GitError(Exception):
|
||||
|
||||
class GitRepo(object):
|
||||
"""Class representing a Git repository clone"""
|
||||
def __init__(self, cwd):
|
||||
def __init__(self, path, is_topdir=False):
|
||||
self.top_dir = self._run_git_cmd_at(['rev-parse', '--show-toplevel'],
|
||||
cwd)
|
||||
path)
|
||||
realpath = os.path.realpath(path)
|
||||
if is_topdir and realpath != self.top_dir:
|
||||
raise GitError("{} is not a Git top directory".format(realpath))
|
||||
|
||||
@staticmethod
|
||||
def _run_git_cmd_at(git_args, cwd, **kwargs):
|
||||
|
||||
Reference in New Issue
Block a user