frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Nintendo Wii Themed Portfolio

https://akiraux.vercel.app/
1•s4074433•3m ago•1 comments

"There must be something like the opposite of suicide "

https://post.substack.com/p/there-must-be-something-like-the
1•rbanffy•5m ago•0 comments

Ask HN: Why doesn't Netflix add a “Theater Mode” that recreates the worst parts?

2•amichail•6m ago•0 comments

Show HN: Engineering Perception with Combinatorial Memetics

1•alan_sass•12m ago•1 comments

Show HN: Steam Daily – A Wordle-like daily puzzle game for Steam fans

https://steamdaily.xyz
1•itshellboy•14m ago•0 comments

The Anthropic Hive Mind

https://steve-yegge.medium.com/the-anthropic-hive-mind-d01f768f3d7b
1•spenvo•14m ago•0 comments

Just Started Using AmpCode

https://intelligenttools.co/blog/ampcode-multi-agent-production
1•BojanTomic•16m ago•0 comments

LLM as an Engineer vs. a Founder?

1•dm03514•16m ago•0 comments

Crosstalk inside cells helps pathogens evade drugs, study finds

https://phys.org/news/2026-01-crosstalk-cells-pathogens-evade-drugs.html
2•PaulHoule•18m ago•0 comments

Show HN: Design system generator (mood to CSS in <1 second)

https://huesly.app
1•egeuysall•18m ago•1 comments

Show HN: 26/02/26 – 5 songs in a day

https://playingwith.variousbits.net/saturday
1•dmje•18m ago•0 comments

Toroidal Logit Bias – Reduce LLM hallucinations 40% with no fine-tuning

https://github.com/Paraxiom/topological-coherence
1•slye514•21m ago•1 comments

Top AI models fail at >96% of tasks

https://www.zdnet.com/article/ai-failed-test-on-remote-freelance-jobs/
4•codexon•21m ago•2 comments

The Science of the Perfect Second (2023)

https://harpers.org/archive/2023/04/the-science-of-the-perfect-second/
1•NaOH•22m ago•0 comments

Bob Beck (OpenBSD) on why vi should stay vi (2006)

https://marc.info/?l=openbsd-misc&m=115820462402673&w=2
2•birdculture•26m ago•0 comments

Show HN: a glimpse into the future of eye tracking for multi-agent use

https://github.com/dchrty/glimpsh
1•dochrty•26m ago•0 comments

The Optima-l Situation: A deep dive into the classic humanist sans-serif

https://micahblachman.beehiiv.com/p/the-optima-l-situation
2•subdomain•27m ago•1 comments

Barn Owls Know When to Wait

https://blog.typeobject.com/posts/2026-barn-owls-know-when-to-wait/
1•fintler•27m ago•0 comments

Implementing TCP Echo Server in Rust [video]

https://www.youtube.com/watch?v=qjOBZ_Xzuio
1•sheerluck•27m ago•0 comments

LicGen – Offline License Generator (CLI and Web UI)

1•tejavvo•30m ago•0 comments

Service Degradation in West US Region

https://azure.status.microsoft/en-gb/status?gsid=5616bb85-f380-4a04-85ed-95674eec3d87&utm_source=...
2•_____k•31m ago•0 comments

The Janitor on Mars

https://www.newyorker.com/magazine/1998/10/26/the-janitor-on-mars
1•evo_9•32m ago•0 comments

Bringing Polars to .NET

https://github.com/ErrorLSC/Polars.NET
3•CurtHagenlocher•34m ago•0 comments

Adventures in Guix Packaging

https://nemin.hu/guix-packaging.html
1•todsacerdoti•35m ago•0 comments

Show HN: We had 20 Claude terminals open, so we built Orcha

1•buildingwdavid•36m ago•0 comments

Your Best Thinking Is Wasted on the Wrong Decisions

https://www.iankduncan.com/engineering/2026-02-07-your-best-thinking-is-wasted-on-the-wrong-decis...
1•iand675•36m ago•0 comments

Warcraftcn/UI – UI component library inspired by classic Warcraft III aesthetics

