frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

The next frontier in weight-loss drugs: one-time gene therapy

https://www.washingtonpost.com/health/2026/01/24/fractyl-glp1-gene-therapy/
1•bookofjoe•2m ago•1 comments

At Age 25, Wikipedia Refuses to Evolve

https://spectrum.ieee.org/wikipedia-at-25
1•asdefghyk•5m ago•2 comments

Show HN: ReviewReact – AI review responses inside Google Maps ($19/mo)

https://reviewreact.com
1•sara_builds•5m ago•0 comments

Why AlphaTensor Failed at 3x3 Matrix Multiplication: The Anchor Barrier

https://zenodo.org/records/18514533
1•DarenWatson•6m ago•0 comments

Ask HN: How much of your token use is fixing the bugs Claude Code causes?

1•laurex•10m ago•0 comments

Show HN: Agents – Sync MCP Configs Across Claude, Cursor, Codex Automatically

https://github.com/amtiYo/agents
1•amtiyo•10m ago•0 comments

Hello

1•otrebladih•12m ago•0 comments

FSD helped save my father's life during a heart attack

https://twitter.com/JJackBrandt/status/2019852423980875794
2•blacktulip•15m ago•0 comments

Show HN: Writtte – Draft and publish articles without reformatting, anywhere

https://writtte.xyz
1•lasgawe•16m ago•0 comments

Portuguese icon (FROM A CAN) makes a simple meal (Canned Fish Files) [video]

https://www.youtube.com/watch?v=e9FUdOfp8ME
1•zeristor•18m ago•0 comments

Brookhaven Lab's RHIC Concludes 25-Year Run with Final Collisions

https://www.hpcwire.com/off-the-wire/brookhaven-labs-rhic-concludes-25-year-run-with-final-collis...
2•gnufx•20m ago•0 comments

Transcribe your aunts post cards with Gemini 3 Pro

https://leserli.ch/ocr/
1•nielstron•24m ago•0 comments

.72% Variance Lance

1•mav5431•25m ago•0 comments

ReKindle – web-based operating system designed specifically for E-ink devices

https://rekindle.ink
1•JSLegendDev•27m ago•0 comments

Encrypt It

https://encryptitalready.org/
1•u1hcw9nx•27m ago•1 comments

NextMatch – 5-minute video speed dating to reduce ghosting

https://nextmatchdating.netlify.app/
1•Halinani8•28m ago•1 comments

Personalizing esketamine treatment in TRD and TRBD

https://www.frontiersin.org/articles/10.3389/fpsyt.2025.1736114
1•PaulHoule•29m ago•0 comments

SpaceKit.xyz – a browser‑native VM for decentralized compute

https://spacekit.xyz
1•astorrivera•30m ago•0 comments

NotebookLM: The AI that only learns from you

https://byandrev.dev/en/blog/what-is-notebooklm
2•byandrev•30m ago•1 comments

Show HN: An open-source starter kit for developing with Postgres and ClickHouse

https://github.com/ClickHouse/postgres-clickhouse-stack
1•saisrirampur•31m ago•0 comments

Game Boy Advance d-pad capacitor measurements

https://gekkio.fi/blog/2026/game-boy-advance-d-pad-capacitor-measurements/
1•todsacerdoti•31m ago•0 comments

South Korean crypto firm accidentally sends $44B in bitcoins to users

https://www.reuters.com/world/asia-pacific/crypto-firm-accidentally-sends-44-billion-bitcoins-use...
2•layer8•32m ago•0 comments

Apache Poison Fountain

https://gist.github.com/jwakely/a511a5cab5eb36d088ecd1659fcee1d5
1•atomic128•34m ago•2 comments

Web.whatsapp.com appears to be having issues syncing and sending messages

http://web.whatsapp.com
1•sabujp•34m ago•2 comments

Google in Your Terminal

https://gogcli.sh/
1•johlo•36m ago•0 comments

Shannon: Claude Code for Pen Testing: #1 on Github today

https://github.com/KeygraphHQ/shannon
1•hendler•36m ago•0 comments

Anthropic: Latest Claude model finds more than 500 vulnerabilities

https://www.scworld.com/news/anthropic-latest-claude-model-finds-more-than-500-vulnerabilities
2•Bender•40m ago•0 comments

Brooklyn cemetery plans human composting option, stirring interest and debate

https://www.cbsnews.com/newyork/news/brooklyn-green-wood-cemetery-human-composting/
1•geox•40m ago•0 comments

Why the 'Strivers' Are Right

https://greyenlightenment.com/2026/02/03/the-strivers-were-right-all-along/
1•paulpauper•42m ago•0 comments

Brain Dumps as a Literary Form

https://davegriffith.substack.com/p/brain-dumps-as-a-literary-form
1•gmays•42m 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/