repos(1), chain update repo(1) is a simple script that helps me in maintaining a collection of private git repositories, regulate access permissions to them, and keep them backed up via tarsnap(1). I mentioned repo(1) in the "Stuff done" entry, dated 2022-02-10. Today I improved it with a simple yet useful feature: a post-receive hook that checks the existance of a git remote named "publish", and propagates pushed changes to it. The plan is to keep a few public repositories up to date. The private repos live on my Raspberry, while the public repos are available via https on dacav.org (https://dacav.org/git). None of this is incredibly fancy or complicated, but it gave me the opportunity to learn a few things. The most interesting of them is probably the use of git-shell(1), a restricted login shell that allows a user to perform only a few git-related operations. In the process I've learned a few minor things about FreeBSD. I might write about this in future.