SQ-GIT(1)
β¨ SQ-GIT(1) β¨
okay bestie, pull up a chair, we're reading a man page and it's literally gonna be fun π
This one lives in the User Commands section of the manual, it's called sq-git, and this particular page is all about one lil subcommand. Let's go π¦
πΈ NAME πΈ
sq-git-update-hook β a git update hook that enforces the policy. That's the whole vibe. It's a hook, it checks the policy, no cap. β¨
π SYNOPSIS π
sq-git update-hook [OPTIONS] REF_NAME OLD_OBJECT NEW_OBJECT
π¦ DESCRIPTION π¦
So it's a git update hook that enforces the policy. Simple as that, but the way it does it is lowkey iconic. π
To make it actually do its thing, you drop this line into hooks/update on the shared git server, and boom β it enforces the policy that's embedded in the repository, starting at the trust root COMMIT:
sq-git update-hook --trust-root=<COMMIT> "$@"
Now here's the tea on how it decides stuff. π
When a branch is pushed that is not previously known to the server, sq-git update-hook checks that all commits starting from the trust root to the pushed commit adhere to the policy. Fresh branch, full vibe check, every commit from the trust root down. β
When a branch is pushed that is previously known to the server, i.e. the branch is updated, sq-git update-hook checks that all new commits starting from the commit previously known to the server to the pushed commit adhere to the policy. So it's not re-checking the whole history, just the new stuff. Efficient queen. π
But wait, plot twist π β if there is no path from the previously known commit to the new one, that means the branch has been rebased. And then? We fall back to searching for a path from the trust root. Periodt.
β¨ OPTIONS β¨
π Subcommand options
--policy-file=POLICYβ Use an alternate policy. The default policy is theopenpgp-policy.tomlfile in the root of the repository's working tree. So if you don't say anything, that's the one it grabs. π--trust-root=COMMITβ The commit to use as a trust root. This is your starting point, your anchor, your main character commit. βREF_NAMEβ The name of the ref being updated. Supplied as the first argument to the update hook, seegithooks(5). πOLD_OBJECTβ The old object name stored in the ref. Supplied as the second argument to the update hook, seegithooks(5). πNEW_OBJECTβ The new object name stored in the ref. Supplied as third argument to the update hook, seegithooks(5). π¦
π§ Global options
- See
sq-git(1)for a description of the global options. That's where all the global bestie knowledge lives. π
π₯ SEE ALSO π₯
sq-git(1).- For the full documentation see <https://sequoia-pgp.gitlab.io/sequoia-git>. (yes that URL has a soft hyphen in the original, we're keeping it, iykyk π)
π VERSION π
0.6.0
and that's the whole page, bestie π«Ά This icon was brought to you by Sequoia PGP, version 0.6.0, dated 0.6.0 β same number twice, we love a consistent queen. Now go enforce that policy. Slay. π
β¨π
π¦ where this page comes from
- fedora 43: sequoia-git 0.6.0-4.fc43
- fedora 43: sequoia-git 0.6.0-6.fc43 Β· LGPL-2.0-or-later AND Apache-2.0 AND BSD-3-Clause AND BSL-1.0 AND MIT AND MPL-2.0 AND Unicode-3.0 AND Unicode-DFS-2016 AND Zlib AND bzip2-1.0.6 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)
- fedora 44: sequoia-git 0.6.0-4.fc44
- fedora 44: sequoia-git 0.6.0-6.fc44 Β· LGPL-2.0-or-later AND Apache-2.0 AND BSD-3-Clause AND BSL-1.0 AND MIT AND MPL-2.0 AND Unicode-3.0 AND Unicode-DFS-2016 AND Zlib AND bzip2-1.0.6 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT)
- nixos 26.05: sequoia-git 0.6.0
- nixpkgs unstable: sequoia-git 0.6.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms