Project Release: git-next v2025.5.1
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:
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 andnext
needs to be reset back tomain
.
- 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.