mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
scripts/oe-setup-layers: Update how to determine if directory is git repo
Previously _is_repo_git_repo() would return a result containing b'true\n' or b'false\n' if 'git rev-parse' ran successfully, instead of True of False. While this can be solved using e.g. result.strip().decode("utf-8") == "true", there are some other cases to consider. First, .git can be a file and not a directory when using a worktree. Second, an emtpy .git directory in 'repodir' for which some parent of 'repodir' is an actual git repo will still return True in this case. To account for these cases as well, use 'git rev-parse --show-toplevel' and compare the result against 'repodir' instead of using 'git rev-parse --is-inside-git-dir'. (From OE-Core rev: 0830f53900dd7fd669a7d6492325559ad3225302) Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
23f4bb7710
commit
02b8c36efe
|
@ -20,13 +20,13 @@ import os
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
def _is_repo_git_repo(repodir):
|
def _is_repo_git_repo(repodir):
|
||||||
git_dir = os.path.join(repodir, ".git")
|
|
||||||
if not os.access(git_dir, os.R_OK):
|
|
||||||
return False
|
|
||||||
try:
|
try:
|
||||||
return subprocess.check_output("git -C %s rev-parse --is-inside-git-dir" % git_dir, shell=True, stderr=subprocess.DEVNULL)
|
curr_toplevel = subprocess.check_output("git -C %s rev-parse --show-toplevel" % repodir, shell=True, stderr=subprocess.DEVNULL)
|
||||||
|
if curr_toplevel.strip().decode("utf-8") == repodir:
|
||||||
|
return True
|
||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError:
|
||||||
return False
|
pass
|
||||||
|
return False
|
||||||
|
|
||||||
def _is_repo_at_rev(repodir, rev):
|
def _is_repo_at_rev(repodir, rev):
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user