GCC Newspaper
JULY 29, 2026
gcc Proposed

Discourage personal branches in the main GCC repository

Discussion on discouraging or disallowing personal branches in the main GCC repository due to recurring push hook issues.

This thread discusses recent issues with the GCC repository being temporarily locked due to users pushing personal branches, which interferes with server hooks intended for official branches. Jonathan Wakely suggests that personal branches should be discouraged or disallowed in the main repository, recommending alternatives like personal gitlab/github repositories or forge.sourceware.org for such work to avoid recurring problems with server hooks.

In the Thread 3 participants
  1. H.J. Lu via Gcc contributor

    Reports experiencing push failures due to "Another user is currently pushing changes to this repository."

    “I have been trying to push for the last 15 minutes and getting: Enumerating objects: 18, done. Counting objects: 100% (18/18), done. Delta compression using up to 8 threads Compressing objects: 100% (10/10), done. Writing objects: 100% (10/10), 2.37 KiB | 485.00 KiB/s, done. Total 10 (delta 8), reused 0 (delta 0), pack-reused 0 (from 0) remote: ---------------------------------------------------…”
  2. Mikael Morin via Gcc contributor

    Takes responsibility for the issue, stating they are "again" the cause and mentioning they posted on IRC about it.

    “I'm afraid I'm (again) the cause of this. I posted a message on IRC telling anyone could kill the push hook process(es). I'm not sure it reached the right people (or someone at all).”
  3. Jonathan Wakely <jwakely.gcc@gmail.com> maintainer

    Suggests using personal repositories like GitLab/GitHub or forge.sourceware.org instead of the main GCC repo for personal branches to avoid such conflicts.

    “Yes, or forge.sourceware.org There's no good reason to use the main gcc.gnu.org repo for personal branches. And since this keeps happening maybe we should discourage or even disallow personal branches in the main repo. The server hooks that we want in place for the official branches are not suitable for personal branches and just cause these problems.”

Technical Tradeoffs

  • Potential inconvenience for developers who prefer using the main repository for all their work.
  • Requires developers to manage separate repositories for personal work, adding a small layer of complexity.
  • Improved stability and reliability of the main repository's push operations.

In Details

This discussion addresses recurring issues with push operations on the main GCC repository, caused by users pushing personal branches. These pushes interfere with server-side hooks that are critical for maintaining official branches. The maintainer suggests that personal work should be kept off the main repository to prevent these conflicts.

For Context
push hook
A server-side script that runs automatically when a user attempts to push changes to a Git repository. It can be used to enforce policies, perform checks, or reject pushes that do not meet certain criteria.
refs/heads/master
In Git, 'refs/heads/' is a namespace for symbolic references to the tips of local branches. 'master' typically refers to the main development branch of a repository.
personal branches
Branches in a Git repository that are used by individual developers for their own work, often experimental or not yet ready for integration into the main development line.
Filed Under: repository managementgitworkflowinfrastructure