我有一个很久以前创建的可使用的存储库,现在我正在尝试建立另一个存储库,但是我遇到了很大的困难。这是我创建第二个的工作。我希望这可以工作:

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/

10-13 09:19