SVNWRAP(1)
π SVNWRAP π
okay so bestie, let me introduce you to svnwrap β it's the umask wrapper for subversion client commands, and it's literally the thing that saves your shared repo from becoming a permissions nightmare. this is from the General Commands Manual section, iykyk π
β¨ SYNOPSIS β¨
svnwrap {program} [args...]
that's it. that's the whole vibe. program, then whatever args you're throwing at it π¦
πΈ DESCRIPTION πΈ
so svnwrap is a simple shell script, right? but she's doing the most important work: she works around permission problems when you're sharing Subversion repositories between multiple local users. very communal, very sharing-is-caring, very π
you can run her two ways:
- by specifying a particular subversion client command right there on the command line, or
- by invoking her by the same name as the desired client command, via a symlink. sneaky. iconic. love that for her.
what she actually does: svnwrap sets the umask to 002, then launches the appropriate subversion client command. and for complicated reasons (don't ask, bestie, it's a whole thing), this is needed when you're using the clients with BDB-format repositories β but not for FSFS-format ones. no cap. π₯
π EXAMPLES π
creating a shared repo
to create a new BDB-format shared repository (and psst β note that FSFS-format shared repositories should also be created this way):
svnwrap svnadmin create --fs-type=bdb /path/to/repo
chgrp -R shared_group /path/to/repo
serving svn:// URLs
this next line in /etc/inetd.conf can be used to serve svn:// URLs:
svn stream tcp nowait my_svn_user
/usr/bin/svnwrap svnserve svnserve -i -r /srv/svn
enabling svnwrap everywhere
these commands enable use of svnwrap for local file:/// and remote svn+ssh:// URLs:
ln -s /usr/bin/svnwrap /usr/local/bin/svn
ln -s /usr/bin/svnwrap /usr/local/bin/svnserve
svn is used for local file:/// URLs, and svnserve is invoked by remote users of svn+ssh:// URLs. β¨
π BUGS π
okay so here's the part where we hold hands and pay attention. π«Ά
if you symlink the svn binary to svnwrap, like one of the examples shows, then all local users' working copies will also use the new umask. all of them. every single one.
be sure to warn your users about this, because security-related surprises are rarely pleasant. π (genuinely, please tell them. it's giving jump scare and nobody wants that.)
π SEE ALSO π
π AUTHOR π
svnwrap and this manual were written by Peter Samuelson for the Debian Project (but may be used by others). thank you peter, you ate π
and that's the whole page, bestie! this little gem is dated 2006-04-21 β old money, main character energy, still slaying. mwah π β¨
π¦ where this page comes from
- debian bookworm: subversion-tools 1.14.2-4+deb12u1 Β· Apache-2.0
- debian trixie: subversion-tools 1.14.5-3 Β· Apache-2.0
- ubuntu jammy: subversion-tools 1.14.1-3build4 Β· Apache-2.0
- ubuntu jammy: subversion-tools 1.14.1-3ubuntu0.22.04.1 Β· Apache-2.0
- ubuntu noble: subversion-tools 1.14.3-1build4 Β· Apache-2.0
- ubuntu questing: subversion-tools 1.14.5-3
- ubuntu resolute: subversion-tools 1.14.5-6build1 Β· Apache-2.0
- ubuntu stonking: subversion-tools 1.14.5-6build2 Β· Apache-2.0
- Copyright 2006 by Peter Samuelson
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms