svnserve を使用すると、Subversion のカスタムネットワークプロトコルで Subversion リポジトリにアクセスできます。
svnserve を、スタンドアロンサーバプロセス (クライアントは svn:// アクセス方法を利用)で実行する、inetd や xinetd のようなデーモンで必要に応じて起動 (これも svn://) する、sshd があれば svn+ssh:// アクセス方法で必要に応じて起動すると言った方法で実行できます。
アクセス方法によらず、クライアントが URL を送ってリポジトリを選択すると、svnserve はリポジトリディレクトリにある conf/svnserve.conf という名前のファイルを読んで、どのような認証用データベースを使い、またどのような認証方法を使うかといった設定を、リポジトリごとに決めます。svnserve.conf ファイルの詳細は svnserve (専用サーバ)項 をご覧ください。
すでに説明してきたコマンドとは違い、svnserve にはサブコマンドがありません — svnserve はオプションにより排他的に制御されます。
--daemon (-d)svnserve をデーモンモードで実行します。svnserve 自身はバックグラウンドで実行し、svn ポート (デフォルトは 3690) で TCP/IP 接続を受け付け、提供します。
--listen-port=PORTデーモンモードで実行時に、PORT で待ち受けるように svnserve に指定します。(FreeBSD のデーモンは、デフォルトで tcp6 でのみ待ち受けします — これにより tcp4 でも待ち受けするようになります)
--listen-host=HOSTsvnserve が HOST で指定したインターフェース上で待ち受けるようにします。ホスト名か IP アドレスの いずれかで指定します。
--foreground-d と一緒に利用すると、svnserve がフォアグラウントで待機するようになります。このオプションは主にデバッグ時に便利です。
--inetd (-i)svnserve が標準入力・標準出力のファイル記述子を利用するように指定します。inetd と共に利用する場合に適しています。
--help (-h)使用方法の概要を表示し終了します。
--versionバージョン情報と、利用可能なリポジトリバックエンドモジュール一覧を表示して終了します。
--root=ROOT (-r=ROOT)svnserve によって提供されるリポジトリの仮想ルートを設定します。クライアントからの URL 中のパス名は、このルートからの相対パスと解釈され、その外側にアクセスすることを許しません。
--tunnel (-t)svnserve がトンネルモードで実行するように指定します。inetdと (標準入出力を使って接続するという意味で) 同様ですが、現在の uid に対応したユーザ名で、あらかじめ認証されているとみなします。このフラグは sshのような トンネルエージェント経由で実行する際、クライアントによって自動的に渡されます。これは、あなたがこのオプションを svnserve に渡す必要はまれにしかないということです。ですから、コマンドラインに svnserve --tunnel と入力して、次に何をしたらよいかわからなくなったら、SSH のトンネリング項 をご覧ください。
--tunnel-user NAME--tunnel オプションと一緒に使い、svnserve プロセスの UID のかわりに NAME が認証されたユーザであると見なすよう、svnserve に指示します。SSH 経由では一つのシステムアカウントを共有しても、コミットの主体は分けておきたいユーザに便利です。
--threads (-T)デーモンモードで実行する場合、svnserve が、接続ごとにプロセスを起動するのではなく、スレッドを起動するように指定します (Windows で実行するときなど)。 svnserve自身は、やはり起動時にバックグラウンドに常駐します。
--listen-once (-X)svnserve は svn ポート上で一つだけ接続を受け入れ、サービス提供後終了します。このオプションは主にデバッグ時に利用します。