我正在尝试访问我的QNAP文件服务器,以便在我的网络上本地存储SVN文件。我想要存储它们的文件夹是passworded。 SVN存储库位置:
\\NAS1\ryan\SVN\MSVS12
目录“ryan”受密码保护。如果我直接从Windows访问它,我收到错误:
Windows cannot access \\NAS1\ryan\SVN\MSVS12
虽然如果我直接添加“\\ NAS1 \ ryan”来添加我的凭据,那么tortoiseSVN和windows都可以访问该会话。
我尝试过使用:
file://path;username=user;password=pass
并且文档似乎也无法揭示我的情况。使用自动登录到此文件夹@login的启动脚本会更容易/更好吗?还是有另一种方法可能更好用吗?
编辑:我决定在脚本文件中使用“net use”命令:
net use \\nas1\ryan /user:username password
答案 0 :(得分:3)
不要这样做。这是一种完全不受支持且非常不鼓励的配置。
通过file:///
方法从UNC共享服务存储库可能会导致存储库丢失或损坏(因为用户删除存储库数据库文件无法恢复是微不足道的),任何hook scripts shaky at best (because the execute on the committer's PC, not in a controlled server environment), and affords you zero security within the repository itself (path-based authorization doesn't exist with this access method)(参见页面上的最后一个要点)。还有一些与旧版Samba(您的QNAP可能正在使用)通过Subversion发现的权限相关的错误,这些错误也会让您感到困扰(请参阅this note)。
相反,安装Subversion on the QNAP itself并通过HTTP或svnserve正确访问存储库。副作用:它完全避免了你的UNC共享问题。
答案 1 :(得分:0)
正如Aloc已经指出的那样,你永远不应该在file://
上共享一个存储库。 Subversion手册是very firmly against this 1 。
有多种原因:您可以让用户直接访问存储库文件,这意味着他们可以直接操作它们。挂钩工作正常有问题。并且,由于svn客户端本身直接操作服务器布局,因此几乎没有保护两个人在存储库中同时进行更改。坏主意。
尤其如此,因为设置svnserve
非常简单。您甚至可以将svnserve
设置为Windows Service。唯一可能的问题是您的路由器或防火墙阻塞端口3620(Subversion svnserve的默认端口)。
以下是设置svnserve
:
$REPO_HOME/conf/svnserve.conf
文件。您希望在第20行周围更改以设置password-db = passwd
(或您的密码数据库)。passwd
文件以设置帐户。它基本上是account_name = password
。该文件有一条评论显示如何操作。svnserve
。而且,这就是它。大约需要10分钟的工作时间。
如果你真的想要花哨,你可以使用Apache httpd。但是,这涉及安装和配置Apache httpd,这在Windows系统上可能有点困难 - 特别是如果您不熟悉Apache设置。但是,有step-by-step directions并且它们并不难以理解。优点是,它运行在端口80上,与端口3620相比,它不太可能被阻塞,您可以将Windows Active Directory用于Subversion authentication 2 。
但是,有几个基于Windows的Subversion服务器,如[http://www.visualsvn.com/server/licensing/],使Apache设置更容易,但要获得LDAP访问,您必须支付< em> Pro 包。您还可以查看CollabNet's package。这是免费的,但它是更多滚动你自己的解决方案。
1。请参阅该网页的最后一段
2. 可以通过SASL将svnserve
与LDAP / Windows Active Directory配置一起使用,但我从未见过它。可能是因为那些想要使用LDAP / Windows Active Directory的人已经知道如何通过Apache httpd。