[bitbake-devel] [PATCH] fetch2/git: allow using 'HEAD' as a branch name
Markus Lehtonen
markus.lehtonen at linux.intel.com
Wed Jun 22 09:55:39 UTC 2016
Ping! I haven't seen any comments regarding this one, and, it hasn't
been merged, either.
- Markus
On Wed, 2016-05-18 at 12:31 +0300, Markus Lehtonen wrote:
> This change makes it possible to e.g. build a currently checked out
> revision of a local Git repository and use AUTOREV. It will be
> possible
> to build HEAD of remote repositories, too, of course, but this is
> probably not that practical.
>
> In order to use this one must also use the nobranch parameter, i.e.
> have
> 'branch=HEAD;nobranch=1' in the SRC_URI, because 'HEAD' is really not
> a
> Git branch as such. The wording in "branch=HEAD;nobranch=1" is
> probably a
> bit counter-intuitive and illogical but this seems to be the only
> easy
> way to make this work without complicating the fetcher even further.
> Another solution would be e.g. to introduce an alternative 'ref'
> parameter which could be used in place of 'branch' to give any ref.
> The
> effect would basically be the same (with better wording) with yet a
> bit
> more complex fetcher code.
>
> [YOCTO #9351]
>
> Signed-off-by: Markus Lehtonen <markus.lehtonen at linux.intel.com>
> ---
> lib/bb/fetch2/git.py | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
> index 526668b..99d7dc1 100644
> --- a/lib/bb/fetch2/git.py
> +++ b/lib/bb/fetch2/git.py
> @@ -344,12 +344,15 @@ class Git(FetchMethod):
> output = self._lsremote(ud, d, "")
> # Tags of the form ^{} may not work, need to fallback to
> other form
> if ud.unresolvedrev[name][:5] == "refs/":
> - head = ud.unresolvedrev[name]
> - tag = ud.unresolvedrev[name]
> + search_list = [ud.unresolvedrev[name],
> + ud.unresolvedrev[name] + "^{}"]
> + elif ud.unresolvedrev[name] == 'HEAD':
> + search_list = ['HEAD']
> else:
> head = "refs/heads/%s" % ud.unresolvedrev[name]
> tag = "refs/tags/%s" % ud.unresolvedrev[name]
> - for s in [head, tag + "^{}", tag]:
> + search_list = [head, tag + "^{}", tag]
> + for s in search_list:
> for l in output.split('\n'):
> if s in l:
> return l.split()[0]
> --
> 2.6.6
>
More information about the bitbake-devel
mailing list