Memento, or why automation has to admit ...

Memento, or why automation has to admit when it stops

Sep 09, 2026

Git has two halves. One is thinking: what belongs in this commit, which branch this work lives on, whether these two histories should meet. The other is typing. Fetch. Pull. Check whether the branch you are not standing on has moved. Merge it if it has. Save the work you have clearly finished. Push it. None of that is a decision. All of it is a habit, and habits are exactly what a machine should be holding for you.

Memento is a desktop Git client that holds that half. It runs a cycle in the background: fetch, pull when a fast-forward is possible, bring the branches you follow up to date without checking them out, merge the ones that are conflict-free, save work in progress once you have stopped touching it, and push only what cannot be rejected.

The word that matters there is only.

An automated push that fails is a nuisance. An automated push that succeeds when it should not have is a problem for everyone who clones after you. So Memento never forces, never pushes a branch that is behind, and never merges anything that would conflict. A merge into a branch you are not standing on happens in a throwaway worktree; if it conflicts, the worktree is deleted and your working copy never knew it happened. Merges use --no-ff, so the history always shows when a branch landed instead of quietly absorbing it.

And when it will not act, it says so. That was the hardest part to get right, and the part I care about most. Automation that fails silently is worse than no automation at all: you stop watching, and then one day you find out you have not been pushing for three days. Every step of the cycle is visible, and every refusal comes with its reason.

There is one thing it cannot promise, and the documentation says so in as many words. Two branches can merge with no textual conflict at all and still produce code that does not build: one side renames a function, the other adds a call to the old name. Git sees nothing, because there is nothing to see in the text. Memento sees nothing either. Auto-merge is safe for your repository, not for your build.

Closing the window does not quit it. It folds into the notification area and keeps watching, which is the only state where any of this is genuinely useful. There is an Android companion too, for the branch activity GitHub never notifies you about at all.

No account, no telemetry, nothing to unlock. Your repositories never leave your machine.

memento.nekuzaky.com

If it saves you time, a coffee is always appreciated. It does not change the app.

Enjoy this post?

Buy Nekuzaky a burger

More from Nekuzaky