bitbake: git: Allow local repos to use HEAD
Introduce a new 'usehead' url parameter for git repositories. Specifying usehead=1 causes bitbake to use whatever commit the repository HEAD is pointing to. Usage of usehead=1 is only allowed for local git repositories, i.e. it must always be accompanied with protocol=file url parameter. [YOCTO #9351] (Bitbake rev: 2673fac5a9d06de937101e3fb2ddf1e60ff99abf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
4093f0bad2
commit
c04468d113
|
@ -49,6 +49,10 @@ Supported SRC_URI options are:
|
||||||
referring to commit which is valid in tag instead of branch.
|
referring to commit which is valid in tag instead of branch.
|
||||||
The default is "0", set nobranch=1 if needed.
|
The default is "0", set nobranch=1 if needed.
|
||||||
|
|
||||||
|
- usehead
|
||||||
|
For local git:// urls to use the current branch HEAD as the revsion for use with
|
||||||
|
AUTOREV. Implies nobranch.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#Copyright (C) 2005 Richard Purdie
|
#Copyright (C) 2005 Richard Purdie
|
||||||
|
@ -153,6 +157,13 @@ class Git(FetchMethod):
|
||||||
|
|
||||||
ud.nobranch = ud.parm.get("nobranch","0") == "1"
|
ud.nobranch = ud.parm.get("nobranch","0") == "1"
|
||||||
|
|
||||||
|
# usehead implies nobranch
|
||||||
|
ud.usehead = ud.parm.get("usehead","0") == "1"
|
||||||
|
if ud.usehead:
|
||||||
|
if ud.proto != "file":
|
||||||
|
raise bb.fetch2.ParameterError("The usehead option is only for use with local ('protocol=file') git repositories", ud.url)
|
||||||
|
ud.nobranch = 1
|
||||||
|
|
||||||
# bareclone implies nocheckout
|
# bareclone implies nocheckout
|
||||||
ud.bareclone = ud.parm.get("bareclone","0") == "1"
|
ud.bareclone = ud.parm.get("bareclone","0") == "1"
|
||||||
if ud.bareclone:
|
if ud.bareclone:
|
||||||
|
@ -168,6 +179,9 @@ class Git(FetchMethod):
|
||||||
ud.branches[name] = branch
|
ud.branches[name] = branch
|
||||||
ud.unresolvedrev[name] = branch
|
ud.unresolvedrev[name] = branch
|
||||||
|
|
||||||
|
if ud.usehead:
|
||||||
|
ud.unresolvedrev['default'] = 'HEAD'
|
||||||
|
|
||||||
ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git -c core.fsyncobjectfiles=0"
|
ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git -c core.fsyncobjectfiles=0"
|
||||||
|
|
||||||
ud.write_tarballs = ((data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) or "0") != "0") or ud.rebaseable
|
ud.write_tarballs = ((data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) or "0") != "0") or ud.rebaseable
|
||||||
|
@ -387,7 +401,7 @@ class Git(FetchMethod):
|
||||||
"""
|
"""
|
||||||
output = self._lsremote(ud, d, "")
|
output = self._lsremote(ud, d, "")
|
||||||
# Tags of the form ^{} may not work, need to fallback to other form
|
# Tags of the form ^{} may not work, need to fallback to other form
|
||||||
if ud.unresolvedrev[name][:5] == "refs/":
|
if ud.unresolvedrev[name][:5] == "refs/" or ud.usehead:
|
||||||
head = ud.unresolvedrev[name]
|
head = ud.unresolvedrev[name]
|
||||||
tag = ud.unresolvedrev[name]
|
tag = ud.unresolvedrev[name]
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue