Lim*_*ent 5 svn version-control svnadmin svn-checkout svnserve
我有一个很久以前创建的工作存储库,现在我正在尝试设置另一个,但我遇到了很大的困难。这是我为创建第二个所做的工作;我希望这能奏效:
U:\repos>svnadmin create repo1
U:\repos>echo password-db = passwd >> repo1/conf/svnserve.conf
U:\repos>echo auth-access = write >> repo1/conf/svnserve.conf
U:\repos>echo user1 = user >> repo1/conf/passwd
U:\repos>cd repo1
U:\repos\repo1>svnserve -d
Run Code Online (Sandbox Code Playgroud)
而在另一个终端:
U:\>mkdir wc
U:\>cd wc
U:\wc>svn co svn://localhost/repo1
svn: E210005: Unable to connect to a repository at URL 'svn://localhost/repo1'
svn: E210005: No repository found in 'svn://localhost/repo1'
U:\wc>
Run Code Online (Sandbox Code Playgroud)
另一个存储库以相同的方式配置在u:\repo
。这是怎么回事?
首先,cd repo1
是多余的:svnserve
不关心本例中的工作目录。
要使您的示例正常工作,请更改-d
为-d -r \repos
.
或者,您可以将co
命令更改为svn co svn://localhost/repos/repo1
.
运行时svn co
,它使用 URL 来告诉svnserve
在哪里查找存储库。默认情况下,该路径是相对于 的/
,而不是启动的工作目录svnserve
!现有存储库之所以有效,是因为该存储库恰好位于/
,而不是因为svnserve
从 启动/repo
。当您希望从 以外的其他地方引用存储库的路径时/
,请使用-r [--root]
选项svnserve
。
这意味着存储在 的存储库u:\repos\repo1
在启动时svnserve -r u:\repos
必须通过 url /repo1
( svn://localhost/repo'
) 而不是/repos/repo1
. 卡皮什?