svnserve

當對遠程源版本庫使用svnsync時,使用Subversion的自行定義網路協議。

svnserve允許Subversion版本庫使用svn網路協議,你可以作為獨立伺服器進程運行svnserve,或者是使用其它進程,如inetdxinetd(也是svn://)或使用svn+ssh://訪問方法的sshd為你啟動進程。

一旦客戶端已經選擇了一個版本庫來傳遞它的URL,svnserve會讀取版本庫目錄的conf/svnserve.conf文件,來檢測版本庫特定的設定,如使用哪個認證資料庫和應用怎樣的授權策略。關於svnserve.conf文件的詳情見「svnserve,一個自行定義的伺服器」一節

svnserve選項

不像前面描述的例子,svnserve沒有子命令—svnserve完全通過選項控制。

--daemon (-d)

導致svnserve以系統服務(daemon)方式運行,svnserve維護本身並且接受和服務svn埠號(預設3690)的TCP/IP連接。

--listen-port=PORT

在系統服務(daemon)模式時導致svnserve監聽PORT埠號。(FreeBSD系統服務(daemon)預設只監聽tcp6—這個選項告訴他們監聽tcp4。)

--listen-host=HOST

svnserve監聽的HOST,可能是一個主機名或是一個IP地址。

--foreground

當與-d一起使用,會導致svnserve停留在前台,主要用來調試。

--inetd (-i)

導致svnserve使用標準輸出/標準輸入文件描述符,更準確的是使用inetd作為系統服務(daemon)。

--help (-h)

顯示有用的摘要和選項。

--version

顯示版本訊息,版本庫後端存在和可用的模塊列表。

--root=ROOT (-r=ROOT)

設定svnserve服務的版本庫的虛擬根,客戶端提供的URL中顯示的路徑會解釋為這個根的相對路徑,不會允許離開這個根。

--tunnel (-t)

導致svnserve以管道模式運行,很像inetd操作的模式(兩種模式都維護標準輸入/標準輸出的連接),除了連接是用當前uid的用戶名預先認證過的這一點。這個選項在客戶端使用如ssh之類的管道時自動傳遞,這意味著你很少有必要再去傳遞這個參數給svnserve,所以如果你發現在指令列輸入了svnserve --tunnel,並想知道接下來怎麼做,可以看「穿越 SSH 隧道」一節

--tunnel-user NAME

--tunnel選項結合使用;告訴svnserve假定NAME就是認證用戶,而不是svnserve進程的UID用戶,當希望多個用戶通過SSH共享同一個系統帳戶,但是維護各自的提交標示符時非常有用。

--threads (-T)

當以系統服務(daemon)模式運行,導致svnserve為每個連接產生一個線程而不是一個進程,svnserve進程本身在啟動後會一直在後台。

--listen-once (-X)

導致svnserve在svn埠號接受一個連接,維護完成它退出。這個選項主要用來調試。