Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Jan 2021 17:28:09 +0100
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@freebsd.org>
To:        Mark Millard via freebsd-git <freebsd-git@freebsd.org>
Subject:   Re: Reporting context with list submittals for defects when local git branches are involved: needs a new description?
Message-ID:  <X/NCGVQvHE7TmBue@acme.spoerlein.net>
In-Reply-To: <29E9AA04-C66B-4298-B84D-6549A88C038B@yahoo.com>
References:  <89B5ACB3-C05C-40EB-AF0B-5E049928DD6D.ref@yahoo.com> <89B5ACB3-C05C-40EB-AF0B-5E049928DD6D@yahoo.com> <CAHgpiFzjKRAkECccUgMWzOoq=syRC9j0hwHR4U6WvJMEf0p%2B_g@mail.gmail.com> <29E9AA04-C66B-4298-B84D-6549A88C038B@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2021-01-04 at 01:41:29 -0800, Mark Millard via freebsd-git wrote:
>
>On 2021-Jan-4, at 00:39, Ryan Libby <rlibby at freebsd.org> wrote:
>
>> On Sun, Jan 3, 2021 at 7:23 PM Mark Millard via freebsd-git
>> <freebsd-git@freebsd.org> wrote:
>>>
>>> I use a main context here to provide an example of the
>>> issue. I'm not claiming main is the only context with
>>> the issue.
>>>
>>> Taking an extremely simple case where I'm targeting the
>>> head of what git fetch freebsd provided, with my local
>>> patches (re)applied via rebase:
>>>
>>> # git reflog
>>> c9819aa7b91c (HEAD -> mm-src) HEAD@{0}: rebase (finish): returning to refs/heads/mm-src
>>> c9819aa7b91c (HEAD -> mm-src) HEAD@{1}: rebase (pick): mm-src snapshot for mm's patched build in git context.
>>> d03fd8ede2c4 (freebsd/main, freebsd/HEAD, main) HEAD@{2}: rebase (start): checkout d03fd8ede2c4
>>> . . .
>>>
>>> One could imagine that I'd picked to work from something
>>> older than d03fd8ede2c4 (say to avoid a known problem).
>>> Either way, uname returns the likes of:
>>>
>>> # uname -apKU
>>> FreeBSD FBSDFHUGE 13.0-CURRENT FreeBSD 13.0-CURRENT mm-src-c255571-gc9819aa7b91c GENERIC-NODBG  amd64 amd64 1300133 1300133
>>>
>>> (I've been experimenting with reproducible builds but that
>>> does not change the point: The identification ends up being
>>> specific to my local branch, other than the 1300133's.)
>>>
>>> Thus it appears that the:
>>>
>>> # freebsd-version ; uname -a
>>> 13.0-CURRENT
>>> FreeBSD FBSDFHUGE 13.0-CURRENT FreeBSD 13.0-CURRENT mm-src-c255571-gc9819aa7b91c GENERIC-NODBG  amd64
>>>
>>> historically used is not sufficient when local branches are
>>> involved.
>>>
>>> It looks like something like the partial git reflog showing a
>>> relationship to a freebsd/main or freebsd/HEAD commit is
>>> effectively required, or at least some wording like a "based on
>>> freebsd/main d03fd8ede2c4" is required and no tool currently,
>>> directly provides appropriate information: it is a manual
>>> operation.
>>>
>>> Food for thought.
>>>
>>> . . .
>>>
>>> _______________________________________________
>>> freebsd-git@freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/freebsd-git
>>> To unsubscribe, send any mail to "freebsd-git-unsubscribe@freebsd.org"
>>
>> Does this show what you expect?
>> git log --oneline --parents freebsd/main..c9819aa7b91c
>>
>> Or for just the "merge base" commit:
>> git merge-base freebsd/main c9819aa7b91c
>>
>> Yes, we should document something like that for filing bugs.
>>
>
>Avoiding the manual lookup and typing of c9819aa7b91c :
>
># git log --oneline --parents freebsd/main..mm-src
>c9819aa7b91c d03fd8ede2c4 (HEAD -> mm-src) mm-src snapshot for mm's patched build in git context.
>
># git merge-base freebsd/main mm-src
>d03fd8ede2c493d0c5a74b625a93a48e018515e1
>
>The first automatically identifies the commit in my mm-src
>branch, even if mm-src later gets a new HEAD. Having such
>recorded in a problem report could be important for the
>originator of the report (but possibly no one else).
>
>Cool. Thanks.
>
>Showing a more complicated example that also involved
>reverting a couple of commits so that the loader would
>display on a amd64 machine (a default text mode context):
>
># git log --oneline --parents freebsd/main..mm-src-2021-01-02.avoid_framebuffer_console_change
>2c557eeab90c ff4c62fe5612 (mm-src-2021-01-02.avoid_framebuffer_console_change) Revert "loader: implement framebuffer console"
>ff4c62fe5612 33700671c435 Revert "loader: fix build on non-x86 platforms"
>33700671c435 486580c44ce2 mm-src snapshot taretting just after conversion to git.
>
># git merge-base freebsd/main mm-src-2021-01-02.avoid_framebuffer_console_change
>486580c44ce29c1e3b1d9b858a08d9df9428b699
>
>Here only the last line of the "git log --oneline --parents" has an
>identification as a freebsd/main commit hash and only the first line
>has the long-branch-name's "at the time" HEAD identifying hash. But
>knowing about the reverts could still be important information.
>
>Adding a named branch that would not get its history rewritten
>to go with the defect report might be important. So in the mm-src
>example context earlier, I might not actually use mm-src directly
>but first create a mm-src.defect-description branch from mm-src
>instead and then report via mm-src.defect-description . (More
>to think about.)
>
>(I've been doing things mostly to experiment.)

I'm a bit confused as to what you are asking here, tbh. Are you working 
on a branch of your own? In that case, a bug report needs to have some 
concrete pointers to what you've changed locally, or you need to revert 
to a clean tree or something.

Or do you just want to have some minor things modified on your tree? In 
that case, maybe using git stash and git rebase --autostash would suit 
you better?

Stuffing ever more information into the uname output or version string 
isn't helpful, because as soon as you're 1 commit away from mainline, 
who knows what crazy stuff has happened in your tree?

Cheers
Uli



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?X/NCGVQvHE7TmBue>