我有一个很久以前创建的可使用的存储库,现在我正在尝试建立另一个存储库,但是我遇到了很大的困难。这是我创建第二个的工作。我希望这可以工作:
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
在另一个终端:
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>
另一个存储库以相同的方式在
u:\repo
上进行配置。这是怎么回事? 最佳答案
首先,cd repo1
是多余的:svnserve
不在乎此实例中的工作目录。
为了使您的示例正常工作,请将-d
更改为-d -r \repos
。
或者,您可以将co
命令更改为svn co svn://localhost/repos/repo1
。
运行svn co
时,它使用URL告诉svnserve
在哪里寻找存储库。默认情况下,该路径是相对于/
而言的,而不是相对于svnserve
所在的工作目录!现有存储库之所以起作用,是因为该存储库恰好在/
中,而不是因为svnserve
是从/repo
启动的。如果要从/
之外的其他地方引用您的 repo 路径,请使用-r [--root]
的svnserve
选项。
这意味着,存储在u:\repos\repo1
上的存储库(当使用svnserve -r u:\repos
启动时)必须由url /repo1
(svn://localhost/repo'
)而不是/repos/repo1
引用。随心所欲?
关于svn - 如何设置简单的SVN服务器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15365093/