# What sgit does that Git does not: what changed in v1.2.0, sgit.ai

> The changes to the article "What sgit does that Git does not" in v1.2.0, paragraph by paragraph.

*Source: <https://newsroom.sgit.ai/articles/versions/what-sgit-does-that-git-does-not/v1.2.0.html> · sgit.ai v0.7.87 · this file is generated from the same content as the page, so the two cannot drift. Every page on this site has a `.md` twin; internal links below point at them.*

---

[Home](../../../index.md) / [Articles](../../index.md) / [What sgit does that Git does not](../../what-sgit-does-that-git-does-not.md) / [Versions](../what-sgit-does-that-git-does-not.md) / v1.2.0

# What sgit does that Git does not: what changed in v1.2.0

From v1.1.0 (2026-10-28, `a6d0c117b`) to v1.2.0 (2026-10-28, `1b709edea`), paragraph by paragraph.

18 paragraphs added, 8 removed, 7 changed in place, 91 unchanged. About 639 words added and 304 removed. Insertions are marked like this, deletions like this; unchanged runs are folded to one line; figures appear as their file names.

[← v1.1.0](v1.1.0.md) · [all versions](../what-sgit-does-that-git-does-not.md)

1 unchanged paragraph

Summary: Between 3 and 27 October, sgit shipped ten releases, and each one fixed a bottleneck that a real workload had found. A one-file commit on a 76,000-file vault went from 29 minutes to 4.6 seconds; a pull of a 300-file pass on 228,000 files from 566 to 31.7 seconds; a one-folder clone of a pack vault from 36 to 2.8 seconds. The ideas came from earlier work of mine: MGraph-DB's cross-references, Memory-FS's reads by offset, caching on content addresses, and the rule that the writer pays. It is time to stop describing sgit as "like Git". This is the map of what sgit does that Git does not, what Git also has, where Git is ahead today and how little of that is out of reach, and what is designed but not yet shipped. On 28 October sgit-ai 0.27.0 closed six of the eighteen rows where Git was ahead, line-level merges, partial commits, signing with your own key, rename detection, blame and grep, each checked against Git's own output. The sgit CLI team reviewed itthis article against their code, and it is corrected and extended from their review.

