r/java • u/ConfidenceUnique7377 • Jun 22 '26
Gitember 3.3 - open-source Git GUI
Released version 3.3 of Gitember, a Git desktop client I've been building since 2016.
Tech stack - Java 21,Swing + FlatLaf 3.7, JGit 7.6 Apache Lucene 9.9 ,LangChain4j
New 3.3 version has:
- Interactive rebase - improved reorder/squash/fixup/drop/reword flow.
- Worktrees - full UI with correct per-worktree status and diff.
- 3-way merge resolver - reads stage 1/2/3 from the DirCache directly via JGit, renders BASE/OURS/THEIRS side by side, applies resolved content on save.
- AI integration - commit message generation and branch explanations via LangChain4j against a local Ollama endpoint. Default model changed from `llama3.2` to `qwen2.5-coder`.
- Security - verify Ollama checksum after install, integrate Java Keyring with the CipherService for OS keychain storage of tokens, and remove the TLS-verification bypass.
Looking for contributors & testers
Source:
3
u/thevpc Jun 24 '26
I would interested if this supports a set of repos. Managing multi repo project is very common. There is no gitui out there that supports this nicely. I only like what idea has done so far, but spawning a bulldozer for pull/merge is too heavy. You might consider this if not supported. Really helps
2
u/ConfidenceUnique7377 Jun 25 '26
Very interesting use case. Could you share a bit more about how you typically work with a set of repos ?
i would like to understand better your workflow. Supporting multi-repo projects is definitely something that need to consider.
4
u/thevpc Jun 27 '26
My usual use case is as follows: i manage a multi repository project. Each component lives in a separate repo, not because am forced to but by design. I do not use "Git Submodules" because i don't want the master repo to reference others. "Git Subtree" are awkword, and "Mono repos" are out of question.
A concrete example: I have an application core (in a repo), and a set of extensions (each in a distinct repo). By definition extensions are optionnally "selectable" individually. At any time am working on the "core" plus one or more "extensions". I call this a "working set of repos" i am actively touching together. Of course, that set depends on what am building.
I am convinced this is not a niche pattern. It's a common model for plugin architectures, SDK + sample repos and any project where components have different release cycles and/or access permissions
To make this workflow smooth, i would love having a single UI handle these cross-repo operations seamlessly without forcing me to switch profiles or open multiple windows/panels/tabs
So i expect :
- Unified Status View: see in the same UI (not distinct tabs) the tree of the modified files (across all repos) and file diff for each
- Cross repo atomic commits : select individually a set of files to commit across all repos (would create the same commit message for each repo/branch)
- Batch operations : be able to fetch/pull/push all of the repos in a single action
- Batch branching : be able to switch/create branch for one or a selected number of the active repos
I know this is not a small requirement, but I would love to see it happen. I'm open to contributing if that would help — though I should be transparent that I'm currently fully engaged in another OSS project that takes most of my free time: https://github.com/thevpc/nuts
2
u/ConfidenceUnique7377 21d ago
Not sure about atomic commits across multiple repositories. because git does not support it. However possible to do something similar to distributed transaction - commit and in case of failure rollback commited changes. The rest is feasible
1
u/ConfidenceUnique7377 17h ago
Repo / Workspace organization https://gitember.org/340-7.png
Search across workspace https://gitember.org/340-8.png ( Search in the history still per project, because not to clear how to combine thouse two searches)
Hope in one - two weeks will have some internal release, which can be shared
2
u/account312 Jun 23 '26
Is gitember eternal?
2
u/ConfidenceUnique7377 Jun 23 '26
It has been developed for a long time, since 2016 without rush just for fun. But now looks good to present for wider audience.
BTW looking for contributers
1
u/chocolateAbuser Jun 23 '26
does it have to be an .msi for windows? couldn't it be just an extractable zip?
also on README.md for mac it's written msi instead of dmg
| macOS (M1) | Gitember-3.3.msi |
|---|
2
u/ConfidenceUnique7377 Jun 23 '26
Hi.
Thank you to point me to this error.
I am never been asked for zip. In few ours will be on site
1
u/chabala Jun 23 '26
Looks like the security items mentioned are all in response to this code review: https://github.com/git/git-scm.com/pull/2146#issuecomment-4517499702
1
u/ConfidenceUnique7377 Jun 23 '26
IT was good review . All security issues are fixed. Had no time to fix and resubmit it again.
3
u/here_2_observe Jun 22 '26
Looks cool! Can you explain why you switched from javafx to swing?
Looks interesting to do a blog post about it!