Maybe, the author checks "Keep my email address private" option?[1]

Matthias, It would be nice if you also write this example (using an
example author information) on the wiki :)

[1] 
https://help.github.com/en/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address#setting-your-commit-email-address-on-github

Thank you,
Junichi



On Fri, Dec 13, 2019 at 5:41 AM Matthias Bläsing
<mblaes...@doppel-helix.eu> wrote:
>
> Hello all Committers,
>
> please be extra careful when using the "Squash and Merge" Option on
> github. It is broken regarding author information.
>
> When you use the option, github tries to be clever and uses the public
> information of the author as present in the profile of the person on
> github. This results mostly in utterly useless information - see for an
> example commit (chosen as it is the most recent sample and the work is
> good):
>
> e978ba9b235ca1eaeb6f6fddf7dca46c20c337fc
>
> https://github.com/apache/netbeans/commit/e978ba9b235ca1eaeb6f6fddf7dca46c20c337fc
>
> The author information is
>
> Karl T <devcha...@users.noreply.github.com>
>
> If you look into the original PR branch, you see the full author
> information:
>
> Karl Tauber <k...@jformdesigner.com>
>
> That is helpful and allows to identify the author.
>
> As a contributor this is easily prevented: use valid real world
> information in the profile and ensure an email address is marked as
> public. As a committer drop the github GUI and squash manually:
>
> 1. Modify your git configuration of the repository to include the
> github pull requests. In my case this looks like this:
>
> [remote "github"]
>         url = https://github.com/apache/netbeans.git
>         fetch = +refs/heads/*:refs/remotes/github/*
>         fetch = +refs/pull/*/head:refs/remotes/github/pr/*
>
> 2. You can now fetch from github and will also get the PRs - sample:
>
>    matthias@athena:~/src/netbeans$ git fetch github
>    remote: Enumerating objects: 132, done.
>    remote: Counting objects: 100% (132/132), done.
>    remote: Compressing objects: 100% (42/42), done.
>    remote: Total 150 (delta 59), reused 122 (delta 51), pack-reused 18
>    Empfange Objekte: 100% (150/150), 31.75 KiB | 10.58 MiB/s, Fertig.
>    Löse Unterschiede auf: 100% (59/59), abgeschlossen mit 31 lokalen Objekten.
>    Von https://github.com/apache/netbeans
>    8e2aa441a2f7..21691f5cbf68  master              -> github/master
>  + 05b76b069b6e...1cd74c3c90d0 refs/pull/1559/head -> github/pr/1559  
> (Aktualisierung erzwungen)
>  + 4589bd05e462...771f1a9d5368 refs/pull/1643/head -> github/pr/1643  
> (Aktualisierung erzwungen)
>  + f55b055eaccd...c8a53a038e51 refs/pull/1765/head -> github/pr/1765  
> (Aktualisierung erzwungen)
>    d11c6bf5d20d..7a42cbc99cab  refs/pull/1771/head -> github/pr/1771
>  * [neue Referenz]             refs/pull/1772/head -> github/pr/1772
> matthias@athena:~/src/netbeans$
>
> 3. Ensure your master branch is current
>
>    git checkout master
>    git pull
>
> 4. Checkout the PR:
>
>    git checkout github/pr/1771
>
> 5. Rebase the PR onto master
>
>    git rebase master
>
> 6. Do the squashing - get an overview how far back you need to go (the last 
> 20 commits with author):
>
>    git log --pretty="%h%x09%ae%x09%s" -n 20
>
> 7. Do an interactive rebase (in this case the last 6 commits will be 
> included):
>
>    git rebase -i HEAD~6
>
> 8. Your editor is opened with the commits listed - you can now apply 
> different commands to
>    do a sane squasing, change the default `pick` to `s` (short for squash)
>
>    pick 213fefed1af0 [NETBEANS-3428] FlatLaf: UI delegates for editor and 
> view [...]
>    s b66a05ff095c [NETBEANS-3428] FlatLaf: fix editor and view tabs painting 
> is[...]
>    s 3ffacc5bc969 [NETBEANS-3428] FlatLaf: removed no longer needed class 
> NbFla[...]
>    s 32852d80343b [NETBEANS-3428] FlatLaf: give HeapView better colors in 
> FlatL[...]
>    s 952e39847f2e [NETBEANS-3428] FlatLaf: - increase major release version 
> of [...]
>    s dc439be5df98 [NETBEANS-3428] FlatLaf: - avoid using 
> `com.formdev.flatlaf.u[...]
>
>
> 9. Save the result and exit editor
>
> 10. You are asked to create a new commit message and prepares it by including 
> all commit
>     messages of the commits you are squashing
>
> 11. Check the author (shown in the comment section at the bottom
>
> 12. Save and exit editor
>
> 13. The commit of the new commit will be shown (here: c20b63503c98):
>
> matthias@athena:~/src/netbeans$ git rebase -i HEAD~6
> [losgelöster HEAD c20b63503c98] [NETBEANS-3428] FlatLaf: UI delegates for 
> editor and view tabs in main window
>  Author: Karl Tauber <k...@jformdesigner.com>
>  Date: Tue Dec 10 19:52:42 2019 +0100
>  17 files changed, 1546 insertions(+), 41 deletions(-)
>
> 14. Switch back to master
>
>    git checkout master
>
> 15. Merge (commit hash from above):
>
>    git merge c20b63503c98
>
> 16. Push
>
>    git push
>
>
> Do this multiple times with test sets, then its _very_ easy. The alternative 
> is of
> course to ask the author to do the squash himself, he can update the PR 
> (requires
> a forced push)
>
> Greetings
>
> Matthias
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@netbeans.apache.org
> For additional commands, e-mail: dev-h...@netbeans.apache.org
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@netbeans.apache.org
For additional commands, e-mail: dev-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists



Reply via email to