git-annex-expire(1)

πŸ“¦
version 10.20261026 Β· 3 versions
, in alpine 3.24, arch rolling, debian trixie, epel 10, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– git-annex-expire β€” expire inactive repositories πŸ’–

okay bestie, welcome to the General Commands Manual page for git-annex-expire, and honestly? this one is a whole vibe. it's the "ghost your inactive repos" command. let's get into it 🫢


✨ NAME ✨

git-annex-expire β€” expire inactive repositories. yes, literally expire them. like a gym membership nobody's used since 2023 πŸ’€


🌸 SYNOPSIS 🌸

git annex expire [repository:]time ...

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea: this command expires repositories that have not performed some activity within a specified time period. and what does "expiring" even mean? it means the repo gets marked as dead. periodt πŸ’…

but wait, it's not just one-way. de-expiration is also a thing! if a dead repository performed some activity recently, it gets marked as semitrusted again. so it's giving resurrection arc, we love that for them ✨

this is lowkey a lifesaver when it's not possible to keep track of the state of repositories manually. think about it: a distributed network of repositories where nobody can directly access all the repositories to check their status. who has the time?? not you, bestie, that's who πŸ™ˆ

so how do you even point at a repository? you can specify it using the name of a remote, or the description or uuid of the repository. pick your fighter πŸŽ€

now, the time. it's in the form "60d" or "1y". and a time of "never" will disable expiration entirely β€” no cap, that's the off switch πŸ”₯

and here's a lil detail that matters: if a time is specified without a repository, it is used as the default value for all repositories. but ngl there's a plot twist β€” the current repository is never expired. main character protection, fr fr πŸ‘‘


πŸ’… OPTIONS πŸ’…

  • --no-act β€” prints out what would be done, but doesn't actually expire or unexpire any repositories. it's the "window shopping" mode, the "add to cart but never checkout" energy πŸ›’
  • --activity=Name β€” specify the activity that a repository must have performed to avoid being expired. the default is any activity.

currently, the only activity that can be performed to avoid expiration is --activity=Fsck which corresponds to git annex fsck. and heads up bestie, note that fscking a remote updates the expiration of the remote repository, not the local repository. the way that's so easy to get twisted 😭

the first version of git-annex that recorded fsck activity was 5.20150405. historic. iconic. she was there πŸ’œ

  • --json β€” enable JSON output. this is intended to be parsed by programs that use git-annex. each line of output is a JSON object. robot-readable, machine-coded, slay πŸ€–βœ¨
  • --json-error-messages β€” messages that would normally be output to standard error are included in the JSON instead. no stderr crumbs left behind, everything goes in the JSON box πŸ“¦

also the git-annex-common-options(1) can be used. go check her out πŸ’–


🌈 SEE ALSO 🌈


πŸ‘‘ AUTHOR πŸ‘‘

Joey Hess <id@joeyh.name>


ok that's the whole page, you ate that πŸ’… go forth and expire responsibly bestie, and remember: a dead repo can always come back. we love a redemption arc πŸ¦‹

and that's a wrap on the git-annex-expire(1) manual page, straight from the General Commands Manual β€” mwah, take care of your repos, ily, bye πŸŽ€πŸ’–βœ¨