Skip to main content
Image

r/java


Gitember v 3.5: Building a Modern Desktop Git Client with Java/Swing
Gitember v 3.5: Building a Modern Desktop Git Client with Java/Swing

Community might be interested in Gitember - a desktop Git application written in Java.

Why build a Git gui client in Java?

This is the obvious question. For me, the answer is simple: a lot of the infrastructure you need is already in the Java ecosystem. You don't need to build everything from scratch or rely on a collection of external tools. Gitember can use:

  • JGit for Git operations and repository access

  • Lucene for full-text indexing and search

  • Apache Tika for extracting text from many document formats

  • Swing for the desktop UI. FlatLaf for a modern look and feel

  • Java's filesystem and concurrency APIs for local repository operations and background processing

  • Ollama as a local AI service when AI features are enabled

This makes it possible to build a fairly complete Git desktop environment in one application for multiple platforms. Including installer

Gitember covers everyday Git

Gitember covers the day-to-day Git workflow in one application:

  • Repository & remote operations — clone/init, fetch, pull, push, remotes and Git LFS.

  • Changes & branches — stage/unstage, commit/amend/undo, branch management, merge, rebase and interactive rebase.

  • History & collaboration — commit history, changed files, version/branch comparison, reflog, Git notes, worktrees and submodules.

  • Conflict resolution & security — three-way merge, stash management, commit signing and signature validation.

Gitember goes beyond the traditional Git client

  • Workspace - allows several independent repositories to be managed together. Looks like submodules, but really not

  • Search in Git history - search not only commit messages and metadata, but also the content of files in repository history.

  • Repository statistics

  • Side-by-side file and folder diff - may be used as separate tools

  • AI Features - locally (without Cloud): detection of leaked secrets , descriptions of branch differences , commit message generation

Looking for testers and contributors

For Java developers interested in desktop software, Git tools, or Swing in a real-world application, the source code is available here - https://github.com/iazarny/gitember

Project website - https://gitember.org


Advertisement: Did you receive a notice about the $250 million iPhone Al settlement? You may be able to claim up to $95 per device by December 21 if you purchased an iPhone 15 Pro, iPhone 15 Pro Max, or any iPhone 16 model.
Did you receive a notice about the $250 million iPhone Al settlement? You may be able to claim up to $95 per device by December 21 if you purchased an iPhone 15 Pro, iPhone 15 Pro Max, or any iPhone 16 model.
media poster


I developed an Android RTS game in Java
I developed an Android RTS game in Java

A comparative benchmark against Java’s standard TreeMap and major third-party sorted-map libraries.
A comparative benchmark against Java’s standard TreeMap and major third-party sorted-map libraries.

This is a benchmark report of my ChaosTree, comparing all the maps against Java’s built-in maps and major third-party libraries. https://chaos-vy.github.io/ChaosTree/benchmark/Chaos-tree-Arena.html

There are few discovery throughout the benchmark. The benchmark scales from 10K to 1M entries.

The mixed benchmark covers different GET / PUT / REMOVE workloads:

  • [50,25,25]

  • [20,40,40]

  • [80,10,10]

  • [70,30,0]

  • [50,50,0]

  • [30,70,0]

If you find any issue, wrong data, or anything that needs further scrutiny, you are requested to open an issue.

If you know any other third-party library, drop it in the comments. I will try to benchmark that as well.

v2.0.2 Latest

  • Fixed SortedMap<> constructors always setting the comparator to null.

  • Fixed missing comparator propagation in Spliterator.

  • Resolved slow iteration in binary SubSet / SubMap.

  • Resolved missing Serializable annotations.

  • No major changes

Repo: https://github.com/Chaos-vy/ChaosTree