Git ChangeLog policy for GCC Testsuite inquiry
Richard Earnshaw (lists)
Richard.Earnshaw@arm.com
Fri Feb 7 13:56:00 GMT 2020
On 07/02/2020 13:48, Segher Boessenkool wrote:
> Hi!
>
> On Fri, Feb 07, 2020 at 10:19:56AM +0100, Richard Biener wrote:
>> On Thu, Feb 6, 2020 at 11:25 PM Segher Boessenkool
>> <segher@kernel.crashing.org> wrote:
>>> Yeah, don't look at me then :-)
>>>
>>> I *like* having most of those steps, most of this should only be done by
>>> people who are awake.
>>>
>>>> it's definitely a part that requires
>>>> more typing compared to svn.
>>>
>>> Instead of "git am" I had "patch -p1 <", distributing the changelog parts
>>> I just did in vi (as with git), then "svn ci", which pick up all modified
>>> files directly (sometimes an "svn add" first). It's pretty much the same
>>> for me.
>>
>> I'm a believer on committing from the tree I actually tested,
>
> But you cannot. Depending on which machine I use, a regstrap (all
> languages) is between 2h and 40m, so when you push it upstream there
> will usually be commits by other people as well.
>
> I also test just master plus what I want to commit, which works fine
> most of the time. The master you test with is older than the one you
> commit to (and yes, this sometimes matters :-/ ).
>
>> so it
>> was with SVN: patch, test, svn up, edit changelogs (cut&paste from the
>> patch header), svn diff | less (check wha'ts abotu to be committed), svn commit
>> with GIT its now: patch, test, git add/commit, git pull --rebase, edit
>> changelogs
>> (cut&paste from the patch header), git commit --amend, git push -n -v,
>> git show <what's pushed>, git push
>>
>> So I wonder to "optimize" this somewhat.
>
> Having the patch as a file instead of just as a git commit makes the
> cut-and-paste step a little easier (and more reliable).
>
> Once you have done this many many times, you can skip some of the
> verification steps because you just *know* the state of everything. So
> things will be a little faster over time, or at least it will feel that
> way.
>
> Handling the changelog as you want will make things more streamlined,
> certainly. It also makes it easier to mess things up... We'll see what
> will happen, I guess :-)
>
>>>> ChangeLog file populating could be even
>>>> done on the server-side I guess (and not appropriately formatted logs
>>>> for the extraction/moving process rejected).
>>>
>>> Yup. As long as it's fool-proof, and we have some way to correct small
>>> disasters (both of those!)
>>
>> I'd definitely prefer server-side operation, and yes, that "script" looking
>> at the commit would need to have a "extract changelog parts" part
>> for a pre-accept hook and the actual part amending the commit with
>> the changelog file changes (not sure if that's even possible in a hook?).
>
> If you can think of it, it is possible. It's not even too hard I think.
>
> You want the commit hook to actually populate the changelog files, which
> are still normal checked-in files, aha! That's a great idea. That
> completely gets rid of my "fix mistakes" worries, and it will probably
> also get rid of the "yet another flag day" inconvenience.
>
>> Fixing mistakes in the ChangeLog files could be as easy as allowing
>> changes to ChangeLog files without that magic.
>
> Yeah :-)
>
>> Anyway, I hope to put sth together with bash & [g]awk
>
> gl;hf
>
> Should we require some simple markup in the commit message before the
> changelogs? Maybe
>
> CL gcc/
> * blablalba etc.
> CL gcc/testsuite/
> * gcc.target/...
> etc.
>
> (Dunno if just "^CL " is too short?)
I was thinking "@CL <dir>", but ^CL would work just as well.
Any script should, in addition to extracting the author and email also
grep for "Co-authored-by:" annotations and add those as additional
contributors, of course.
R.
>
>
> Segher
>
More information about the Gcc
mailing list