[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