[bitbake-devel] [PATCH] fetch2/git: allow using 'HEAD' as a branch name
Cliff Brake
cbrake at bec-systems.com
Mon Jul 11 14:15:47 UTC 2016
Markus,
Sorry I missed this email -- thanks for the patch. I'll test with my
use case and try to report back in a few days.
Thanks,
Cliff
On Wed, Jun 22, 2016 at 5:55 AM, Markus Lehtonen
<markus.lehtonen at linux.intel.com> wrote:
> 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
>>
>
> --
> _______________________________________________
> bitbake-devel mailing list
> bitbake-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/bitbake-devel
More information about the bitbake-devel
mailing list