Project Release: git-next v2025.5.1

  • 25th May 2025
  • 3 min read
  • Tags: 
  • git-next

Today I released version 2025.5.1 of git-next, my Trunk-based development manager. This update fixes an embarrasing bug in the previous version, where it couldn’t update the next branch. Which is basically git-next’s whole thing.

Key Changes:

Git Operations Overhaul 🔧

  • Fixed remote push synchronization issues

While switching to git2 in the previous release I got the process wrong and my tests weren’t sufficient to pick up on it.

  • Added detailed push conflict detection

So, working through the push process I’ve added more checks.

  • Enhanced rebase handling with parent commit validation
    • Improved commit log traversal with duplicate filtering

Configuration & Maintenance 🛠

  • Removed legacy external repo support

This had originally been added as an option, but I’m not aware that it get’s used and it complicates matters when deciding the name of the remote that we should be pushing to. Where as, when we have only internal repos. we always know that they will called ‘origin’.

  • Simplified remote management (now always uses ‘origin’)
  • Refactored ServerRepoConfig to builder pattern

I’m moving away from constructor to use builders more

  • Added Docker publishing workflow to Justfile

Because I kept forgetting to push the image to codeberg:

   just publish-docker-image v2025.5.1

Diagnostics & Reliability 🩺

  • Added more logging:
    • Added detailed push failure diagnostics
    • Implemented repository state logging
  • Fixed shutdown error visibility

When using the --ui or --xui any error that caused the server to abort we lost when the screen reset to normal. Now it is logged to the screen after the console is reset.

  • Removed debug symbols from dev builds

An optimisation for development only.

Documentation Updates 📚

  • Corrected Forgejo naming throughout codebase

I had been using ForgeJo consistently, but wrongly.

  • Removed deprecated gitdir references

Now that we only support internal repos, we don’t support the gitdir option for repos.

Testing Improvements ✅

  • Added comprehensive force push tests

Given the mess I made with git push, there are now more tests around this.

  • Implemented remote test setup framework

Part of that is setting up two git repos on disk and making one the remote of the other.

  • Added 6 new test cases for branch validation

Tests to check that we use --force-with-lease only when required, which is when CI fails and next needs to be reset back to main.

  • Enhanced commit history verification

Again, more tests to check this is doing what it is supposed to.

This release focuses on hardening Git operations while improving maintainability and diagnostics.