https://www.warcraftcn.com/
2•vyrotek•37m ago•0 comments

Velocity of Money

https://en.wikipedia.org/wiki/Velocity_of_money
1•gurjeet•41m ago•0 comments

Stop building automations. Start running your business

https://www.fluxtopus.com/automate-your-business
1•valboa•45m ago•1 comments

You can't QA your way to the frontier

https://www.scorecard.io/blog/you-cant-qa-your-way-to-the-frontier
1•gk1•46m ago•0 comments
Open in hackernews

Git Rerere

https://git-scm.com/book/en/v2/Git-Tools-Rerere
5•vinhnx•3mo ago

Comments

goku12•3mo ago
Conflicts are cases where the merge algorithm can't unambiguously determine the correct way to resolve the resulting code from multiple candidates. Normal merge algorithms like git's 'ort' use very simple and naive logic to resolve the result. Context (syntax or semantics) aware merge alorithms like mergiraf [1] are capable of resolving more merge cases than the default algorithms, thus reducing the conflicts. (Full elimination is still not possible. I'm not confident that copilots can do that repeatably.)

Now, it's important what the VCS tool does when a conflict is encountered. Git doesn't allow the merge or rebase to be recorded (committed) until the conflicts are manually resolved. Thus you end up with a child commit that had conflicts, but doesn't explain how they were actually resolved. If you face the same conflict again (like by merging another branch with the same change), you end up having to manually resolve it again. This isn't an issue for successful merges because the knowledge of the resolution is represented by the merge algorithm itself.

Rerere is a hack designed to solve the problem explained above - of having to repeat manual resolution due to the missing resolution information. When enabled, rerere records the states of the conflicting objects before and after the manual resolution. If you face the same conflict again, you can just ask rerere to identity the conflict pattern from its records and apply the applicable resolution. This is very useful in some weird situations where you may end up resolving the same conflict three times or more.

More modern VCS tools like pijul[2] and jujutsu[3] take a different approach. They have what are called 'first class conflicts'. It means that a merge or rebase won't simply fail because there are conflicts. They will always succeed by recording/committing them along with the conflict information. Note that I'm not talking about committing the files with conflict markers in it. Instead, the conflicts are recorded in the repo as full fidelity structured information. Any manual conflict resolutions are recorded separately in relation to these conflict data. Essentially, they're saving the same data as rerere, but directly in the repo with proper connections to their sources, instead of in a separate cache (within the .git directory) like rerere does. This approach has several advantages:

- Merges and rebases don't fail. You're under no obligation to resolve the conflicts before you're allowed to record the merge. It's less painful.

- You can postpone the conflict resolution for later. You can carry on with other work on the codebase, even with those unresolved conflicts.

- You can push the conflicted merge online like a regular push, and ask one or more other devs to handle the conflicts instead.

- Since a resolved conflict has all the resolution information attached to it, future resolutions of the same conflict are fully automatic. A resolved conflict isn't coming back ever again.

Pijul records changes as patches, unlike git which saves worktree snapshots as commits. In pijul, the conflicts and their resolutions are recorded with respect to the two changes/patches that contain the conflicting code. So the resolution always go along with the conflicting patches, wherever they go. In case of jujutsu, I'm not fully sure of how this is achieved. But it seems like it stores the conflicts as additional git tree objects under the merge commit object.

This way of handling conflicts seems natural and how VCSs should have been designed. Git and the others can be excused because our understanding of version control is still evolving. However, what's remarkable about jujutsu's solution is that it's implemented in git repos. Jujutsu still uses git repo format. This means that the solution should be doable in git too. And git already has done much of that work in the form of rerere. It's only a matter of integrating these two solutions to retrofit git with first class conflicts and resolutions as well. I'm not sure if I got something wrong here. But I sure hope someone will seriously consider this. It would be a major advancement of git's ergonomics.

[1] https://mergiraf.org/conflicts.html

[2] https://pijul.org/manual/conflicts.html

[3] https://jj-vcs.github.io/jj/latest/conflicts/