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 πŸ’…βœ¨