LWN: Comments on "How Red Hat uses GitLab for kernel development" https://lwn.net/Articles/871237/ This is a special feed containing comments posted to the individual LWN article titled "How Red Hat uses GitLab for kernel development". en-us Thu, 30 Oct 2025 04:40:20 +0000 Thu, 30 Oct 2025 04:40:20 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net How Red Hat uses GitLab for kernel development https://lwn.net/Articles/874478/ https://lwn.net/Articles/874478/ misc <div class="FormattedComment"> You might be interested in the Fedeproxy project ( <a href="https://fedeproxy.eu/">https://fedeproxy.eu/</a> ) and the Forgefed project ( <a href="https://forgefed.peers.community/">https://forgefed.peers.community/</a> )<br> <p> While federation do not solve the issue of centralization (as we still need some reference point), it reduce the risks of SPOF, and by making forges interoperable, it would also limit problem if one turn bad.<br> </div> Sun, 31 Oct 2021 14:12:14 +0000 git "volatile" branches https://lwn.net/Articles/873873/ https://lwn.net/Articles/873873/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; There&#x27;s arguably two separate sets of workflows you want out of your SCM:</font><br> <font class="QuotedText">&gt; ...</font><br> <font class="QuotedText">&gt; The ability to share the mutable history is useful in some cases, ...</font><br> <p> Yes it would save a lot of confusion if git provided some kind of &quot;volatile&quot; branch marker so publishers can share their intentions and set mutability expectations. Currently this is performed with poor branch naming conventions or worse: pure word of mouth.<br> <p> Giving the distinction between 1. and 2. a name would elevate it and also clarify the recurring &quot;don&#x27;t rebase public branches&quot; advice which is exactly what intel-next and others do all the time!? And hey, who knows it could even stop questions like &quot;why can&#x27;t I commit and push at the same time&quot; from Fossil and other fans.<br> <p> <a href="https://www.google.com/search?q=git+volatile+rebase+branches">https://www.google.com/search?q=git+volatile+rebase+branches</a> <br> </div> Mon, 25 Oct 2021 00:41:13 +0000 Fossil https://lwn.net/Articles/873787/ https://lwn.net/Articles/873787/ flussence <div class="FormattedComment"> I&#x27;d liken it to the &quot;preview comment&quot; button here - that one roadbump causes me to put far more care into what I&#x27;m emitting than if there&#x27;d just been a single post button (even if it doesn&#x27;t seem like it sometimes). I&#x27;ve used many other UIs for committing what I type to the internet, and it feels like there&#x27;s a definite correlation between the overall quality of results in some of them and whether they let (or require) you experiment and make mistakes in private.<br> </div> Fri, 22 Oct 2021 20:56:23 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/873725/ https://lwn.net/Articles/873725/ Klavs <div class="FormattedComment"> I must say I have the exact same experience with gitlab - their omnibase package is wrapped in ansible and simply &quot;fixes everything&quot; - and upgrades have been very smooth for years.. Major upgrades though - we have found better to do by installing on new server and doing recovery test (which we WANT to test regularly anyways).<br> </div> Fri, 22 Oct 2021 13:27:14 +0000 Fossil https://lwn.net/Articles/873713/ https://lwn.net/Articles/873713/ farnz <p>There's arguably two separate sets of workflows you want out of your SCM: <ol> <li>Immutable shared history, showing how the product developed. This is curated by the committers to tell a story about the code. <li>Mutable private history, where you're checkpointing your work in interesting places so that nothing of interest is lost when you try something out. You will later rebase and restack this to become the immutable shared history you push. </ol> <p>The ability to share the mutable history is useful in some cases, but to do it well adds a lot of complexity (see Mercurial's "Changeset Evolution" extension). But the ability to work locally and store up commits of random changes, then to build and test the final history you wish to push, is extremely useful. Fri, 22 Oct 2021 10:56:18 +0000 Fossil https://lwn.net/Articles/873674/ https://lwn.net/Articles/873674/ marcH <div class="FormattedComment"> Interesting, thanks!<br> <p> Also realized I forgot to mention Fossil: <br> <a href="https://www.fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki#history">https://www.fossil-scm.org/home/doc/trunk/www/fossil-v-gi...</a><br> &quot;One way to describe Fossil is that it is &quot;GitHub-in-a-box.&quot;<br> <p> That&#x27;s probably because I never used it and also because I violently disagree with the lack of history rewriting:<br> <p> <font class="QuotedText">&gt; When every commit is pushed to the parent repo by default, it encourages a working style in which every commit is tested first. It encourages thinking before acting. We believe this is an inherently good thing.</font><br> <p> Very ironic considering I use git rebase -i to _test_ a variety of &quot;what if&quot; scenarios every single day.<br> <p> I find the rest of the page very impressive.<br> </div> Thu, 21 Oct 2021 22:36:18 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/872365/ https://lwn.net/Articles/872365/ Lennie <div class="FormattedComment"> I&#x27;m really surprised we aren&#x27;t seeing a more decentralized git usage being adopted.<br> <p> Their are projects which have build a system which allows issues to be tracked in a special git repository:<br> <p> https://dist-bugs.branchable.com/software/<br> </div> Sat, 09 Oct 2021 15:49:38 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/872118/ https://lwn.net/Articles/872118/ fung1 <div class="FormattedComment"> <font class="QuotedText">&gt; SPOF / centralization is the only real problem. All other issues are either fairly easy to solve or solved already (kudos to RedHat for trying to move things forward _and_ sharing their efforts)</font><br> <font class="QuotedText">&gt; </font><br> <font class="QuotedText">&gt; So the next (and big!) step is to find some good distributed database model and implement a free software forge based on it. Funny enough that sounds very much like what Bitkeeper and then git achieved.</font><br> <p> As of a few years ago, Gerrit moved all comments and discussions into Git objects so they can be replicated and fetched along with the merged commits and proposed changes for a repository. They basically got rid of the RDBMS entirely, except for one UI-related feature for tracking which specific files you&#x27;ve already &quot;seen&quot; when reviewing a particular version of a patch (which has fairly ephemeral utility at best, and almost nobody I know relies on that behavior anyway).<br> </div> Thu, 07 Oct 2021 12:22:09 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/872046/ https://lwn.net/Articles/872046/ prarit <div class="FormattedComment"> @johannbg, we looked at the features of many git-forges, and at the time GitLab offered us the best feature set. I&#x27;m not saying that going with GitLab is the choice that upstream should make but it has worked for us very well and we&#x27;re happy with it. As Don said in the video, we continue to work with GitLab on enhancing their software to make it work better both with Red Hat and with upstream.<br> </div> Wed, 06 Oct 2021 17:33:12 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871975/ https://lwn.net/Articles/871975/ johannbg <div class="FormattedComment"> Why did Red Hat chose GitLab ( as opposed to Github,Sourcehut or some other git forge )?<br> </div> Tue, 05 Oct 2021 18:01:02 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871925/ https://lwn.net/Articles/871925/ jezuch <div class="FormattedComment"> That at least was my impression. It was a big company with big projects and a huge build farm, so perhaps it was just overloaded. But from a developer&#x27;s point of view there were frequent stability issues and the CI team was definitely not sitting bored.<br> </div> Tue, 05 Oct 2021 14:37:29 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871921/ https://lwn.net/Articles/871921/ anselm <p> I'm in charge of our company's Gitlab instance and it doesn't require “constant babysitting”. Gitlab publishes new versions on a regular basis (feature updates every month, and bug fix/security updates in between as needed), but these generally install completely seamlessly and with minimal downtime if any. </p> Tue, 05 Oct 2021 09:49:25 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871851/ https://lwn.net/Articles/871851/ zev Indeed I was not -- that does looks quite useful! Though after a few minutes of poking at it semi-randomly, its patch-discussion linking seems fairly spotty unfortunately (oddly, often failing even in cases where there <i>is</i> a Link: tag right there in the commit message). Nevertheless, I'll probably be making use of that in the future, thanks for the tip. Mon, 04 Oct 2021 16:48:20 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871780/ https://lwn.net/Articles/871780/ willy <div class="FormattedComment"> You must not be aware of <a href="https://cregit.linuxsources.org/">https://cregit.linuxsources.org/</a><br> </div> Mon, 04 Oct 2021 14:19:52 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871760/ https://lwn.net/Articles/871760/ taladar <div class="FormattedComment"> I can&#x27;t help but feel that Bugzilla is not representative for a tool here because of its highly email-focussed workflow. It is basically the bug tracker for people who already liked the existing workflow instead of one for the people who use bug trackers similar to the ones used in other projects.<br> </div> Mon, 04 Oct 2021 10:37:47 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871758/ https://lwn.net/Articles/871758/ jezuch <div class="FormattedComment"> I was surprised that RedHat don&#x27;t run their own instance of GitLab. Especially given the concerns that they may be siloing their data in some external company&#x27;s silos. On the other hand, my previous employer did have their own instance of GL and it required constant babysitting. So yeah I get why they want to outsource the pain :)<br> </div> Mon, 04 Oct 2021 09:52:54 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871711/ https://lwn.net/Articles/871711/ bfields <div class="FormattedComment"> Somehow I missed that!<br> <p> It&#x27;s fun to do things like &#x27;git range-diff origin/master mwork@{1} mywork&#x27;<br> <p> Very neat, I&#x27;ve always wanted that--though honestly I feel like I&#x27;ve gotten long OK without.<br> <p> </div> Sun, 03 Oct 2021 19:19:56 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871710/ https://lwn.net/Articles/871710/ mkubecek <div class="FormattedComment"> How about &quot;git range-diff origin/master foo-v1 foo-v2&quot;? Or &quot;git range-diff [prev base]..foo-v1 origin/master..foo-v2&quot; if I still have the branch from v1 review and don&#x27;t want to rebase it.<br> </div> Sun, 03 Oct 2021 19:15:37 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871701/ https://lwn.net/Articles/871701/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; A bigger issue, though, has to do with robustness. If kernel.org is not reachable, kernel development still goes on; an outage is inconvenient but not really a big problem. Adding a central forge, though, risks creating a situation where, should it go down, no work can get done.</font><br> <p> <font class="QuotedText">&gt;Perhaps the biggest concern, though, has to do with making GitLab into a single point of failure; what if the company is bought out by somebody who is hostile to Red Hat and its goals?</font><br> <p> SPOF / centralization is the only real problem. All other issues are either fairly easy to solve or solved already (kudos to RedHat for trying to move things forward _and_ sharing their efforts)<br> <p> So the next (and big!) step is to find some good distributed database model and implement a free software forge based on it. Funny enough that sounds very much like what Bitkeeper and then git achieved.<br> <p> <font class="QuotedText">&gt; In that case, it would be relatively easy to pull all of the necessary data out of the system; the Git trees are already mirrored elsewhere. They have a script now that can take all of the comments from GitLab and dump them into a public-inbox instance.</font><br> <p> Sure but that would be a huge step back.<br> <p> </div> Sun, 03 Oct 2021 18:02:15 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871700/ https://lwn.net/Articles/871700/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; Git has a native diff tool for ranges of commits: https://git-scm.com/docs/git-range-diff</font><br> <p> And neither gitlab not github do range-diff : <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/24096">https://gitlab.com/gitlab-org/gitlab/-/issues/24096</a><br> <p> Github is especially bad at it.<br> <p> Of course using a forge and git range-diff are not mutually exclusive, in fact it&#x27;s easier than pure email + range-diff.<br> </div> Sun, 03 Oct 2021 17:41:15 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871682/ https://lwn.net/Articles/871682/ mathstuf <div class="FormattedComment"> Alas, the issue has been open for a long time: <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/24096">https://gitlab.com/gitlab-org/gitlab/-/issues/24096</a><br> </div> Sun, 03 Oct 2021 12:24:23 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871676/ https://lwn.net/Articles/871676/ pbonzini <p>As a Red Hatter and an upstream developer, it's a bit more complicated than this. Despite being on a nominally old version, lots of subsystems in the RHEL kernel are rebased every 4-8 months to the latest version in the upstream kernel. For example, if you compare arch/x86/kvm/ between kernel-4.18.0-333.el8 and upstream 4.18, you get <pre> 72 files changed, 45945 insertions(+), 26903 deletions(-)</pre> <p>If you do the same with 5.13, you get <pre> 36 files changed, 985 insertions(+), 927 deletions(-)</pre> <p>These differences in turn are mostly because the kernel version backports the bugfix parts of what went into the 5.14 merge window. If it weren't for that, it would be even smaller. <p>As a result, there are two typical kinds of pull request in the RHEL kernel: bugfixes that are verbatim copies of 1-8 upstream commits, and large backports consisting of 200 to 1000 patches. The former are almost entirely trivial to review; often the developer who posts them is the same person who did the work upstream. The latter account for most of the 15000 patches mentioned in the article; of those, about 3-5% patches will have some difference with the corresponding upstream commit, typically due to bugfixes being backported out of order, and even fewer will be exclusive to RHEL. Of the 15000 patches, perhaps 1000 are going to be ever "clicked on" in the Gitlab merge request web pages. <p>As a result, review used to be 95+% the menial work of finding which patches have differences with the corresponding upstream. Such work is perfect for bots: they check the correspondance between the RHEL commit and the one in the "cherry picked from ..." lines (and the presence of those lines), signal differences, and let humans actually do the interesting parts of the review. <p>So, on one hand I absolutely love the GitLab-based development process that Prarit and Donald and many others have implemented. On the other hand, I would be wary to suggest that it could be applied to anything but the stable kernel process. In particular, code review on the web at the scale of Linux development is a complete non-starter until GitLab or GitHub implement a UI that maps to "git range-diff". Sun, 03 Oct 2021 10:48:50 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871664/ https://lwn.net/Articles/871664/ anmoch <div class="FormattedComment"> Git has a native diff tool for ranges of commits: https://git-scm.com/docs/git-range-diff<br> </div> Sun, 03 Oct 2021 06:39:10 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871663/ https://lwn.net/Articles/871663/ epa <div class="FormattedComment"> The review comments should be part of the same git branch, as special commits that only have a commit message. Then you can add new commits in response to the review, and it’s easy to see what you changed and verify that the starting point is what was reviewed.<br> </div> Sun, 03 Oct 2021 06:24:38 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871648/ https://lwn.net/Articles/871648/ zev <div class="FormattedComment"> I&#x27;ve yet to actually use it myself, by Konstantin Ryabitsev&#x27;s b4 tool appears to offer support for comparing revisions of a patch series: <a href="https://git.kernel.org/pub/scm/utils/b4/b4.git/tree/b4/command.py?id=ef97d5c407757d2b190a576f1f86330db6be036d#n215">https://git.kernel.org/pub/scm/utils/b4/b4.git/tree/b4/co...</a><br> <p> Personally, I&#x27;ve recently found myself often wishing that &quot;Link:&quot; tags were more universally used. Commit messages are nice, but it&#x27;s not at all infrequent that I really want to find the discussion that preceded a patch being accepted. Without a nice lore.kernel.org link right there, finding that is a lot more tedious.<br> </div> Sat, 02 Oct 2021 22:59:03 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871639/ https://lwn.net/Articles/871639/ fratti <p>I've also just found out about the <tt>--interdiff</tt> switch of <tt>git format-patch</tt>, so I suppose the ball is in my court to make things easier for maintainers. (Though admittedly, this again places the trust in the submitter to not mess this comparison up, either accidentally or intentionally.)</p> <p>Perhaps all we need is a <tt>--supplants=&lt;message id&gt;</tt> for <tt>git send-email</tt> to get better tracking of patch series.</p> <p>Thank you for sharing your perspective.</p> Sat, 02 Oct 2021 20:35:50 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871636/ https://lwn.net/Articles/871636/ bfields <div class="FormattedComment"> <font class="QuotedText">&gt;I cannot even begin to imagine how painful it must be for reviewers to trust me that I only changed the parts of the driver I said I changed in my cover letter in a subsequent submission of a driver, or to reference back to the comments on the previous submission to see if everything has been addressed.</font><br> <p> It&#x27;s not *that* hard to find the previous version in my saved mail and compare.<br> <p> You could compare two versions with<br> <p> $ git checkout -b foo-v1 origin/master<br> $ git am foo-v1-mbox<br> $ git checkout -b foo-v2 origin/master<br> $ git am foo-v2-mbox<br> <p> and then<br> <p> $ git diff foo-v1..foo-v2<br> <p> or<br> <p> $ git diff foo-v1^^..foo-v2^^<br> <p> though I&#x27;ve rarely done that in practice.<br> <p> Probably this should all be easier, but it&#x27;s not impossible.<br> </div> Sat, 02 Oct 2021 20:01:26 +0000 How Red Hat uses GitLab for kernel development https://lwn.net/Articles/871629/ https://lwn.net/Articles/871629/ fratti <div class="FormattedComment"> I appreciate the write-up.<br> <p> To me, it seems like something that provides some of the benefits of a forge without the full suite of features (and complexity) of a forge would be the best way forward. Say, a better system to manage and track patch series than patchwork currently is, with a way for maintainers to mark a series as merged or rejected, and a way for submitters of patch series to assign a unique identifier to a series so subsequent versions of it are linked to each other and can be compared. Being able to easily diff the diffs of different versions of a series would likely help. While developing, I often wish there was a meta-history for the actual git history wherein I could track the progress on my patches while still keeping a clean patch-centred history. Perhaps something like this already exists, and I&#x27;m simply not aware of it.<br> <p> I&#x27;m fairly new to kernel development, mostly having gotten started writing patches and sending them in in the past 2 months, but I cannot even begin to imagine how painful it must be for reviewers to trust me that I only changed the parts of the driver I said I changed in my cover letter in a subsequent submission of a driver, or to reference back to the comments on the previous submission to see if everything has been addressed.<br> </div> Sat, 02 Oct 2021 16:47:39 +0000