[bitbake-devel] [PATCH v2] fetch2/git: Dereference unresolved names with ls-remote

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Mon Feb 3 22:11:20 UTC 2014


On Mon, Jan 20, 2014 at 08:47:30PM +0000, Richard Purdie wrote:
> We need to deference tags when trying to map them to commit IDs with
> ls-remote. If we don't do this, a given commit might not show up
> later in a specific branch. There appears to be no good reason not
> to do this.
> 
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
> 
> v2: Only apply ^{} to tags, not heads
> 
> diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
> index d73f0cb..f7c26b3 100644
> --- a/bitbake/lib/bb/fetch2/git.py
> +++ b/bitbake/lib/bb/fetch2/git.py
> @@ -326,7 +326,7 @@ class Git(FetchMethod):
>          else:
>              username = ""
>  
> -        cmd = "%s ls-remote %s://%s%s%s refs/heads/%s refs/tags/%s" % \
> +        cmd = "%s ls-remote %s://%s%s%s refs/heads/%s refs/tags/%s^{}" % \
>                (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.unresolvedrev[name], ud.unresolvedrev[name])
>          if ud.proto.lower() != 'file':
>              bb.fetch2.check_network_access(d, cmd)

Hi Richard,

This and the previous df2e0972cd1db7abd5ec8b7cb295fb0c42e284a4 are very
inconvenient for my workflow (¹).
I usually have the toolchain locally for hacking, so my gcc,
binutils-gdb, uClibc and selected apps etc look like e.g.:

$ egrep "SRC(REV|PV|_URI )" meta/recipes-devtools/gcc/gcc-4.9.inc
SRCREV = "HEAD"
PV = "4.9.0+git${SRCPV}"
SRC_URI = "git:///scratch/src/gcc-4.9.mine/;branch=fixups-rtl;protocol=file;rebaseable=1"

This worked fine until your abovementioned changes. Can you advise how
my SRC_URI should look like so i am able to keep developing and
test changes now with the lot of oe-core and meta-openembedded as
checks?

thanks,

To reproduce:
$ git init /tmp/yuck
Initialized empty Git repository in /tmp/yuck/.git/
$ cd !$
$ echo | tee a > b
$ git add a
$ git commit -q -m '1c' a
$ git ls-remote file:///tmp/yuck/ HEAD
7532c4dab272c062c117b731e97889122dc10e67	HEAD
$ git ls-remote file:///tmp/yuck/ refs/heads/HEAD refs/tags/HEAD^{}
$

¹) think http://xkcd.com/1172/ but IMHO a tad less obscure since i'm
affected ;)



More information about the bitbake-devel mailing list