From: Markus Lehtonen <markus.lehtonen@linux.intel.com>
To: bitbake-devel@lists.openembedded.org
Subject: Re: [PATCH] fetch2/git: allow using 'HEAD' as a branch name
Date: Wed, 22 Jun 2016 12:55:39 +0300 [thread overview]
Message-ID: <1466589339.6738.2.camel@linux.intel.com> (raw)
In-Reply-To: <1463563901-3979-1-git-send-email-markus.lehtonen@linux.intel.com>
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@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
>
next prev parent reply other threads:[~2016-06-22 9:55 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-18 9:31 [PATCH] fetch2/git: allow using 'HEAD' as a branch name Markus Lehtonen
2016-06-22 9:55 ` Markus Lehtonen [this message]
2016-07-11 14:15 ` Cliff Brake
-- strict thread matches above, loose matches on Subject: below --
2016-08-03 14:06 Markus Lehtonen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1466589339.6738.2.camel@linux.intel.com \
--to=markus.lehtonen@linux.intel.com \
--cc=bitbake-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.