* RFC: Moving git-gui development to GitHub @ 2019-10-23 20:13 Pratyush Yadav 2019-10-24 2:06 ` Junio C Hamano 2019-10-24 19:46 ` Elijah Newren 0 siblings, 2 replies; 20+ messages in thread From: Pratyush Yadav @ 2019-10-23 20:13 UTC (permalink / raw) To: git Cc: Bert Wesarg, Johannes Schindelin, Junio C Hamano, Birger Skogeng Pedersen, Philip Oakley, Johannes Sixt Hi everyone, I recently had some discussions with Dscho about whether it is a better idea to use GitHub for development instead of email [0]. His argument was that GitHub makes it easier for newcomers to contribute, since more people are familiar with GitHub compared to mailing lists. Also, it is somewhat difficult to set up an email-based workflow. A pretty good argument. Using GitHub would certainly make one-off contributions easier, and make it easier for newcomers to get involved. But I feel like it is equally important to know what is good for the long-term contributors. Since I've been involved with git-gui for a relatively short time, I don't know many long term active contributors. Those I know of are in Cc. These are people who have frequently or semi-frequently expressed interest in git-gui development. Of course, people not in Cc are also welcome to express their opinions, and if I forgot to put someone in there that I should have, my apologies. I want to know people's opinion on whether it is a good idea to move development to GitHub. Just to lay out my views on the subject, here's a list of advantages and disadvantages that I can come up with. Arguments in favor of moving to GitHub: - Easier for new and one-off contributors. - Potentially easier for existing contributors. A lot of people are already very comfortable with GitHub's workflow. - The "Issues" section can serve as an issue tracker. Right now, my "issue tracker" is my memory and a small text file I have on my disk. - Rich text capabilities. I'm generally not a big fan of rich text, but Markdown IMO has found a pretty good balance. Also, it would allow people to post images, which is nice since it is a GUI (IIRC, the mailing list strips attachments). - We reduce the noise on the Git list. Most people subscribed to the list probably don't care about git-gui. So all git-gui related emails are essentially noise for them. And while the volume has been relatively low, it is not negligible. Arguments against moving to GitHub: - We lose the audience that we have on the mailing list. Every now and then, people who are interested in Git, and not really in git-gui chime in with help and suggestions. Those people are likely to not want to follow the repo on GitHub, so we lose that insight. One example that comes to my mind would be Denton Liu chiming in to help with some commits that were missing from my tree. - We depend on a non-open proprietary platform. While I personally don't really care that much, some people might. But the truth remains that it is a closed platform that I or any other contributor has no control over. If GitHub decides to ban me or any other contributor tomorrow, we can do nothing about it. This might sound far-fetched, but it has happened recently [1]. This specific case did not touch public repos, but this can change in the future. Something like this is less likely to happen to the Git mailing list and email. - People are restricted to the workflow prescribed by GitHub. With email, there is a certain degree of flexibility/customizability with how you sort your mail, how you configure your mail client, etc. - Sub-threads are not supported. Each reply is only to the "main" thread, and you can't reply to a reply (like you can do in email). It is a minor thing, but worth a mention IMHO. This list is not meant to be exhaustive in any way. The intention is to start listing out the benefits and losses so we can make an informed decision. Please feel free to add to this list (or remove from it). [0] https://public-inbox.org/git/nycvar.QRO.7.76.6.1910061054470.46@tvgsbejvaqbjf.bet/ [1] https://www.theverge.com/2019/7/29/8934694/github-us-trade-sanctions-developers-restricted-crimea-cuba-iran-north-korea-syria -- Regards, Pratyush Yadav ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-23 20:13 RFC: Moving git-gui development to GitHub Pratyush Yadav @ 2019-10-24 2:06 ` Junio C Hamano 2019-10-24 7:37 ` Birger Skogeng Pedersen 2019-10-24 19:46 ` Elijah Newren 1 sibling, 1 reply; 20+ messages in thread From: Junio C Hamano @ 2019-10-24 2:06 UTC (permalink / raw) To: Pratyush Yadav Cc: git, Bert Wesarg, Johannes Schindelin, Birger Skogeng Pedersen, Philip Oakley, Johannes Sixt Pratyush Yadav <me@yadavpratyush.com> writes: > Arguments in favor of moving to GitHub: > > - Easier for new and one-off contributors. It is uptimately up to you, the maintainer of the project, but personally I feel "new and one-off" are way overvalued, after considering if it serves the project and its users better to make it easier for "new and one-off" contributors, or if it serves these "new and one-off" contributors more than it benefits the project and its users. A quick rule of thumb I use is that it is worth spending my time on training a new contributor (with hand-holding on workflows, conventions, etc.) if it takes less than 3 times of effort compared to doing the task myself (if I had infinite amount of time, that is) for the first few topics the contributor works on. You can usually tell good ones after a few e-mail exchanges---their brilliance shine through, even before they become familiar with particular conventions of the project. > - We reduce the noise on the Git list. Most people subscribed to the > list probably don't care about git-gui. So all git-gui related emails > are essentially noise for them. And while the volume has been > relatively low, it is not negligible. As long as the subject is marked clearly that the discussion is about git-gui, it is easy to skip such an e-mail thread if a reader is not interested in it. This is related to the "we lose the audience" item on the other list, but as a project that consumes the product of the git-core, the needs of git-gui developers are of interest to git-core developers. If I am not mistaken, I think the recent topic about logs/HEAD.lock by Dscho was to support what he's doing with git-gui, and what the particular git-gui topic wanted from us happened to be simple enough that we didn't have to dig too deeply the consumer side in order to decide if the changes to git-core made sense, but that may not always the case. With a git-gui developer who is less experienced with git-core than Dscho, it would be entirely plausible that the developer would try to solve an issue on git-gui side with a lot more effort than necessary because the developer is not familiar with git yet, and it may turn out that it can be achieved easily with much less effort on the git-gui side if we made a minimum and generic change on git-core side. The other way around is also possible; an inexperienced git-gui developer may dream that miracles would solve an issue at hand, and expect that git-core side may bend over backwards to support an unreasonable one-off feature, which may never happen. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-24 2:06 ` Junio C Hamano @ 2019-10-24 7:37 ` Birger Skogeng Pedersen 2019-10-24 17:16 ` Denton Liu 0 siblings, 1 reply; 20+ messages in thread From: Birger Skogeng Pedersen @ 2019-10-24 7:37 UTC (permalink / raw) To: Junio C Hamano Cc: Pratyush Yadav, Git List, Bert Wesarg, Johannes Schindelin, Philip Oakley, Johannes Sixt Hi, I would _love_ to see git-gui development moved to GitHub (or a similar solution like Gitlab or Bitbucket). I have only submitted a few patches, comments and new topics to this project. But I find the use of mailing lists to be a _lot_ less efficient than using a repository hosting service (like GitHub). Advantages with GitHub - Tidier than emails (very much so). Threads are neatly separated in a single list, comments to threads are listed under their respective thread. Threads can be linked. - It's a lot easier to get a total overview of all issues. Especially useful when you'd want to see open issues. Pratyush mentions he has a text-file on his computer where he lists all the currently open issues. We can't see this text-file. And even if we could, we'd still have to navigate the mail archives to find the discussions and read the emails one page at a time. - It's a lot less hassle to submit patches (PRs), easier for everyone. Disadvantages - Git GUI contributors must have a GH account. - All the data (threads, discussions, patches, etc) is not backed up to such a large extent as it is when everyone has a copy of everything in their email inboxes. Best regards, Birger ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-24 7:37 ` Birger Skogeng Pedersen @ 2019-10-24 17:16 ` Denton Liu 2019-10-24 19:06 ` Pratyush Yadav 2019-10-24 21:29 ` Pratyush Yadav 0 siblings, 2 replies; 20+ messages in thread From: Denton Liu @ 2019-10-24 17:16 UTC (permalink / raw) To: Birger Skogeng Pedersen Cc: Junio C Hamano, Pratyush Yadav, Git List, Bert Wesarg, Johannes Schindelin, Philip Oakley, Johannes Sixt On Thu, Oct 24, 2019 at 09:37:08AM +0200, Birger Skogeng Pedersen wrote: > - It's a lot easier to get a total overview of all issues. Especially > useful when you'd want to see open issues. Pratyush mentions he has a > text-file on his computer where he lists all the currently open > issues. We can't see this text-file. And even if we could, we'd still > have to navigate the mail archives to find the discussions and read > the emails one page at a time. I also had one of these text files laying around with my TODOs. Dscho mentioned to me a while back that it might be a good idea to move everything to GitGitGadget's issues. It's worked out pretty well for me so far and I think a couple people have even picked up some work off of there. It might be worth considering moving issues to either git-gui's or GitGitGadget's repo. If anything, it's no worse than the current situation since if GitHub goes down for whatever reason, then Pratyush's list of issues is private again. But as long as GitHub is up, then it'd be nice to have a public list of issues for people to work on. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-24 17:16 ` Denton Liu @ 2019-10-24 19:06 ` Pratyush Yadav 2019-10-24 21:29 ` Pratyush Yadav 1 sibling, 0 replies; 20+ messages in thread From: Pratyush Yadav @ 2019-10-24 19:06 UTC (permalink / raw) To: Denton Liu Cc: Birger Skogeng Pedersen, Junio C Hamano, Git List, Bert Wesarg, Johannes Schindelin, Philip Oakley, Johannes Sixt On 24/10/19 10:16AM, Denton Liu wrote: > On Thu, Oct 24, 2019 at 09:37:08AM +0200, Birger Skogeng Pedersen wrote: > > - It's a lot easier to get a total overview of all issues. Especially > > useful when you'd want to see open issues. Pratyush mentions he has a > > text-file on his computer where he lists all the currently open > > issues. We can't see this text-file. And even if we could, we'd still > > have to navigate the mail archives to find the discussions and read > > the emails one page at a time. > > I also had one of these text files laying around with my TODOs. Dscho > mentioned to me a while back that it might be a good idea to move > everything to GitGitGadget's issues. It's worked out pretty well for me > so far and I think a couple people have even picked up some work off of > there. It might be worth considering moving issues to either git-gui's > or GitGitGadget's repo. > > If anything, it's no worse than the current situation since if GitHub > goes down for whatever reason, then Pratyush's list of issues is private > again. But as long as GitHub is up, then it'd be nice to have a public > list of issues for people to work on. That's a pretty good idea. Will do. -- Regards, Pratyush Yadav ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-24 17:16 ` Denton Liu 2019-10-24 19:06 ` Pratyush Yadav @ 2019-10-24 21:29 ` Pratyush Yadav 2019-10-25 5:33 ` Birger Skogeng Pedersen 1 sibling, 1 reply; 20+ messages in thread From: Pratyush Yadav @ 2019-10-24 21:29 UTC (permalink / raw) To: Denton Liu Cc: Birger Skogeng Pedersen, Junio C Hamano, Git List, Bert Wesarg, Johannes Schindelin, Philip Oakley, Johannes Sixt On 24/10/19 10:16AM, Denton Liu wrote: > On Thu, Oct 24, 2019 at 09:37:08AM +0200, Birger Skogeng Pedersen wrote: > > - It's a lot easier to get a total overview of all issues. Especially > > useful when you'd want to see open issues. Pratyush mentions he has a > > text-file on his computer where he lists all the currently open > > issues. We can't see this text-file. And even if we could, we'd still > > have to navigate the mail archives to find the discussions and read > > the emails one page at a time. > > I also had one of these text files laying around with my TODOs. Dscho > mentioned to me a while back that it might be a good idea to move > everything to GitGitGadget's issues. It's worked out pretty well for me > so far and I think a couple people have even picked up some work off of > there. It might be worth considering moving issues to either git-gui's > or GitGitGadget's repo. > > If anything, it's no worse than the current situation since if GitHub > goes down for whatever reason, then Pratyush's list of issues is private > again. But as long as GitHub is up, then it'd be nice to have a public > list of issues for people to work on. Update: the list can be now be found at [0]. [0] https://github.com/prati0100/git-gui/issues -- Regards, Pratyush Yadav ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-24 21:29 ` Pratyush Yadav @ 2019-10-25 5:33 ` Birger Skogeng Pedersen 2019-10-25 17:47 ` Pratyush Yadav 0 siblings, 1 reply; 20+ messages in thread From: Birger Skogeng Pedersen @ 2019-10-25 5:33 UTC (permalink / raw) To: Pratyush Yadav; +Cc: Git List Hi Pratyush, On Thu, Oct 24, 2019 at 11:29 PM Pratyush Yadav <me@yadavpratyush.com> wrote: > Update: the list can be now be found at [0]. > > [0] https://github.com/prati0100/git-gui/issues Is that the full list? If so I'll add my issue [1] about automatically selecting a staged file (avoid an empty diff) when focusing the commit message widget. [1] https://public-inbox.org/git/CAGr--=KMJmYtVaATFkOPcboAdkLvpZFbWAo4QAE0-uC6RL4Lqg@mail.gmail.com/ Birger ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-25 5:33 ` Birger Skogeng Pedersen @ 2019-10-25 17:47 ` Pratyush Yadav 0 siblings, 0 replies; 20+ messages in thread From: Pratyush Yadav @ 2019-10-25 17:47 UTC (permalink / raw) To: Birger Skogeng Pedersen; +Cc: Git List On 25/10/19 07:33AM, Birger Skogeng Pedersen wrote: > Hi Pratyush, > > On Thu, Oct 24, 2019 at 11:29 PM Pratyush Yadav <me@yadavpratyush.com> wrote: > > Update: the list can be now be found at [0]. > > > > [0] https://github.com/prati0100/git-gui/issues > > Is that the full list? If so I'll add my issue [1] about automatically > selecting a staged file (avoid an empty diff) when focusing the commit > message widget. Yes, it is the full list in the sense that it has all the items in my TODO list. But, it is not an "official" bug tracker. At least not until we switch to GitHub, if ever. So, if you feel like it, go ahead and add your issue there. No problems. But you don't _have_ to. > [1] https://public-inbox.org/git/CAGr--=KMJmYtVaATFkOPcboAdkLvpZFbWAo4QAE0-uC6RL4Lqg@mail.gmail.com/ > > Birger -- Regards, Pratyush Yadav ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-23 20:13 RFC: Moving git-gui development to GitHub Pratyush Yadav 2019-10-24 2:06 ` Junio C Hamano @ 2019-10-24 19:46 ` Elijah Newren 2019-10-25 18:36 ` Pratyush Yadav 2019-10-26 18:25 ` Jakub Narebski 1 sibling, 2 replies; 20+ messages in thread From: Elijah Newren @ 2019-10-24 19:46 UTC (permalink / raw) To: Pratyush Yadav Cc: Git Mailing List, Bert Wesarg, Johannes Schindelin, Junio C Hamano, Birger Skogeng Pedersen, Philip Oakley, Johannes Sixt On Thu, Oct 24, 2019 at 2:45 AM Pratyush Yadav <me@yadavpratyush.com> wrote: > > Hi everyone, > > I recently had some discussions with Dscho about whether it is a better > idea to use GitHub for development instead of email [0]. His argument > was that GitHub makes it easier for newcomers to contribute, since more > people are familiar with GitHub compared to mailing lists. Also, it is > somewhat difficult to set up an email-based workflow. Interesting; I had been pondering asking the opposite question for filter-repo: Even though filter-repo is tracked externally to git.git (since we seem to want to move to a batteries-not-included model), would it be okay to ask that filter-repo contributors send patches to the git mailing list (possibly specially marked somehow)? I'm debating between: - Ask contributors to send filter-repo patches to the git mailing list (if okay). - Try out GerritHub (GitHub + Gerrit; see gerrithub.io) and maybe use it - Assume there won't be many contributions (wouldn't be surprising) and put up with GitHub PRs GitHub is great for ease of creating new repos, learning about other developers, finding similar projects, creation of webhooks, etc. But it's *awful* for code review. Gerrit is a lot better at code reviews (though still has problems); so maybe dealing with both GitHub and Gerrit would be reasonable. (Reviewable also exists, and is kinda decent, but I can't respect anything that doesn't offer reviewability of commit messages. And it makes me feel bad by making me want to swat butterflies.) Email is a horrible medium for sending/receiving changes, but at least it gets the overall code review model right (commit-messages-are-first-order-objects-that-can-be-reviewed, review-individual-commits, merge-per-topic, cover-letter included, range-diff for high-level comparison of different iterations, reversing-commit-order-display-based-on-author-timestamps-is-NOT-forgivable, Change-IDs-are-ugly, magic-refs-are-disgusting, etc.), something no GUI tool (yet) does to my knowledge. So...would anyone object if I asked filter-repo contributors to send contributions via email to the git mailing list? Thanks, Elijah ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-24 19:46 ` Elijah Newren @ 2019-10-25 18:36 ` Pratyush Yadav 2019-10-26 18:25 ` Jakub Narebski 1 sibling, 0 replies; 20+ messages in thread From: Pratyush Yadav @ 2019-10-25 18:36 UTC (permalink / raw) To: Elijah Newren Cc: Git Mailing List, Bert Wesarg, Johannes Schindelin, Junio C Hamano, Birger Skogeng Pedersen, Philip Oakley, Johannes Sixt On 24/10/19 12:46PM, Elijah Newren wrote: > On Thu, Oct 24, 2019 at 2:45 AM Pratyush Yadav <me@yadavpratyush.com> wrote: > > > > Hi everyone, > > > > I recently had some discussions with Dscho about whether it is a better > > idea to use GitHub for development instead of email [0]. His argument > > was that GitHub makes it easier for newcomers to contribute, since more > > people are familiar with GitHub compared to mailing lists. Also, it is > > somewhat difficult to set up an email-based workflow. > > Interesting; I had been pondering asking the opposite question for > filter-repo: Even though filter-repo is tracked externally to git.git > (since we seem to want to move to a batteries-not-included model), > would it be okay to ask that filter-repo contributors send patches to > the git mailing list (possibly specially marked somehow)? Marking them some way (like we do with git-gui) would probably be a good idea since it allows people to just skip over those threads if they're not interested. It also allows using email filters on those topics. > I'm debating between: > - Ask contributors to send filter-repo patches to the git mailing > list (if okay). > - Try out GerritHub (GitHub + Gerrit; see gerrithub.io) and maybe use it > - Assume there won't be many contributions (wouldn't be surprising) > and put up with GitHub PRs > > GitHub is great for ease of creating new repos, learning about other > developers, finding similar projects, creation of webhooks, etc. But > it's *awful* for code review. Gerrit is a lot better at code reviews > (though still has problems); so maybe dealing with both GitHub and > Gerrit would be reasonable. (Reviewable also exists, and is kinda > decent, but I can't respect anything that doesn't offer reviewability > of commit messages. And it makes me feel bad by making me want to > swat butterflies.) Email is a horrible medium for sending/receiving > changes, but at least it gets the overall code review model right > (commit-messages-are-first-order-objects-that-can-be-reviewed, > review-individual-commits, merge-per-topic, cover-letter included, > range-diff for high-level comparison of different iterations, > reversing-commit-order-display-based-on-author-timestamps-is-NOT-forgivable, > Change-IDs-are-ugly, magic-refs-are-disgusting, etc.), something no > GUI tool (yet) does to my knowledge. Thanks for your perspective. I have never really used GitHub for anything more than one off contributions, and so never really ended up using their review and merge tools too much. In fact, most of the open source projects I have been interested in used mailing lists, which is why I questioned myself if I'm biased towards such a workflow. > So...would anyone object if I asked filter-repo contributors to send > contributions via email to the git mailing list? -- Regards, Pratyush Yadav ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-24 19:46 ` Elijah Newren 2019-10-25 18:36 ` Pratyush Yadav @ 2019-10-26 18:25 ` Jakub Narebski 2019-10-28 10:13 ` Konstantin Ryabitsev 2019-10-30 6:21 ` Elijah Newren 1 sibling, 2 replies; 20+ messages in thread From: Jakub Narebski @ 2019-10-26 18:25 UTC (permalink / raw) To: Elijah Newren Cc: Pratyush Yadav, Git Mailing List, Bert Wesarg, Johannes Schindelin, Junio C Hamano, Birger Skogeng Pedersen, Philip Oakley, Johannes Sixt Elijah Newren <newren@gmail.com> writes: > On Thu, Oct 24, 2019 at 2:45 AM Pratyush Yadav <me@yadavpratyush.com> wrote: >> >> I recently had some discussions with Dscho about whether it is a better >> idea to use GitHub for development instead of email [0]. His argument >> was that GitHub makes it easier for newcomers to contribute, since more >> people are familiar with GitHub compared to mailing lists. Also, it is >> somewhat difficult to set up an email-based workflow. [...] > GitHub is great for ease of creating new repos, learning about other > developers, finding similar projects, creation of webhooks, etc. But > it's *awful* for code review. Gerrit is a lot better at code reviews > (though still has problems); so maybe dealing with both GitHub and > Gerrit would be reasonable. [...] > Email is a horrible medium for sending/receiving > changes, but at least it gets the overall code review model right > (commit-messages-are-first-order-objects-that-can-be-reviewed, > review-individual-commits, merge-per-topic, cover-letter included, > range-diff for high-level comparison of different iterations, > reversing-commit-order-display-based-on-author-timestamps-is-NOT-forgivable, > Change-IDs-are-ugly, magic-refs-are-disgusting, etc.), something no > GUI tool (yet) does to my knowledge. I agree with that. You need then to decide whether it is better to have it easier for beginners to contribute, or is it better to have it easier to review code. What are the pain points? Another source worth looking into is "Patches carved into stone tablets, why the Linux kernel developers rely on plain text email instead of using “modern” development tools." presentation by Greg KH from 2016[1][2]. But remember that git-gui is not Linux kernel; what works for one might not work for the other. It is unfortunate that we have no tools described in "Patches carved into developer sigchains"[3] wishfull blog post by Konstantin Ryabitsev... [1]: https://kernel-recipes.org/en/2016/talks/patches-carved-into-stone-tablets/ [2]: https://www.slideshare.net/ennael/kernel-recipes-2016-patches-carved-into-stone-tablets [3]: https://people.kernel.org/monsieuricon/patches-carved-into-developer-sigchains Regards, -- Jakub Narębski ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-26 18:25 ` Jakub Narebski @ 2019-10-28 10:13 ` Konstantin Ryabitsev 2019-10-30 6:21 ` Elijah Newren 1 sibling, 0 replies; 20+ messages in thread From: Konstantin Ryabitsev @ 2019-10-28 10:13 UTC (permalink / raw) To: Jakub Narebski Cc: Elijah Newren, Pratyush Yadav, Git Mailing List, Bert Wesarg, Johannes Schindelin, Junio C Hamano, Birger Skogeng Pedersen, Philip Oakley, Johannes Sixt On Sat, Oct 26, 2019 at 08:25:40PM +0200, Jakub Narebski wrote: > It is unfortunate that we have no tools described in "Patches carved > into developer sigchains"[3] wishfull blog post by Konstantin Ryabitsev... We are working to get us there. It's going to be a long process and we are choosing the evolutionary approach as opposed to staging a revolution. :) -K ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-26 18:25 ` Jakub Narebski 2019-10-28 10:13 ` Konstantin Ryabitsev @ 2019-10-30 6:21 ` Elijah Newren 2019-11-20 12:19 ` Birger Skogeng Pedersen 1 sibling, 1 reply; 20+ messages in thread From: Elijah Newren @ 2019-10-30 6:21 UTC (permalink / raw) To: Jakub Narebski Cc: Pratyush Yadav, Git Mailing List, Bert Wesarg, Johannes Schindelin, Junio C Hamano, Birger Skogeng Pedersen, Philip Oakley, Johannes Sixt On Sat, Oct 26, 2019 at 11:25 AM Jakub Narebski <jnareb@gmail.com> wrote: > > Elijah Newren <newren@gmail.com> writes: > > On Thu, Oct 24, 2019 at 2:45 AM Pratyush Yadav <me@yadavpratyush.com> wrote: > >> > >> I recently had some discussions with Dscho about whether it is a better > >> idea to use GitHub for development instead of email [0]. His argument > >> was that GitHub makes it easier for newcomers to contribute, since more > >> people are familiar with GitHub compared to mailing lists. Also, it is > >> somewhat difficult to set up an email-based workflow. > [...] > > GitHub is great for ease of creating new repos, learning about other > > developers, finding similar projects, creation of webhooks, etc. But > > it's *awful* for code review. Gerrit is a lot better at code reviews > > (though still has problems); so maybe dealing with both GitHub and > > Gerrit would be reasonable. > [...] > > Email is a horrible medium for sending/receiving > > changes, but at least it gets the overall code review model right > > (commit-messages-are-first-order-objects-that-can-be-reviewed, > > review-individual-commits, merge-per-topic, cover-letter included, > > range-diff for high-level comparison of different iterations, > > reversing-commit-order-display-based-on-author-timestamps-is-NOT-forgivable, > > Change-IDs-are-ugly, magic-refs-are-disgusting, etc.), something no > > GUI tool (yet) does to my knowledge. > > I agree with that. You need then to decide whether it is better to have > it easier for beginners to contribute, or is it better to have it easier > to review code. What are the pain points? I don't think that's the right comparison to make. The problems with GitHub code review aren't solely ease-of-use issues, they are more a quality-of-code issues. Projects which switch to GitHub tend to have overall commit quality go down IMO, because the system (a) makes it nearly impossible to review commit messages, so people eventually degrade to writing really bad ones, (b) makes it nearly impossible to review a rebased set of changes except redoing the entire review from square one, so people don't rebase, (c) punishes both users and reviewers who want to work with a rebased patch series by displaying the series out of order -- even for a completely linear history (it resorts based on author timestamp, not even committer timestamp), and (d) punishes reviewers/users when they attempt to review individual commits by making it harder to see and follow these comments (though it has gotten much better on this front). There are combination effects too. People to write really bad commit messages for all the additional "fixups" they have. People notice that commits don't bisect nicely, and instead of understanding that the broken code review system they wrote was the problem, they instead offer a new "squash merge" option, thus destroying all the carefully separated commits that help people understand the individual steps toward the new feature and making it impossible for anyone in the future to review it incrementally. You may say it's a workflow choice for some people to just squash all their stuff together at their option, which would be fine, but the problem is most developers don't take the time to think, and someone in charge of the project notices that they keep getting un-bisectable meaningless commits unless they force *everyone* in the project to use squash merging. Now they are punishing me for creating clean separate commits and forcing them all to be squashed -- all as an ugly workaround to the basic tool being *broken*. You can work around this by making a long sequence of PRs, one per what you intend to be a commit, and try to track the hierarchy -- something that GitHub certainly doesn't make easy. And then each PR becomes a trivial small change, and you are back to merging individual commits, and writing your own tools to manage a hierarchy of PRs...and reviewers hate you if you do that because it's extremely onerous on them. GitHub PRs aren't just hard to use, they literally degrade the quality of the code for people who have to use it. I've seen it happen with many projects. (At $DAYJOB, they have hundreds of repos and have at times used SVN then gitolite then gerrit then (Atlassian) stash then github (with other review tools like sourcegraph and reviewable tried and a few others read up on), with most of those existing simultaneously -- though we eventually pruned it down to just Gerrit and GitHub, with some projects in one and some in the other system. I've seen migrations between various combinations of these tools (though SVN and gitolite were nearly phased out by the time I joined), and seen results of how the tools caused differences in behavior. And yes, I know that GitHub's popularity means many have copied GitHub's PR model, from sourcegraph who were basically identical, to Stash which is similar but handled rebases better, and I think GitLab looks similar though I haven't used it that much (yet). Reviewable handled rebases a lot better, but still used the utterly broken model of not allowing commit messages to be reviewed -- and glitterbombed the interface with butterflies.) > Another source worth looking into is "Patches carved into stone tablets, > why the Linux kernel developers rely on plain text email instead of > using “modern” development tools." presentation by Greg KH from > 2016[1][2]. But remember that git-gui is not Linux kernel; what works > for one might not work for the other. > > It is unfortunate that we have no tools described in "Patches carved > into developer sigchains"[3] wishfull blog post by Konstantin Ryabitsev... Interesting links; thanks for providing them. And yes, I agree that git-gui won't necessarily have the same tradeoffs as the Linux kernel. But I do tend to be noisy here hoping I can spark someone with a modicum of talent for front-end development (I have neither the talent nor the inclination for web development) to write a sane webby code review system. Much of GitHub is awesome. And it has some apparently really nice thing for web devs, which seems to be part of why so many people use it. It's just so terribly awful at code reviews. But systems like Reviewable and GerritHub build on top of GitHub, so maybe there is hope someone can build just the review part and make it awesome. > [1]: https://kernel-recipes.org/en/2016/talks/patches-carved-into-stone-tablets/ > [2]: https://www.slideshare.net/ennael/kernel-recipes-2016-patches-carved-into-stone-tablets > [3]: https://people.kernel.org/monsieuricon/patches-carved-into-developer-sigchains > > Regards, > -- > Jakub Narębski ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-10-30 6:21 ` Elijah Newren @ 2019-11-20 12:19 ` Birger Skogeng Pedersen 2019-11-20 17:13 ` Elijah Newren 0 siblings, 1 reply; 20+ messages in thread From: Birger Skogeng Pedersen @ 2019-11-20 12:19 UTC (permalink / raw) To: Elijah Newren; +Cc: Git Mailing List Hei Elijah, On Wed, Oct 30, 2019 at 7:21 AM Elijah Newren <newren@gmail.com> wrote: > Projects which switch to GitHub tend to have overall commit quality go > down IMO, because the system (a) makes it nearly impossible to review > commit messages, so people eventually degrade to writing really bad > ones, What do you mean here, exactly? In what way is it "nearly impossible" to review commit messages in GH? br Birger ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: RFC: Moving git-gui development to GitHub 2019-11-20 12:19 ` Birger Skogeng Pedersen @ 2019-11-20 17:13 ` Elijah Newren 2021-04-19 20:33 ` Pain points in PRs [was: Re: RFC: Moving git-gui development to GitHub] SZEDER Gábor 0 siblings, 1 reply; 20+ messages in thread From: Elijah Newren @ 2019-11-20 17:13 UTC (permalink / raw) To: Birger Skogeng Pedersen; +Cc: Git Mailing List On Wed, Nov 20, 2019 at 4:20 AM Birger Skogeng Pedersen <birger.sp@gmail.com> wrote: > > Hei Elijah, > > On Wed, Oct 30, 2019 at 7:21 AM Elijah Newren <newren@gmail.com> wrote: > > Projects which switch to GitHub tend to have overall commit quality go > > down IMO, because the system (a) makes it nearly impossible to review > > commit messages, so people eventually degrade to writing really bad > > ones, > What do you mean here, exactly? In what way is it "nearly impossible" > to review commit messages in GH? My lengthy rant wasn't good enough for you? ;-) Well, I'll try even harder to bore everyone to death, then and extend my rant a bit... Reviewing is the process of providing feedback on proposed changes. Code review tools and mechanisms typically provide ways to (a) see proposed changes in isolation and (b) comment on individual lines and preserve context (with the goal of later merging a group of commits that implement something useful). git-format-patch and git-send-email combined with usage of email clients that know how to quote previous emails and let you respond inline are a natural way of achieving both (a) and (b). GUI tools can, of course, also achieve something similar by showing proposed changes and allowing commenting on individual lines in context. GitHub fails pretty hard on both counts, particularly for commit messages. It guides people to an overall diff rather than to the diffs inside individual commits and completely omits all commit messages when you do so. It does provide a way to access individual commits and their diffs, though it makes it somewhat unnatural. (It at least isn't as awful as it used to be in years past, when any comments on individual commits were completely lost and separated from the PR.) And even if you do "go against the grain" to comment on individual commits, there is no provided mechanism for commenting on the commit message itself. Instead it has to be given as a general comment on the overall set of changes, which then loses the context of what you are commenting on unless you re-include and quote it yourself. That usually doesn't happen, so when you comment on four commit messages in a review, you have four separate global comments and someone attempting to respond to them doesn't get to see the commit messages next to them, resulting in confusion. Even if you do re-include and quote the commit message bits you are commenting on, the resulting comment isn't in any way tied to the commit in question in the UI. So people who use GitHub for code review just don't bother. They write non-isolated commits and far from rarely use awful commit messages. Then they merge this abomination of history, or possibly even worse, they squash merge it all to make it impossible for any future readers to be able to dissect. Yeah, yeah, small features so that the review is smaller and easier. That is important, yes, but it still conflates two things and thus ruins reviews. Each PR should implement something useful. Commits should be designed both for current and future reviewers to see a clear path towards how that useful thing was implemented. Sometimes one commit is enough, but conflating the two necessarily either means sometimes creating one-commit PRs that don't actually implement anything useful, or a cognitive overload for code reviewers. GitHub simultaneously encourages bad behavior (bad commit messages since they are designed to not be reviewable, non-isolated commits, fixup commits that are never properly squashed, etc.) and penalizes good behavior (folks who try to clean up their sequence of commits are met with problems ranging from GitHub screwing up the topological ordering of a linear commit history, to poor ability to see incremental changes whenever rebasing happens, to reckless squash merging of all their careful work into a single commit as something close to an act of war against any future readers who want to dig into why certain changes were made). Yes, GitHub has gotten much better at code reviews; it's merely abysmally awful these days as opposed to a complete joke as it was in years past. But it's still so bad that I have seen people try to solve this by having a sequence of PRs per (small) feature they want to implement, even though GitHub provides no way to denote dependencies or ordering between PRs. You may think I've gone off on a bunch of tangents, but fundamentally I believe that almost all of these other problems predominantly arise as secondary and tertiary effects of not understanding that commit messages should be a first class citizen of code review. Sure, you can claim all you want that it is entirely possible to review commit messages within the GitHub UI and it's just extremely inconvenient, yadda, yadda, but the truth of the matter is that people everywhere struggle to even do code reviews at all, and when they do they all too often turn into rubberstamp exercises or don't delve deeply enough. In that context, I believe my "nearly impossible" wording is entirely warranted. Using a tool that simultaneously encourages bad behavior and penalizes good behavior will not so surprisingly yield bad behavior. GitHub PRs are such a tool, IMO. (To be fair, I'll note that GitHub has awesome code browsing, really easy setup and administration of new repositories and organizations, simple and reasonable and thus pretty nice code search, etc., etc. I'm not saying GitHub is a bad tool, I actually think most of it is a very excellent tool; I am just claiming that the PR section of it is very bad.) Elijah ^ permalink raw reply [flat|nested] 20+ messages in thread
* Pain points in PRs [was: Re: RFC: Moving git-gui development to GitHub] 2019-11-20 17:13 ` Elijah Newren @ 2021-04-19 20:33 ` SZEDER Gábor 2021-04-19 21:52 ` Junio C Hamano 2021-04-22 20:22 ` Felipe Contreras 0 siblings, 2 replies; 20+ messages in thread From: SZEDER Gábor @ 2021-04-19 20:33 UTC (permalink / raw) To: Elijah Newren; +Cc: Git Mailing List On Wed, Nov 20, 2019 at 09:13:04AM -0800, Elijah Newren wrote: > > On Wed, Oct 30, 2019 at 7:21 AM Elijah Newren <newren@gmail.com> wrote: > > > Projects which switch to GitHub tend to have overall commit quality go > > > down IMO, because the system (a) makes it nearly impossible to review > > > commit messages, so people eventually degrade to writing really bad > > > ones, > > What do you mean here, exactly? In what way is it "nearly impossible" > > to review commit messages in GH? > > My lengthy rant wasn't good enough for you? ;-) Well, I'll try even > harder to bore everyone to death, then and extend my rant a bit... Thank you very much for taking the time and effort to write it up. It summarized some of my main gripes with PR-based collaboration on GitHub with such clarity that I would never been able to achive. (The recent "Pain points in Git's patch flow" thread reminded me that I saved this message and even marked it as important ages ago... but haven't gotten around to read it until now. https://public-inbox.org/git/YHaIBvl6Mf7ztJB3@google.com/T/ ) > Reviewing is the process of providing feedback on proposed changes. > Code review tools and mechanisms typically provide ways to (a) see > proposed changes in isolation and (b) comment on individual lines and > preserve context (with the goal of later merging a group of commits > that implement something useful). > > git-format-patch and git-send-email combined with usage of email > clients that know how to quote previous emails and let you respond > inline are a natural way of achieving both (a) and (b). > > GUI tools can, of course, also achieve something similar by showing > proposed changes and allowing commenting on individual lines in > context. GitHub fails pretty hard on both counts, particularly for > commit messages. It guides people to an overall diff rather than to > the diffs inside individual commits and completely omits all commit > messages when you do so. It does provide a way to access individual > commits and their diffs, though it makes it somewhat unnatural. (It > at least isn't as awful as it used to be in years past, when any > comments on individual commits were completely lost and separated from > the PR.) And even if you do "go against the grain" to comment on > individual commits, there is no provided mechanism for commenting on > the commit message itself. Instead it has to be given as a general > comment on the overall set of changes, which then loses the context of > what you are commenting on unless you re-include and quote it > yourself. That usually doesn't happen, so when you comment on four > commit messages in a review, you have four separate global comments > and someone attempting to respond to them doesn't get to see the > commit messages next to them, resulting in confusion. Even if you do > re-include and quote the commit message bits you are commenting on, > the resulting comment isn't in any way tied to the commit in question > in the UI. > > So people who use GitHub for code review just don't bother. They > write non-isolated commits and far from rarely use awful commit > messages. Then they merge this abomination of history, or possibly > even worse, they squash merge it all to make it impossible for any > future readers to be able to dissect. > > Yeah, yeah, small features so that the review is smaller and easier. > That is important, yes, but it still conflates two things and thus > ruins reviews. Each PR should implement something useful. Commits > should be designed both for current and future reviewers to see a > clear path towards how that useful thing was implemented. Sometimes > one commit is enough, but conflating the two necessarily either means > sometimes creating one-commit PRs that don't actually implement > anything useful, or a cognitive overload for code reviewers. GitHub > simultaneously encourages bad behavior (bad commit messages since they > are designed to not be reviewable, non-isolated commits, fixup commits > that are never properly squashed, etc.) and penalizes good behavior > (folks who try to clean up their sequence of commits are met with > problems ranging from GitHub screwing up the topological ordering of a > linear commit history, to poor ability to see incremental changes > whenever rebasing happens, to reckless squash merging of all their > careful work into a single commit as something close to an act of war > against any future readers who want to dig into why certain changes > were made). Yes, GitHub has gotten much better at code reviews; it's > merely abysmally awful these days as opposed to a complete joke as it > was in years past. But it's still so bad that I have seen people try > to solve this by having a sequence of PRs per (small) feature they > want to implement, even though GitHub provides no way to denote > dependencies or ordering between PRs. > > You may think I've gone off on a bunch of tangents, but fundamentally > I believe that almost all of these other problems predominantly arise > as secondary and tertiary effects of not understanding that commit > messages should be a first class citizen of code review. > > Sure, you can claim all you want that it is entirely possible to > review commit messages within the GitHub UI and it's just extremely > inconvenient, yadda, yadda, but the truth of the matter is that people > everywhere struggle to even do code reviews at all, and when they do > they all too often turn into rubberstamp exercises or don't delve > deeply enough. In that context, I believe my "nearly impossible" > wording is entirely warranted. Using a tool that simultaneously > encourages bad behavior and penalizes good behavior will not so > surprisingly yield bad behavior. GitHub PRs are such a tool, IMO. > > (To be fair, I'll note that GitHub has awesome code browsing, really > easy setup and administration of new repositories and organizations, > simple and reasonable and thus pretty nice code search, etc., etc. > I'm not saying GitHub is a bad tool, I actually think most of it is a > very excellent tool; I am just claiming that the PR section of it is > very bad.) > > > Elijah ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Pain points in PRs [was: Re: RFC: Moving git-gui development to GitHub] 2021-04-19 20:33 ` Pain points in PRs [was: Re: RFC: Moving git-gui development to GitHub] SZEDER Gábor @ 2021-04-19 21:52 ` Junio C Hamano 2021-04-20 7:49 ` Son Luong Ngoc 2021-04-22 20:22 ` Felipe Contreras 1 sibling, 1 reply; 20+ messages in thread From: Junio C Hamano @ 2021-04-19 21:52 UTC (permalink / raw) To: SZEDER Gábor; +Cc: Elijah Newren, Git Mailing List SZEDER Gábor <szeder.dev@gmail.com> writes: > On Wed, Nov 20, 2019 at 09:13:04AM -0800, Elijah Newren wrote: >> > On Wed, Oct 30, 2019 at 7:21 AM Elijah Newren <newren@gmail.com> wrote: >> > > Projects which switch to GitHub tend to have overall commit quality go >> > > down IMO, because the system (a) makes it nearly impossible to review >> > > commit messages, so people eventually degrade to writing really bad >> > > ones, >> > What do you mean here, exactly? In what way is it "nearly impossible" >> > to review commit messages in GH? >> >> My lengthy rant wasn't good enough for you? ;-) Well, I'll try even >> harder to bore everyone to death, then and extend my rant a bit... > > Thank you very much for taking the time and effort to write it up. > > It summarized some of my main gripes with PR-based collaboration on > GitHub with such clarity that I would never been able to achive. > > (The recent "Pain points in Git's patch flow" thread reminded me that > I saved this message and even marked it as important ages ago... but > haven't gotten around to read it until now. > > https://public-inbox.org/git/YHaIBvl6Mf7ztJB3@google.com/T/ > ) Interesting. I recently had a similar experience with Gerrit, where a patch I have seen quite a few times on Gerrit at $WORK had an embarrassing syntactic issues I did not discover until it hit the public mailing list. It may be different from reviewer to reviewer, but at least to me, e-mailed workflow forces me to apply the patch to my tree before I can say anything non-trivially intelligent about it and once applied to the tree, it actually let's me play with the code (like, say, asking the compiler to give its opinion on it). The experience I had with Gerrit at $WORK gave me side-to-side diff with context with arbitrary on-demand width, even with per-word differences highlighted, and it may be wonderful that I can get all of these _without_ having to apply the patch myself, but what it gave me stopped there. There are a lot more things that need to happen beyond looking at what changed in the context of the files during a review, from grepping in the tree for functions and variables used in the patch to see their uses in other parts of the system that the patch does not touch, to make various trial merges to different topics that are in flight, and Gerrit didn't help me an iota, but still gave me a (false) impression that I _did_ review the patch fully, when I only have scraped its surface, and the worst part of the story was that the UI feld so nice that I didn't even realize that I was doing a lot more shoddy job in reviewing than what I usually do to e-mailed patches. >> Reviewing is the process of providing feedback on proposed changes. >> Code review tools and mechanisms typically provide ways to (a) see >> proposed changes in isolation and (b) comment on individual lines and >> preserve context (with the goal of later merging a group of commits >> that implement something useful). >> >> git-format-patch and git-send-email combined with usage of email >> clients that know how to quote previous emails and let you respond >> inline are a natural way of achieving both (a) and (b). >> >> GUI tools can, of course, also achieve something similar by showing >> proposed changes and allowing commenting on individual lines in >> context. GitHub fails pretty hard on both counts, particularly for >> commit messages. It guides people to an overall diff rather than to >> the diffs inside individual commits and completely omits all commit >> messages when you do so. It does provide a way to access individual >> commits and their diffs, though it makes it somewhat unnatural. (It >> at least isn't as awful as it used to be in years past, when any >> comments on individual commits were completely lost and separated from >> the PR.) And even if you do "go against the grain" to comment on >> individual commits, there is no provided mechanism for commenting on >> the commit message itself. Instead it has to be given as a general >> comment on the overall set of changes, which then loses the context of >> what you are commenting on unless you re-include and quote it >> yourself. That usually doesn't happen, so when you comment on four >> commit messages in a review, you have four separate global comments >> and someone attempting to respond to them doesn't get to see the >> commit messages next to them, resulting in confusion. Even if you do >> re-include and quote the commit message bits you are commenting on, >> the resulting comment isn't in any way tied to the commit in question >> in the UI. >> >> So people who use GitHub for code review just don't bother. They >> write non-isolated commits and far from rarely use awful commit >> messages. Then they merge this abomination of history, or possibly >> even worse, they squash merge it all to make it impossible for any >> future readers to be able to dissect. >> >> Yeah, yeah, small features so that the review is smaller and easier. >> That is important, yes, but it still conflates two things and thus >> ruins reviews. Each PR should implement something useful. Commits >> should be designed both for current and future reviewers to see a >> clear path towards how that useful thing was implemented. Sometimes >> one commit is enough, but conflating the two necessarily either means >> sometimes creating one-commit PRs that don't actually implement >> anything useful, or a cognitive overload for code reviewers. GitHub >> simultaneously encourages bad behavior (bad commit messages since they >> are designed to not be reviewable, non-isolated commits, fixup commits >> that are never properly squashed, etc.) and penalizes good behavior >> (folks who try to clean up their sequence of commits are met with >> problems ranging from GitHub screwing up the topological ordering of a >> linear commit history, to poor ability to see incremental changes >> whenever rebasing happens, to reckless squash merging of all their >> careful work into a single commit as something close to an act of war >> against any future readers who want to dig into why certain changes >> were made). Yes, GitHub has gotten much better at code reviews; it's >> merely abysmally awful these days as opposed to a complete joke as it >> was in years past. But it's still so bad that I have seen people try >> to solve this by having a sequence of PRs per (small) feature they >> want to implement, even though GitHub provides no way to denote >> dependencies or ordering between PRs. >> >> You may think I've gone off on a bunch of tangents, but fundamentally >> I believe that almost all of these other problems predominantly arise >> as secondary and tertiary effects of not understanding that commit >> messages should be a first class citizen of code review. >> >> Sure, you can claim all you want that it is entirely possible to >> review commit messages within the GitHub UI and it's just extremely >> inconvenient, yadda, yadda, but the truth of the matter is that people >> everywhere struggle to even do code reviews at all, and when they do >> they all too often turn into rubberstamp exercises or don't delve >> deeply enough. In that context, I believe my "nearly impossible" >> wording is entirely warranted. Using a tool that simultaneously >> encourages bad behavior and penalizes good behavior will not so >> surprisingly yield bad behavior. GitHub PRs are such a tool, IMO. >> >> (To be fair, I'll note that GitHub has awesome code browsing, really >> easy setup and administration of new repositories and organizations, >> simple and reasonable and thus pretty nice code search, etc., etc. >> I'm not saying GitHub is a bad tool, I actually think most of it is a >> very excellent tool; I am just claiming that the PR section of it is >> very bad.) >> >> >> Elijah ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Pain points in PRs [was: Re: RFC: Moving git-gui development to GitHub] 2021-04-19 21:52 ` Junio C Hamano @ 2021-04-20 7:49 ` Son Luong Ngoc 2021-04-20 20:17 ` Junio C Hamano 0 siblings, 1 reply; 20+ messages in thread From: Son Luong Ngoc @ 2021-04-20 7:49 UTC (permalink / raw) To: Junio C Hamano; +Cc: SZEDER Gábor, Elijah Newren, Git Mailing List Hi Junio, On Mon, Apr 19, 2021 at 02:52:16PM -0700, Junio C Hamano wrote: > > Interesting. > > I recently had a similar experience with Gerrit, where a patch I > have seen quite a few times on Gerrit at $WORK had an embarrassing > syntactic issues I did not discover until it hit the public mailing > list. It may be different from reviewer to reviewer, but at least > to me, e-mailed workflow forces me to apply the patch to my tree > before I can say anything non-trivially intelligent about it and > once applied to the tree, it actually let's me play with the code > (like, say, asking the compiler to give its opinion on it). > I think this is very much the point of having a good CI pipeline: - Apply patches into tree - Compile - Run relevant tests I'm not sure about Github PR, but Gitlab's MR workflow also provide a merge queue implementation(Merge Train) coupled with CI to ensure the merge result is accurately verified against tests. What might be missing from (most) CI services is a bisect pipeline that help us identify culprit commit that broke the tests, but that could be engineered. > The experience I had with Gerrit at $WORK gave me side-to-side diff > with context with arbitrary on-demand width, even with per-word > differences highlighted, and it may be wonderful that I can get all > of these _without_ having to apply the patch myself, but what it > gave me stopped there. There are a lot more things that need to > happen beyond looking at what changed in the context of the files > during a review, from grepping in the tree for functions and > variables used in the patch to see their uses in other parts of the > system that the patch does not touch, to make various trial merges > to different topics that are in flight, and Gerrit didn't help me an > iota, but still gave me a (false) impression that I _did_ review the > patch fully, when I only have scraped its surface, and the worst > part of the story was that the UI feld so nice that I didn't even > realize that I was doing a lot more shoddy job in reviewing than > what I usually do to e-mailed patches. > Yes, having context beyond the diff is very important for Code Review. This is why I strongly recommend SourceGraph usages to folks I know. > https://sourcegraph.com/github.com/git/git/-/blob/builtin/repack.c#L61:13 > https://sourcegraph.com/github.com/git/git/-/commit/9218c6a40c37023a1f434222d501218cf8157857#diff-01ec5e99d04fb7ba9753f219ab638469R64 (I have no affiliation with SourceGraph, just really enjoy their product) A mordern codesearch service like sourcegraph could help decorate diff with relevant code intelligent like finding references, definitions and assist with the Code Review process. Afaik, sourcegraph has been building more integrations with Github and Gitlab, not too sure about Gerrit (but Im sure it's not far reach given their GraphQL API). So I guess mordern toolings are available for these usecases, but fragmented and subjective to personal workflow. Regards, Son Luong. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Pain points in PRs [was: Re: RFC: Moving git-gui development to GitHub] 2021-04-20 7:49 ` Son Luong Ngoc @ 2021-04-20 20:17 ` Junio C Hamano 0 siblings, 0 replies; 20+ messages in thread From: Junio C Hamano @ 2021-04-20 20:17 UTC (permalink / raw) To: Son Luong Ngoc; +Cc: SZEDER Gábor, Elijah Newren, Git Mailing List Son Luong Ngoc <sluongng@gmail.com> writes: > On Mon, Apr 19, 2021 at 02:52:16PM -0700, Junio C Hamano wrote: >> >> Interesting. >> >> I recently had a similar experience with Gerrit, where a patch I >> have seen quite a few times on Gerrit at $WORK had an embarrassing >> syntactic issues I did not discover until it hit the public mailing >> list. It may be different from reviewer to reviewer, but at least >> to me, e-mailed workflow forces me to apply the patch to my tree >> before I can say anything non-trivially intelligent about it and >> once applied to the tree, it actually let's me play with the code >> (like, say, asking the compiler to give its opinion on it). >> > > I think this is very much the point of having a good CI pipeline: > - Apply patches into tree > - Compile > - Run relevant tests It is true that CI can spot -Wdecl-after-stmt, but CI only covers just one part of what is needed while I do my reviews. It would also be doable with web interface to look at all the places that functions modified by the patch are referred to, and to check if the change makes sense in the context of the entire tree. It would also be doable with web interface to looking at the evolution of the code being changed. There are some things, like building and using for everyday life, running the built binary under debuggers, etc., that may be harder to do with web interface, but I am sure many things would become doable given enough time and effort. However. > Yes, having context beyond the diff is very important for Code Review. > This is why I strongly recommend SourceGraph usages to folks I know. > ... > So I guess mordern toolings are available for these usecases, but > fragmented and subjective to personal workflow. My point in the message you are responding to was that I can do all what is necessary locally, with my favorite toolset, once I apply a patch to my tree. The only thing that Gerrit allowed me to skip in my recent adventure was to download the patch and apply to a newly created topic branch locally to my tree, before I can start doing some of the things (e.g. "look at the patch, examine with larger context as needed", "grep for the symbols at the same revision in paths that are not touched by the patch") that was needed to review. And while I know I shouldn't blame the tool for this, but it did mislead me to false sense of "I've reviewed this change well enough", when I haven't. By the way, I've been playing with "b4 am" and it's been a pleasant experience so far. Thanks. ^ permalink raw reply [flat|nested] 20+ messages in thread
* RE: Pain points in PRs [was: Re: RFC: Moving git-gui development to GitHub] 2021-04-19 20:33 ` Pain points in PRs [was: Re: RFC: Moving git-gui development to GitHub] SZEDER Gábor 2021-04-19 21:52 ` Junio C Hamano @ 2021-04-22 20:22 ` Felipe Contreras 1 sibling, 0 replies; 20+ messages in thread From: Felipe Contreras @ 2021-04-22 20:22 UTC (permalink / raw) To: SZEDER Gábor, Elijah Newren; +Cc: Git Mailing List SZEDER Gábor wrote: > On Wed, Nov 20, 2019 at 09:13:04AM -0800, Elijah Newren wrote: > > > On Wed, Oct 30, 2019 at 7:21 AM Elijah Newren <newren@gmail.com> wrote: > > > > Projects which switch to GitHub tend to have overall commit quality go > > > > down IMO, because the system (a) makes it nearly impossible to review > > > > commit messages, so people eventually degrade to writing really bad > > > > ones, > > > What do you mean here, exactly? In what way is it "nearly impossible" > > > to review commit messages in GH? > > > > My lengthy rant wasn't good enough for you? ;-) Well, I'll try even > > harder to bore everyone to death, then and extend my rant a bit... > > Thank you very much for taking the time and effort to write it up. > > It summarized some of my main gripes with PR-based collaboration on > GitHub with such clarity that I would never been able to achive. > > (The recent "Pain points in Git's patch flow" thread reminded me that > I saved this message and even marked it as important ages ago... but > haven't gotten around to read it until now. > > https://public-inbox.org/git/YHaIBvl6Mf7ztJB3@google.com/T/ > ) People in general follow the path of least resistance; if you make X harder, people will spend more effort doing X, but they will do less of it. People have been using email for decades, and there's all kinds of tools for dealing with it (I for example am using a free provider [Gmail], a tool to download part of my mails [mbsync], another tool to index it [notmuch], yet another tool to read it [notmuch-vim], yet another tool to write a response [vim], and I will be using another to send it [msmtp]). Or I cound simply use the Gmail app on my mobile phone. Email is extremely convenient. Since it's easy to reply, people do reply, often. Which is why it's not rare at all that a patch series becomes a discussion thread, which are easy to deal with through email. GitHub adds a layer of inconvenience, so people tend to avoid big discussions in a GitHub pull request. It's just not fun. I also did a blog post explaining why email is just superior [1]. Two other points that were not mentioned that make email superior is that 1) you can easily cross-post, simply CC another project and that discussion spreads 2) it scales for projects that don't use GitHub; you don't need an account anywhere, and usually you don't need to subscribe to post in the mailing list. It's no coincidence that the most successful project in history (Linux) uses email to deal with contributions: nothing else comes even close. Cheers. [1] https://felipec.wordpress.com/2010/01/19/why-bugzilla-sucks-for-handling-patches/ -- Felipe Contreras ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2021-04-22 20:22 UTC | newest] Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-10-23 20:13 RFC: Moving git-gui development to GitHub Pratyush Yadav 2019-10-24 2:06 ` Junio C Hamano 2019-10-24 7:37 ` Birger Skogeng Pedersen 2019-10-24 17:16 ` Denton Liu 2019-10-24 19:06 ` Pratyush Yadav 2019-10-24 21:29 ` Pratyush Yadav 2019-10-25 5:33 ` Birger Skogeng Pedersen 2019-10-25 17:47 ` Pratyush Yadav 2019-10-24 19:46 ` Elijah Newren 2019-10-25 18:36 ` Pratyush Yadav 2019-10-26 18:25 ` Jakub Narebski 2019-10-28 10:13 ` Konstantin Ryabitsev 2019-10-30 6:21 ` Elijah Newren 2019-11-20 12:19 ` Birger Skogeng Pedersen 2019-11-20 17:13 ` Elijah Newren 2021-04-19 20:33 ` Pain points in PRs [was: Re: RFC: Moving git-gui development to GitHub] SZEDER Gábor 2021-04-19 21:52 ` Junio C Hamano 2021-04-20 7:49 ` Son Luong Ngoc 2021-04-20 20:17 ` Junio C Hamano 2021-04-22 20:22 ` Felipe Contreras
Code repositories for project(s) associated with this public inbox https://80x24.org/mirrors/git.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).