Skip to content
go-libfossil Artifact [5a889a80f5]
Login

Artifact [5a889a80f5]

Artifact 5a889a80f55500c1ae605c69787c3bd3b3190f40fadff2ae6144915fad426637:

Tag referencing [5a889a80f5] - Edit [e241048f77]: Add tag "v0.10.0" with note "Release v0.10.0

## Highlights

- Checkouts created by the fossil binary (`fossil open`) now work through go-libfossil. `Status` no longer fails on them, and change detection follows fossil's own rules. - Checkout operations now match fossil's behavior: `Status` reports missing files, `Extract` checks for unsaved work before changing anything, and checking out a partly synced version is refused up front. - `Revert` restores missing files, drops pending merges and undoes renames. Reading a stored artifact no longer returns compressed bytes on any Go version. - The CLI's `add`, `rm`, `rename` and `revert` commands now call the library instead of editing the checkout database directly.

## Breaking changes

- `Checkout.Revert` keeps a never-committed file on disk when it reverts the add. It used to delete the file. - `Checkout.Rename` refuses to move a file onto one that already exists on disk. It used to overwrite it. - `Revert` refuses, changing nothing, when undoing a rename would overwrite another file (#248). - A tracked file missing from disk no longer blocks `Extract` from switching versions, and `Status` reports it as `missing`.

## Upgrade notes

- Reverting a pending add no longer deletes the file. Delete it yourself if that's what you relied on. - Checking out a version whose content is partly missing now returns an error naming the missing files. It used to fail later, or panic. - The CLI's `rename` moves the file on disk, and `revert` restores committed content.

## Changes 554084e chore(release): v0.10.0 changelog (#250) d4da783 fix(checkout): revert undoes a pending rename (#242) (#249) 307250c fix(content): report database faults from the availability check (#239) (#247) 4770fc8 fix(checkout): dry runs change nothing; switching ends a merge (#236) (#246) c863090 fix(cli): add, rm, rename and revert call the library (#234) (#245) d5fddcb refactor(vfile): give the checkout's vfile encoding one owner (#233) (#243) aa37186 fix(checkout): classify changes in one place; report missing files (#232) (#241) 068a1b5 fix(checkout): refuse to load a version with missing content (#231) (#240) d47a204 fix(blob): always inflate blob.content on load (#235) (#238) 86743db fix(checkout): check Extract's safety before replacing vfile (#230) (#237) 33695e7 fix(checkout): read checkouts made by the fossil binary (#228) (#229)". by [email protected] on 2026-10-03 17:48:02.


D 2026-10-03T17:48:02
T +sym-v0.10.0 e241048f775aeaa1d9fad144ab515f7d756287624605eaad39828080701f56c1 Release\sv0.10.0\n\n##\sHighlights\n\n-\sCheckouts\screated\sby\sthe\sfossil\sbinary\s(`fossil\sopen`)\snow\swork\sthrough\sgo-libfossil.\s`Status`\sno\slonger\sfails\son\sthem,\sand\schange\sdetection\sfollows\sfossil's\sown\srules.\n-\sCheckout\soperations\snow\smatch\sfossil's\sbehavior:\s`Status`\sreports\smissing\sfiles,\s`Extract`\schecks\sfor\sunsaved\swork\sbefore\schanging\sanything,\sand\schecking\sout\sa\spartly\ssynced\sversion\sis\srefused\sup\sfront.\n-\s`Revert`\srestores\smissing\sfiles,\sdrops\spending\smerges\sand\sundoes\srenames.\sReading\sa\sstored\sartifact\sno\slonger\sreturns\scompressed\sbytes\son\sany\sGo\sversion.\n-\sThe\sCLI's\s`add`,\s`rm`,\s`rename`\sand\s`revert`\scommands\snow\scall\sthe\slibrary\sinstead\sof\sediting\sthe\scheckout\sdatabase\sdirectly.\n\n##\sBreaking\schanges\n\n-\s`Checkout.Revert`\skeeps\sa\snever-committed\sfile\son\sdisk\swhen\sit\sreverts\sthe\sadd.\sIt\sused\sto\sdelete\sthe\sfile.\n-\s`Checkout.Rename`\srefuses\sto\smove\sa\sfile\sonto\sone\sthat\salready\sexists\son\sdisk.\sIt\sused\sto\soverwrite\sit.\n-\s`Revert`\srefuses,\schanging\snothing,\swhen\sundoing\sa\srename\swould\soverwrite\sanother\sfile\s(#248).\n-\sA\stracked\sfile\smissing\sfrom\sdisk\sno\slonger\sblocks\s`Extract`\sfrom\sswitching\sversions,\sand\s`Status`\sreports\sit\sas\s`missing`.\n\n##\sUpgrade\snotes\n\n-\sReverting\sa\spending\sadd\sno\slonger\sdeletes\sthe\sfile.\sDelete\sit\syourself\sif\sthat's\swhat\syou\srelied\son.\n-\sChecking\sout\sa\sversion\swhose\scontent\sis\spartly\smissing\snow\sreturns\san\serror\snaming\sthe\smissing\sfiles.\sIt\sused\sto\sfail\slater,\sor\spanic.\n-\sThe\sCLI's\s`rename`\smoves\sthe\sfile\son\sdisk,\sand\s`revert`\srestores\scommitted\scontent.\n\n##\sChanges\n554084e\schore(release):\sv0.10.0\schangelog\s(#250)\nd4da783\sfix(checkout):\srevert\sundoes\sa\spending\srename\s(#242)\s(#249)\n307250c\sfix(content):\sreport\sdatabase\sfaults\sfrom\sthe\savailability\scheck\s(#239)\s(#247)\n4770fc8\sfix(checkout):\sdry\sruns\schange\snothing;\sswitching\sends\sa\smerge\s(#236)\s(#246)\nc863090\sfix(cli):\sadd,\srm,\srename\sand\srevert\scall\sthe\slibrary\s(#234)\s(#245)\nd5fddcb\srefactor(vfile):\sgive\sthe\scheckout's\svfile\sencoding\sone\sowner\s(#233)\s(#243)\naa37186\sfix(checkout):\sclassify\schanges\sin\sone\splace;\sreport\smissing\sfiles\s(#232)\s(#241)\n068a1b5\sfix(checkout):\srefuse\sto\sload\sa\sversion\swith\smissing\scontent\s(#231)\s(#240)\nd47a204\sfix(blob):\salways\sinflate\sblob.content\son\sload\s(#235)\s(#238)\n86743db\sfix(checkout):\scheck\sExtract's\ssafety\sbefore\sreplacing\svfile\s(#230)\s(#237)\n33695e7\sfix(checkout):\sread\scheckouts\smade\sby\sthe\sfossil\sbinary\s(#228)\s(#229)
U [email protected]
Z d4c5dc23164b85c0ec63b97a7431488b