All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Martin Jansa <martin.jansa@gmail.com>
Cc: bitbake-devel@lists.openembedded.org,
	openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] git fetcher sanity check for matching branch and SRCREV
Date: Wed, 11 Dec 2013 22:58:20 +0000	[thread overview]
Message-ID: <1386802700.504.12.camel@ted> (raw)
In-Reply-To: <20131211225150.GB3717@jama>

On Wed, 2013-12-11 at 23:51 +0100, Martin Jansa wrote:
> I understand and support reasons behind recently added commit
> "fetch2/git: Add sanity check to ensure we really did fetch the correct
> revisions"
> 
> but there is at least one corner case which IMHO isn't supported now, in
> meta-webos we have yajl recipe with:
> 
> # corresponds to tag 1.0.12
> SRCREV = "17b1790fb9c8abbb3c0f7e083864a6a014191d56"
> SRC_URI = "git://github.com/lloyd/${PN}"
> 
> the problem is that 17b1790fb9c8abbb3c0f7e083864a6a014191d56 exists only
> in 1.0.12 tag and not in any branch
> 
> OE @ ~/webos/projects/yajl $ git branch -a --contains
> 17b1790fb9c8abbb3c0f7e083864a6a014191d56
> OE @ ~/webos/projects/yajl $ git tag --contains
> 17b1790fb9c8abbb3c0f7e083864a6a014191d56
> 1.0.12
> 
> There is "1.x" branch which contains parent of
> 17b1790fb9c8abbb3c0f7e083864a6a014191d56 but is missing this one commit.
> 
> Unfortunately we cannot "disable" this check by explicitly setting empty
> branch or setting tag=1.0.12
> 
> I can ask yajl owner to push that one missing patch to 1.x branch, but
> there were no changes in last 11 months so I don't know how responsive
> he will be and there could be similar case in different recipes where
> the upstream could be completely gone.
> 
> As side note, should bitbake do the same check when tag=foo is
> specified?

This is an interesting corner case. I have this patch lying around which
fixes the issue where a given tag is only available in specific
branches:

http://git.yoctoproject.org/cgit.cgi/poky-contrib/commit/?h=rpurdie/t2&id=d211662ca92ee084c0c4a3d343e0b1f28ab853ac

however that won't help this case. There is also an issue where the
ls-remote command can match multiple branches/tags since its unanchored:

git ls-remote X foo

refs/heads/foo
refs/heads/broken/foo
refs/tags/foo
refs/tags/broken/foo

All things considered the check is proving useful as its finding some
real issue however we have a few corner cases to iron out...

Cheers,

Richard






WARNING: multiple messages have this Message-ID (diff)
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Martin Jansa <martin.jansa@gmail.com>
Cc: bitbake-devel@lists.openembedded.org,
	openembedded-core@lists.openembedded.org
Subject: Re: git fetcher sanity check for matching branch and SRCREV
Date: Wed, 11 Dec 2013 22:58:20 +0000	[thread overview]
Message-ID: <1386802700.504.12.camel@ted> (raw)
In-Reply-To: <20131211225150.GB3717@jama>

On Wed, 2013-12-11 at 23:51 +0100, Martin Jansa wrote:
> I understand and support reasons behind recently added commit
> "fetch2/git: Add sanity check to ensure we really did fetch the correct
> revisions"
> 
> but there is at least one corner case which IMHO isn't supported now, in
> meta-webos we have yajl recipe with:
> 
> # corresponds to tag 1.0.12
> SRCREV = "17b1790fb9c8abbb3c0f7e083864a6a014191d56"
> SRC_URI = "git://github.com/lloyd/${PN}"
> 
> the problem is that 17b1790fb9c8abbb3c0f7e083864a6a014191d56 exists only
> in 1.0.12 tag and not in any branch
> 
> OE @ ~/webos/projects/yajl $ git branch -a --contains
> 17b1790fb9c8abbb3c0f7e083864a6a014191d56
> OE @ ~/webos/projects/yajl $ git tag --contains
> 17b1790fb9c8abbb3c0f7e083864a6a014191d56
> 1.0.12
> 
> There is "1.x" branch which contains parent of
> 17b1790fb9c8abbb3c0f7e083864a6a014191d56 but is missing this one commit.
> 
> Unfortunately we cannot "disable" this check by explicitly setting empty
> branch or setting tag=1.0.12
> 
> I can ask yajl owner to push that one missing patch to 1.x branch, but
> there were no changes in last 11 months so I don't know how responsive
> he will be and there could be similar case in different recipes where
> the upstream could be completely gone.
> 
> As side note, should bitbake do the same check when tag=foo is
> specified?

This is an interesting corner case. I have this patch lying around which
fixes the issue where a given tag is only available in specific
branches:

http://git.yoctoproject.org/cgit.cgi/poky-contrib/commit/?h=rpurdie/t2&id=d211662ca92ee084c0c4a3d343e0b1f28ab853ac

however that won't help this case. There is also an issue where the
ls-remote command can match multiple branches/tags since its unanchored:

git ls-remote X foo

refs/heads/foo
refs/heads/broken/foo
refs/tags/foo
refs/tags/broken/foo

All things considered the check is proving useful as its finding some
real issue however we have a few corner cases to iron out...

Cheers,

Richard






  reply	other threads:[~2013-12-11 22:58 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-11 22:51 git fetcher sanity check for matching branch and SRCREV Martin Jansa
2013-12-11 22:58 ` Richard Purdie [this message]
2013-12-11 22:58   ` Richard Purdie
2013-12-12  0:28   ` [OE-core] " Martin Jansa
2013-12-12  0:28     ` Martin Jansa
2013-12-11 23:01 ` [OE-core] " Nicolas Dechesne
2013-12-11 23:01   ` Nicolas Dechesne

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=1386802700.504.12.camel@ted \
    --to=richard.purdie@linuxfoundation.org \
    --cc=bitbake-devel@lists.openembedded.org \
    --cc=martin.jansa@gmail.com \
    --cc=openembedded-core@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.