> -----Original Message-----
> From: Richard Purdie <richard.pur...@linuxfoundation.org>
> Sent: den 17 februari 2024 13:34
> To: Peter Kjellerstedt <peter.kjellerst...@axis.com>; openembedded-
> c...@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH 7/7] lib/oe/patch: Use git notes to store
> the filenames for the patches
> 
> On Fri, 2024-02-16 at 19:59 +0100, Peter Kjellerstedt wrote:
> > The old way of keeping track of the filenames for the patches that
> > correspond to the commits was to add a special comment line to the end
> > of the commit message, e.g., "%% original patch: <filename>", using a
> > temporary git hook. This method had some drawbacks, e.g.:
> >
> > * It caused problems if one wanted to push the commits upstream as the
> >   comment line had to be manually removed.
> > * The comment line would end up in patches if someone used git
> >   format-path rather than devtool finish to generate the patches.
> > * The comment line could interfere with global Git hooks used to
> >   validate the format of the Git commit message.
> > * When regenerating patches with `devtool finish --force-patch-refresh`,
> >   the process typically resulted in adding empty lines to the end of the
> >   commit messages in the updated patches.
> >
> > A better way of keeping track of the patch filenames is to use Git
> > notes. This way the commit messages remain unaffected, but the
> > information is still shown when, e.g., doing `git log`. A special Git
> > notes space, refs/notes/devtool, is used to not intefere with the
> > default Git notes. It is configured to be shown in, e.g., `git log` and
> > to survive rewrites (i.e., `git commit --amend` and `git rebase`).
> >
> > Since there is no longer any need for a temporary Git hook, the code
> > that manipulated the .git/hooks directory has also been removed. To
> > avoid potential problems due to global Git hooks, --no-verify was added
> > to the `git commit` command.
> >
> > To not cause troubles for those who have done `devtool modify` for a
> > recipe with the old solution and then do `devtool finish` with the new
> > solution, the code will fall back to look for the old strings in the
> > commit message if no Git note can be found.
> >
> > While not technically motivated like above, the way to keep track of
> > ignored commits is also changed to use Git notes to avoid having
> > different methods to store similar information.
> >
> > Signed-off-by: Peter Kjellerstedt <peter.kjellerst...@axis.com>
> > ---
> >  meta/lib/oe/patch.py                    | 105 +++++++++++++++---------
> >  meta/lib/oeqa/selftest/cases/devtool.py |   9 +-
> >  scripts/lib/devtool/standard.py         |  15 ++--
> >  3 files changed, 78 insertions(+), 51 deletions(-)
> 
> I've tweaked the EXCLUDE_FROM_WORLD issue and I can squash that in but
> with that we still saw:
> 
> https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6433/steps/14/logs/stdio
> 
> which I think is from this patch.
> 
> Cheers,
> 
> Richard

While I had checked when `git notes` was introduced (1.7.1 for the 
functionality I use), I had not realized that the --fixed-value option 
to `git config` was only introduced in 2.30 (way after the current OE 
minimum requirement of Git 1.8.3.1). Thankfully, the --fixed-value 
option is not really needed in this case and can just be removed.

I have an updated patch series that fixes this, the missing 
EXCLUDE_FROM_WORLD, and a problem related to how git rebase handles 
notes when a commit is fully absorbed during a rebase. The latter 
could trigger when devtool upgrade is used.

I will send the patches once oe-selftest -r devtool is done...

//Peter

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195851): 
https://lists.openembedded.org/g/openembedded-core/message/195851
Mute This Topic: https://lists.openembedded.org/mt/104398931/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to