From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] support/download/git: add branch support
Date: Wed, 8 May 2019 18:23:09 +0200 [thread overview]
Message-ID: <20190508162309.GF31209@scaer> (raw)
In-Reply-To: <CANj1ofkg42Ly-j2v2Gh8xt-2URP+xzL3W3wMW2-qVN+0PYvDbw@mail.gmail.com>
Catherine, All,
[please keep the buildroot ML in Cc on replies; if you're not subscribed,
please do so, otherwise people can't follow the discussion and wonder
what's going on...]
On 2019-05-08 10:47 -0500, Catherine Garabedian spake thusly:
> Understood. I'm upgrading from an older version of Buildroot, so missed that change.
> I'll have to update our configurations to adjust to the new behavior.
Note that there was no change; that has always been the case. It's just
that it's now documented.
> I would like to update this code to add an explicit error message
> instead ("Change sets may not be referred to by branch name"). Should
> that be submitted as a revision to this patch, or as an entirely
> separate patch?
I already posted a series to that effect in the past, and it is not
trivial to do.
The problem is that for some time, we allowed (and still allow) for
so-called special refs, like github PR, or gerrit reviews, and so on.
Due to a bug in the git download backend, when the cset to use is a
sha1, this does create local branches named after that sha1.
So, if we add a check that a cset is a branch name or not, then even if
the cset is a sha1, it can match a local branch (that was created by an
older version of Buildroot).
As such, we first have to clean up the git cache.
I have two WIP branches to address this issue [0] and [1], but I haven't
come to terms with previous reviews (which I can't seem to find again in
the ML archives, and I don;t even remember why the '3' is shorter than
the '2', which looks more complete, sigh...) You can get a better
picture of the issue by reading the commit logs in those series.
[0] https://git.buildroot.org/~ymorin/git/buildroot/log/?h=yem/dl-git-no-branch-2
[1] https://git.buildroot.org/~ymorin/git/buildroot/log/?h=yem/dl-git-no-branch-3
I shall revive those and get them to their conclusion. Soon, I hope,
soon (famous last words)...
Regards,
Yann E. MORIN.
> Thanks,
> Catherine Garabedian
> On Wed, May 8, 2019 at 9:43 AM Yann E. MORIN < [1]yann.morin.1998@free.fr> wrote:
>
> CAtherine, All,
>
> On 2019-05-08 14:22 +0000, [2]catherine at kubos.co spake thusly:
> > From: Catherine Garabedian < [3]catherine@kubos.co>
> >
> > A prior patch added logic to verify that the given cset exists.
> >
> > The command format used fails when attempting to verify a branch name, thus
> > preventing Buildroot from downloading any packages whose source comes from a
> > branch.
>
> We explciitly do not want to support using a branch _by name_, because
> that does not work as people expect it to work, see our manual:
>
> ? ? [4]https://buildroot.org/downloads/manual/manual.html#generic-package-reference
>
> Excerpt:
>
> ?1. due to local caching, Buildroot will not re-fetch the repository,
> ? ? so people who expect to be able to follow the remote repository
> ? ? would be quite surprised and disappointed;
> ?2. because two builds can never be perfectly simultaneous, and because
> ? ? the remote repository may get new commits on the branch anytime, two
> ? ? users, using the same Buildroot tree and building the same
> ? ? configuration, may get different source, thus rendering the build
> ? ? non reproducible, and people would be quite surprised and
> ? ? disappointed.
>
> So, using a branch _by name_ can not owrk because of those two reasons,
> and as such we believe this should not be supported.
>
> Instead, there was some effort a few months ago, to actually enforce the
> check that a branch was not used, and fail if that was the case.
>
> Regards,
> Yann E. MORIN.
>
> > This patch adds a secondary check which can validate branches (but not tags).
> >
> > Signed-off-by: Catherine Garabedian < [5]catherine@kubos.co>
> > ---
> >? support/download/git | 6 ++++--
> >? 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/support/download/git b/support/download/git
> > index 17ca04e..a25552e 100755
> > --- a/support/download/git
> > +++ b/support/download/git
> > @@ -130,8 +130,10 @@ fi
> >? # scratch won't help, so we don't want to trash the repository for a
> >? # missing commit. We just exit without going through the ERR trap.
> >? if ! _git rev-parse --quiet --verify "'${cset}^{commit}'" >/dev/null 2>&1; then
> > -? ? printf "Commit '%s' does not exist in this repository\n." "${cset}"
> > -? ? exit 1
> > +? ? if ! _git rev-parse --quiet --verify "'origin/${cset}'" >/dev/null 2>&1; then
> > +? ? ? ? printf "'%s' does not exist in this repository\n." "${cset}"
> > +? ? ? ? exit 1
> > +? ? fi
> >? fi
> >?
> >? # The new cset we want to checkout might have different submodules, or
> > --
> > 2.7.4
> >
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |? Yann E. MORIN? | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software? Designer | \ / CAMPAIGN? ? ?|? ___? ? ? ? ? ?
> ? ?|
> | +33 561 099 427 `------------.-------:? X? AGAINST? ? ? |? \e/? There is no? |
> | [6]http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL? ? |? ?v? ?conspiracy.? |
> '------------------------------^-------^------------------^--------------------'
>
> Links:
> 1. mailto:yann.morin.1998 at free.fr
> 2. mailto:catherine at kubos.co
> 3. mailto:catherine at kubos.co
> 4. https://buildroot.org/downloads/manual/manual.html#generic-package-reference
> 5. mailto:catherine at kubos.co
> 6. http://ymorin.is-a-geek.org/
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2019-05-08 16:23 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1557325351-17906-1-git-send-email-catherine@kubos.co>
2019-05-08 14:43 ` [Buildroot] [PATCH 1/1] support/download/git: add branch support Yann E. MORIN
[not found] ` <CANj1ofkg42Ly-j2v2Gh8xt-2URP+xzL3W3wMW2-qVN+0PYvDbw@mail.gmail.com>
2019-05-08 16:23 ` Yann E. MORIN [this message]
2019-05-08 16:43 ` Catherine Garabedian
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=20190508162309.GF31209@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/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.