Thread (9 messages) flat view 9 messages, 6 authors, 2019-10-22

Re: [GIT PULL] arm64: Fixes for -rc4

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2019-10-21 11:45:34
Also in: lkml

On Mon, Oct 21, 2019 at 2:47 AM Ingo Molnar [off-list ref] wrote:
I think at least once I ran into that and sent you a 'slightly wrong'
diffstat - and maybe there's also been a few cases where you noticed
diffstats that didn't match your merge result, double checked it yourself
and didn't complain about it because you knew that this is a "git
request-pull" artifact?
Right. If I see a diffstat that doesn't match, I just look at what a
non-merged diffstat would have looked like, and if that matches I know
what happened.

There are other reasons why diffstats won't match, of course. Like me
just having merged part of the same commits from another source (or
multiple trees applying the same patch). So it's not _just_ due to
multiple merge bases that the mis-match can happen.
Most of the time I notice it like Will did because the diffstat is
obviously weird and it's good to check pull requests a second (and a
third :-) time as well, but it's possible to have relatively small
distances between the merge bases where the diffstat doesn't look
'obviously' bogus and mistakes can slip through.
Yup.
Anyway, a small Git feature request: it would be super useful if "git
request-pull" output was a bit more dependable and at least warned about
this and didn't include what is, from the viewpoint of the person doing
the merge, a bogus diffstat.
Well, warning for it would be fairly simple. Giving the "right" result
isn't simple, though, since the merge might need manual fixup to
succeed.

The warning you can check yourself: just do

    git merge-base --all upstream mybranch

and if you get more than one result, you know you are in the situation
where a diff from the merge base might not work (it *might* work, but
probably won't).

You can play around with it yourself, of course. Look at the
git-request-puill.sh script, it says something like this:

  merge_base=$(git merge-base $baserev $headrev) ||
  die "fatal: No commits in common between $base and $head"

and you could add something like

  all_merge_bases="$(git merge-base --all $baserev $headrev)"

and then add a warning if "all_merge_bases" doesn't match "merge_base".

                Linus

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help