You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
--help output no longer renders rustdoc backticks literally. The
doc-comment markdown convention now produces clean terminal text
(backticks stripped), bold inline-code in man pages, and proper
links in the mdbook docs (gitignore(5), git-lfs-config(5),
etc. resolve to git-scm.com or the corresponding internal page).
git-lfs-smudge(1) gains ENVIRONMENT and KNOWN BUGS sections; git-lfs-checkout(1) gets the upstream-faithful DESCRIPTION
(conflict mode, partial-clone / GIT_ATTR_SOURCE interaction,
bare-repo behavior) and an EXAMPLES section.
git-lfs-fetch(1) gets the upstream-faithful DESCRIPTION,
per-flag wording, and dedicated DEFAULT REMOTE / DEFAULT REFS /
INCLUDE AND EXCLUDE / EXAMPLES / SEE ALSO sections. Adds -a/-p/-d/-j short aliases for --all/--prune/ --dry-run/--json to match upstream. The --recent
flag and the lfs.fetchrecent* configuration are still
unimplemented and the docs say so explicitly.
git-lfs-pull(1) gets the upstream-faithful DESCRIPTION
(with a short pointer to git-lfs-checkout(1) for the
partial-clone / bare-repo behavior, since the same prose
already lives there) plus DEFAULT REMOTE, INCLUDE AND
EXCLUDE, and SEE ALSO sections.
git-lfs-push(1) gets the upstream-faithful DESCRIPTION,
per-flag wording (including the "behavior differs from git lfs fetch --all" warning on --all), and a SEE
ALSO section. Adds -d/-a/-o short aliases for --dry-run/--all/--object-id to match upstream.
git-lfs-install(1) and git-lfs-uninstall(1) get
upstream-faithful DESCRIPTIONs and per-flag wording,
plus SEE ALSO sections. Adds -w (--worktree) on
both and -s (--skip-smudge) on install for parity. --manual is not yet supported on install — use git lfs update --manual instead.
git-lfs-track(1) and git-lfs-untrack(1) get
upstream-faithful DESCRIPTIONs, per-flag wording, and
EXAMPLES + SEE ALSO sections. Adds -d (--dry-run)
and -j (--json) short aliases on track for parity.
git-lfs-lock(1), git-lfs-locks(1), and git-lfs-unlock(1) get upstream-faithful DESCRIPTIONs
and per-flag wording, plus SEE ALSO sections. Our --ref (refspec) flag is documented as an extension
over upstream's CLI on each command. --cached on locks is not yet implemented.
git-lfs-status(1), git-lfs-ls-files(1), git-lfs-prune(1), and git-lfs-fsck(1) get
upstream-faithful DESCRIPTIONs and per-flag wording,
plus SEE ALSO sections. Each page honestly notes
unimplemented upstream features: ls-files skips --include/--exclude/--deleted and the two-ref
diff form; prune skips the --force/--recent/ --verify-remote family and the recent-files /
stash / worktree retention rules; fsck skips the <a>..<b> range form and lfs.fetchexclude honor.
git-lfs-clean(1), git-lfs-filter-process(1), git-lfs-clone(1), git-lfs-pointer(1), git-lfs-version(1), git-lfs-env(1), git-lfs-ext(1), and git-lfs-update(1) get
upstream-faithful descriptions and per-flag wording.
Adds -s (--skip) on filter-process and -m/-f
(--manual/--force) on update for parity with
upstream's short aliases. The git-lfs-clone(1) page
notes that git lfs clone no longer offers a
meaningful speedup over plain git clone (which
parallelizes the smudge filter on modern Git).
git-lfs-pre-push(1), git-lfs-post-checkout(1), git-lfs-post-commit(1), and git-lfs-post-merge(1)
get upstream-faithful descriptions and SEE ALSO
sections. Adds -d (--dry-run) on pre-push for
parity. The post-* hook docstrings previously claimed
"no-op stub"; corrected to reflect that all three
now wire into the lockable read-only enforcement
(the post-commit page notes our gap vs. upstream's
HEAD-only optimization).
git-lfs-migrate(1) and its three subcommands
(import, export, info) get upstream-faithful
descriptions and per-flag wording. The migrate parent
page also gets INCLUDE AND EXCLUDE (with the
migrate-specific glob semantics that differ from
gitignore form), INCLUDE AND EXCLUDE REFERENCES
(with the ASCII commit-graph diagram), EXAMPLES (8
representative invocations across all three modes),
and SEE ALSO sections. Man pages for commands with
subcommands now include a SUBCOMMANDS section listing
them.
xtask now recurses into nested subcommands, generating
a man page and mdbook page for each one — the migrate
subcommands now have their own pages
(git-lfs-migrate-import(1) etc.), so the SUBCOMMANDS
cross-references on git-lfs-migrate(1) resolve to
real pages instead of broken ones.
Every man page and mdbook page now ends with a REPORTING BUGS
section pointing at the project issue tracker and clarifying
that this is the Rust port (so reports don't end up on the
upstream Go project's tracker by mistake). Sourced from a
single cli/man/reporting_bugs.md. The groff converter
learned .UR/.UE for markdown links, so "issue tracker"
renders as a clickable link in OSC-8-capable terminals and
falls back to "issue tracker ⟨URL⟩" everywhere else
(portable across groff and mandoc).
Added
Release packaging via just package. Cross-compiles git-lfs for
linux-musl, darwin, and windows-gnullvm (x86_64 + aarch64 each)
using cargo-zigbuild, and produces per-target tarballs (zips on
windows) under target/dist/. Linux musl targets additionally
build .deb and .rpm packages via cargo-deb / cargo-generate-rpm,
named git-lfs-rs to avoid colliding with the upstream git-lfs
package; the binary still installs as /usr/bin/git-lfs so git lfs <command> works after install. A source tarball
(git-lfs-X.Y.Z.tar.zst) ships alongside, combining git archive HEAD with the generated man pages so downstream packagers can
build without our xtask.
Release binaries are now stripped, ThinLTO-optimized, single-codegen-
unit, and panic = "abort" (workspace [profile.release]). Smaller
and faster than the default release profile. Stripping happens during
rustc rather than via cargo-deb's host-binutils strip, which was
failing on cross-arch musl binaries in CI.
GitLab CI pipeline (lint → test → package → release → deploy).
Pushes to master run lint and test; semver-tagged commits
additionally build all packaging artifacts and publish a GitLab
release with notes pulled from the matching CHANGELOG.md
section. Package job is also exposed as a manual button on master
and merge requests so packaging can be verified without cutting a
tag.
Fixed
git lfs ls-files --debug now terminates each pointer block
with a trailing blank line, matching upstream's output and the
vendored t-ls-files test expectations.
Batch responses that use the deprecated _links field name
(instead of actions) now deserialize correctly. Older LFS
servers in the wild still emit this form.
git lfs ls-files outside a git repository now prints Not in a Git repository. to stdout and exits 128, matching the other
commands.
git lfs ls-files -- --all now hints at the likely intended git lfs ls-files --all -- instead of silently scanning HEAD
for a ref named --all.
git lfs migrate info --unit=<unit> now formats every row's
byte count as a fractional count of the requested unit
(b, kb, mb, gb, tb, pb) instead of being silently
ignored. Bare unit suffixes (--unit=kb) are accepted as
shorthand for --unit=1kb.
git lfs smudge honors lfs.skipdownloaderrors / GIT_LFS_SKIP_DOWNLOAD_ERRORS. When the local store doesn't
have an object and the fetch fails, the smudge filter now
passes the original pointer text through to the working tree
instead of failing the checkout.