8 unchanged paragraphs, under In short {#in-short}

• **Git is ahead today** on line-level merges, per-person identity, deltas and garbage collection, and its tooling. Almost all of it is client-side, so it can be built.

• **sgit-ai 0.27.0 closed six of Git's leads on 28 October:** line-level merges, partial commits, signing with your own key, rename detection, blame and grep, each checked against Git.

• **Git is still ahead** on cherry-pick, rebase, bisect, hooks and worktrees, designed and next; on deltas and garbage collection; and on hosted review and CI. Almost all of it is client-side, so it can be built.

55 unchanged paragraphs, under Every bottleneck becomes a release {#releases}, Minutes to seconds, with the caveats {#numbers}, Where the speed came from {#lineage}…

• **Committing named files.** sgit has no staging areafiles, and nonowhunks, buthunks.** `sgit write` commits the files you name, atomically, and leaves other edits alone: Git's `git commit <paths>`, in the form an agent needs. TheSincelimitations0.27.0,page's`sgitwarningcommit` abouttakes"committingpathsthreetoo, `commit -p` commits parts of sevenachangedfile,files"and `--list-hunks` and `--hunk` let an agent pick hunks by number. There is outnoofpersistentdate.staging area, by design.

• **History tools.** `history log` with `--grep`, `--since`, `--until`, `--author`, `--file`, `--patch` and `--stat`; `history diff`, `show`, `reflog`, `undo`, `revert` and `reset`; `commit --amend`, stash and signed tags.tags; and since 0.27.0, `history blame`, `sgit grep` over the working copy or any revision, `log -S` and `-G`, and rename detection with `log --follow`.

• **Shallow clones, private branches and signed commits** all have Git equivalents, and sgit has them: `clone --depth`, `fetch --unshallow`, combinable with `--path`, and a key per clone.clone; since 0.27.0, also a signature with your own SSH or OpenPGP key, verified against your allowed signers, beside the clone's own.

1 unchanged paragraph

## Where Git is ahead today, and how much of it can be built {#git-ahead}

These are real gaps, and most are minor or mid-level for the way we use sgit: workflows that are not common for agents writing documents and data. Almost everything here runs on the client in Git too, on plaintext the client already has, so it can be built in sgit the same way. The CLI team's review sketches how for each one.

• **Merges.** Git merges line by line and detects renames; sgit merges whole files and writes a conflict file. A line-level three-way merge on the client is the biggest visible gap, and a medium-sized job.

• **Hunk-level staging.** Named files, yes (`sgit write`); parts of a file, no.

• **Who may write.** GitHub knows who pushed, protects branches per person, and its signing keys expire and can be revoked. A signature in sgit today proves that some key holder wrote a commit, not which clone, and there is no per-key expiry, only rotating the whole vault. An owner-signed list of allowed signers is designed.

• **Storage.** Git has delta packs and garbage collection. sgit has neither yet; for pack vaults, `pack compact` moves superseded packs to an archive, which is part of the answer. Git's ids are 160-bit by default; sgit's format 1 is 48-bit, and format 2, 128-bit, is opt-in per vault.

• **Tools.** Blame, bisect, grep over content, IDE support, review and CI. All but the hosted parts are client-side in Git too.

## Where Git is ahead, and how fast the gap is closing {#git-ahead}

These were real gaps when I wrote the first version of this map, and most of them were minor or mid-level for the way we use sgit. Almost everything Git is ahead on runs on the client in Git too, on plaintext the client already has, so sgit can build it the same way. The CLI team wrote a Git-parity roadmap on 28 October, with Git the client as the bar and every new feature off by default, and released the first part of it the same day.

[figure sf-parity.webp] Six of Git's eighteen leads closed in sgit-ai 0.27.0, each checked against Git, and the twelve still open. | comparison

**Closed in sgit-ai 0.27.0, 28 October**, each checked by the CLI's build agent against Git's own output:

• **Line-level merges.** `pull --merge lines` and `branch merge --merge lines`, with Git's conflict markers; opt-in, with the whole-file `.conflict` still the default. 4,500 random merges were byte-identical to `git merge-file`.

• **Partial commits.** `commit` with paths, `commit -p`, and `--list-hunks` and `--hunk` for agents.

• **Signing with your own key.** `commit -S`, signed tags, merges and reverts, with SSH or OpenPGP keys, verified against the allowed signers in your Git configuration. It is a second signature beside the clone's own.

• **Rename detection,** a port of Git's: 90 of 90 pairs equal `git diff -M --name-status`.

• **Blame:** 25 of 25 files equal `git blame --porcelain`.

• **Grep and the pickaxe.** `sgit grep` over the working copy or any revision, decrypted in memory, and `log -S` and `-G`: 120 of 120 grep runs equal `git grep`.

**Still ahead, by how firm the plan is:**

• **Designed and next in the CLI team's queue,** about 21 days of work in all: cherry-pick, built on the line merge; local hooks that never sync; rebase, never rewriting pushed history; bisect; and worktrees.

• **Waiting on another team or the server:** reading one file from a pack vault with no clone, and a command for append lanes.

• **Sketched, built when a workload asks:** garbage collection, delta compression, and `archive`, `shortlog`, `describe` and aliases.

• **No working plan yet:** per-folder read access, which needs per-folder keys, and submodules.

• **Who may write.** GitHub knows who pushed, protects branches per person, and expires and revokes its signing keys. A signature with your own key now says which person signed, when you verify it against your allowed signers; accounts, protected branches and an owner-signed list of who may write are moved to a future server the roadmap calls SGitHub, with review and CI.

17 unchanged paragraphs, under What a host that reads nothing can never do {#limits-of-the-model}, Next, not now: one file with no clone, and websites from vaults {#next}, The workflows where this matters {#workflows}…

• **The verdicts are against sgit-ai 0.26.00.26.0, and the section on where Git is ahead against 0.27.0,** with Git's and GitHub's documentation,**documentation, read on 27 and 28 October 2026.

• **sgit's**TheownchecksdocumentationagainstisGitpartlyareouttheofCLIdate.**team's.** ItsThelimitations4,500pagemerges,still90saysrenamecommitpairs,signing25isblamed"plannedfileswork",andthough120commitsgrephaverunsbeenweresignedrun by cli.sgit.ai's build agent, not re-run for monthsthisand verified since 0.19.0, and that partial commits are not possible, though `sgit write` does them. On `main`, the 0.26.0 notes still sit under an "Unreleased" heading; `dev` has the fix.article.

9 unchanged paragraphs, under Reviewed, and corrected {#review}, Where this comes from {#sources}

The sgit CLI site's [comparison of sgit and Git](https://cli.sgit.ai/docs/sgit-and-git.html), checked against 0.27.0, its [sign-off of 0.27.0](https://cli.sgit.ai/builds/0-27-0.html) and the CLI team's [Git-parity roadmap](https://cli.sgit.ai/research/git-parity-roadmap.html), read on 28 October 2026; sgit's release notes for [0.24.0](https://cli.sgit.ai/docs/update-to-0-24-0.html), [0.25.0](https://cli.sgit.ai/docs/update-to-0-25-0.html) and [0.26.0](https://cli.sgit.ai/docs/update-to-0-26-0.html); cli.sgit.ai's articles [pack indexes, shipped](https://cli.sgit.ai/articles/pack-indexes-shipped.html), [indexes the writer pays for](https://cli.sgit.ai/articles/indexes-the-writer-pays-for.html), [indexes in the pack](https://cli.sgit.ai/articles/indexes-in-the-pack.html), [is there any overhead?](https://cli.sgit.ai/articles/is-there-any-overhead.html), [pack mode in four rounds](https://cli.sgit.ai/articles/pack-mode-four-rounds.html) and [keys the way Git does it](https://cli.sgit.ai/articles/keys-the-way-git-does-it.html); its docs on [partial clones](https://cli.sgit.ai/docs/partial-clones.html), [history integrity](https://cli.sgit.ai/docs/history-integrity.html) and [limitations](https://cli.sgit.ai/docs/limitations.html); the sgit CLI repository's changelog, response notes and threat model, read on 27 October 2026; [PyPI release times](https://pypi.org/project/sgit-ai/#history); the PHP October 2026 newsroom's briefs on [pack mode](https://team.php.oct.2026.newsroom.sgit.ai/admin/briefs/2026-10-23__brief__moving-a-vault-to-pack-mode/), [0.25.0](https://team.php.oct.2026.newsroom.sgit.ai/admin/briefs/2026-10-26__brief__for-the-sgit-cli-team-0-25-0-in-the-newsroom/) and [0.26.0](https://team.php.oct.2026.newsroom.sgit.ai/admin/briefs/2026-10-27__brief__sgit-0-26-0/); Git's documentation on [git-clone](https://git-scm.com/docs/git-clone), [pack format](https://git-scm.com/docs/gitformat-pack) and [commit-graph](https://git-scm.com/docs/commit-graph); GitHub's documentation linked above. Two figures are cli.sgit.ai's own, credited in their captions. Related: [you can feel good engineering](https://newsroom.sgit.ai/articles/you-can-feel-good-engineering.html), [explorer coding](https://newsroom.sgit.ai/articles/explorer-coding.html), [a team frozen in time](https://newsroom.sgit.ai/articles/a-team-frozen-in-time.html). The sgit CLI team's review of this article, 28 October 2026, on the record. Written up by this site's agent, newsroom.writer; the editorial responsibility is mine.

[← v1.1.0](v1.1.0.md) · [all versions](../what-sgit-does-that-git-does-not.md)


---

*[Site index for agents](../../../llms.txt) · [HTML version](https://newsroom.sgit.ai/articles/versions/what-sgit-does-that-git-does-not/v1.2.0.html)*
