远程web主机上的SVN服务器/存储库


SVN Server / repository on remote webhost?

我的愿望很简单,但显然很复杂。

作为一名编程专业的学生,我被介绍到SVN,确切地说是TortoiseSVN。我们得到了一个库的url,它看起来像这样:www.schoolderp.com/svn/project1

这很好,但是现在我们想要进行一些私人项目。所以使用TortoiseSVN,我们创建了一个存储库,将其上传到一个网站主机,并尝试通过存储库浏览器查看它。当然事情不可能那么简单……呸!

所以在过去的几天里,我一直在网上搜索答案,但我卡住了。

我读了很多地方,Apache是需要的,但当我读到Apache,它似乎是一个服务,我需要在我的机器上运行,或者我只是愚蠢的?

所以现在我几乎要疯了,我喜欢一个真正简单的解释,做什么,让一个svn服务器在我的网站主机上运行:/

提前感谢……

您需要一台服务器(虚拟或真实)来运行svn。简单的web主机不提供svn服务器所需的功能。作为替代方案,有几个svn服务器,您可以拥有自己的私有存储库。

SVN主机

如果你想安装SVN服务器,你需要一个root权限。然而,你可以使用其他一些免费的svn托管服务,并且可以在web上看到源文件,就像一个回购浏览器。

http://unfuddle.com/

如果您正在运行一些私有的,并且没有访问VPS或专用服务器(并且您的教育机构不能帮助您在其部门IP地址之一上设置此服务器),那么也许一个解决方案可能是使用Windows的VisualSVN(假设您正在使用Windows)。有了这个,你可以在你正在使用的PC(或笔记本电脑)上设置存储库,然后使用类似dyndns(或另一个动态名称/ip映射服务)的东西将你的PC/笔记本电脑的ip映射到一个像oursvn.yourwebsite.com这样的网络域。通过一些配置,您可以从映射到您的"当前"ip地址的url访问SVN服务器(即使在便携式笔记本电脑上)。

这可能不是一条简单的路线,但这是一条低成本的DIY路线。

VisualSVN (http://www.visualsvn.com/)相对容易设置。动态IP/url映射服务可以是免费的,也可以是付费的,如果你在VisualSVN中创建用户和存储库,你就可以自己控制访问。(如果您认为这是一个合适的解决方案,请下载右侧的服务器版本。)

如果做不到这一点,有第三方服务提供商可以为您提供一系列价格的SVN托管服务。

http://beanstalkapp.com/pricing[非推荐,仅作为参考示例]

http://dyn.com/dns/dyndns-free/[同样不是推荐,只是举个例子]

SVN-repo和website有弱相关性

  1. Dreamhost在它的普通主机包中提供SVN
  2. 您可以使用任何(免费或非免费)svn主机
  3. 您可以创建区域仓库(使用TSVN)并使用file://协议访问(仅在本地)
  4. 你可以通过svn://protocol (network - working)和svnserve
  5. 创建本地repo。

Apache只是托管Subversion存储库的一种方式。Subversion使用三种协议为其存储库提供服务:

  • http:(和https:)
  • 文件:
  • svn:

最简单的是file:。您所要做的就是在本地机器上创建一个存储库,并使用file:协议简单地指向它。下载SlikSVN。这是一个命令行驱动的客户端,但它包含可以用于创建存储库的svnadmin命令:

C:'repository> svnadmin create myrepos

现在TortoisSVN,指向不 http ://www.schoolderp.com/svn/project1,但 file ://C/repository/myrepos。注意使用的不同协议!您应该能够从新创建的myrepos存储库签出。(它将是空的,所以那里不会有任何文件或目录,但您可以创建它们并将它们检入。

file:协议的问题是你必须在本地系统上,它不能很好地处理多个用户。但是,如果你正在使用TortoiseSVN,并且它是你自己的私有项目,它工作得很好。

另一种可能性是使用svnserve使用svn:协议运行存储库。这实际上比http:更快,因为有更少的开销,但是你只能在每个服务器实例上有一个存储库,而使用http,你可以在单个Apache httpd实例上运行多个存储库。

C:'repository> svnadmin create myrepos
C:'repository> notepad myrepos'conf'svnserve.conf
C:'repository> notepad myrepos'conf'passwd
C:'repository> svnserve -r myrepos -d
C:'repository>

myrepos'conf'svnserve.conf文件是存储库的配置文件。您需要更改表示###password-db = passwd的行,以从该行开头删除###。这将密码数据库设置为passwd文件。

你需要创建passwd文件。这里有一个示例,你可以用作模板。您所需要做的就是在[users]部分下添加用户名和密码。例如:david = swordfish将用户david的密码设置为swordfish

现在,您可以将TortoiseSVN指向 svn ://localhost,并从您的存储库签出。您的朋友也可以从相同的存储库中签出,将您的机器名称替换为localhost

因此,您必须创建一个Subversion存储库,但是使用svncreate命令非常容易。您可以立即通过file://协议访问它,而无需执行任何其他操作。如果您想与其他人共享这个存储库,您需要使用svnserve命令来运行SVN服务器,但这也很容易做到。

我建议您阅读Subversion在线手册。前几章会让你对Subversion的工作原理有一个基本的了解,以及如何使用Subversion svn命令,这个命令是你下载并安装的SlikSVN客户端的一部分。服务器的基础知识在第5章,关于使用svnserve的信息在第6章。