Repository navigation
The latest release of Lore, Epic Games' next-generation open source version control system.
Quickstart | Design | Documentation | Discord
Quick Install
Windows
irm https://raw.githubusercontent.com/EpicGames/lore/main/scripts/install.ps1 | iex
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/EpicGames/lore/main/scripts/install.sh | bash
Release Notes
Changes since v0.12.0.
Breaking changes
lore.user.v1:UserServicepartition RPCs are replaced byRepositoryRegistryService; withuser_urlset, the directory there must serve it beforelore-serveris upgradedlore-serverauthorization: changing a partition needswrite, changing branch protection needsowneroradmin(orwritefor the creator), and presigned URLs needpresigninstead ofis_service_account- Server hooks:
Hook::pre_handleris nowasync; a timeout fails the request withUNAVAILABLEinstead ofINTERNAL - Clients on a
lores://remote refuse advertised endpoints that don't authenticate the server, such aslore:// - Ignore and view rules match paths as
.gitignoredoes:**and character classes stay within one path component .loreignoreapplies only to untracked paths, so changes to committed files it matches are reported and staged (ADR-00027)lore sync --resetandlore branch switch --resetleave untracked files in place, andlore resetno longer consults the ignore file- A failed link push exits with its error's code instead of 255, or the new code 52 (
LinkDivergent) - File names Windows reads as something else, such as
C:,file.orfile::$DATA, are refused on every platform
Features
- Progress is printed every 30 seconds when stdout is not a terminal (
LORE_PROGRESS_INTERVAL) lore auth login --reuse-sessionreuses a still-valid login- The
AuthUserTokenevent reports when the stored OIDC session expires [sync] prefetch_tree = truefetches a sync's tree in bulk requestslore-server:server.trust_unsigned_identitynames callers in locks and notifications on servers without authlore-server: the lock service'sQuerycan be forwarded to a remote server (lock_query)lore-server: configurable QUIC initial congestion window (initial_cwnd_bytes) and, on Linux, several UDP sockets per endpoint (num_sockets)
Fixes & Improvements
- Much faster scans under large views and ignore files (157 s to 11 s for a 6,342-rule view over 450,000 files)
- Whole-directory adds and deletes in a sync run on every core, and large syncs use less memory
- Windows: fewer file system calls for antivirus and other filter drivers to inspect
- Written files take fewer stats and only change executable bits where needed
- Throttled storage copies back off and retry instead of uploading the full payload
- gRPC over TLS falls back to bundled root certificates when the OS store has none
- Sparse views: excluded directories are skipped by clone, diff and scans, and created only for content the view keeps
- Scans and staging add or delete excluded directories only along with content below them
- Directory-only rules such as
Intermediate/apply to directories only lore statuslists andlore unstagetakes back staged changes to ignored paths- Fixed
lore stage --scantaking in some ignored files under nested re-inclusions - Fixed scans keeping untracked entries an ignore rule later excludes
- Fixed
lore stagetaking in every file of a new directory where only some were marked - Merges keep both a move and an edit of the same file, and report conflicts for paths with
[or] - Case-only renames commit without
--force - Fixed deleted directories left behind when a file in them is spelled in another case
- Merges under a sparse view show up in diffs, file history and
lore link list - Fixed several staging, unstaging and reset problems with links and layers
lore resetkeeps nested repositories- Fixed a failed removal on Unix making files world-writable; removals no longer follow symbolic links
- Lore service closes its SWFS mounts on exit, and on Windows a second service no longer takes over the socket
lore repository instance prunekeeps unreadable instances on file systems such as Btrfs- Revisions named by number resolve faster, and common-ancestor lookups no longer return a too-new revision
lore-server: faster branch push and BranchList, and the legacyBranchPushhandles deleted branches as v1 doeslore-server: replicated store requests no longer stall during a client refresh, and composite reads fall back to the durable store soonerlore-aws: shared DynamoDB reads, and batch reads back off on unprocessed keyslore-server: more branch push metrics underlore.branch_push
Release Assets
Important
These can be downloaded under the "Assets" section below.
Installer
lore-setup- Lore CLI Windows installer
Binaries
lore- Lore CLIloreserver- Lore Serverliblore- Lore Shared Library
Headers
lore.h- Single header forliblore(packaged withliblore)
Supported Platforms
- Windows x86_64
- macOS AArch64
- Linux x86_64
- Linux AArch64
- Linux AArch64, optimized for Graviton/Neoverse 512-tvb
Lore Desktop Client
Important
Lore Desktop Client is available as binaries only, download the installer for your platform here:
- Windows: Lore-Desktop-Setup-x64.exe
- macOS: Lore-Desktop-arm64.dmg
- Linux (Ubuntu 24.04): lore-desktop_amd64.deb
- Linux (AppImage): Lore-Desktop-x86_64.AppImage