【问题标题】:SVN Server / repository on remote webhost?远程虚拟主机上的 SVN 服务器/存储库?
【发布时间】:2011-10-16 22:51:13
【问题描述】:

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

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

这很好,但现在我们想让一些私人项目继续进行。 因此,我们使用 TortoiseSVN 创建了一个存储库,将其上传到网络主机并尝试通过存储库浏览器查看它。当然不可能这么简单.. 呸!

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

我读过很多需要 Apache 的地方,但是当我读到 Apache 时,似乎它是我需要在我的机器上运行的服务,还是我只是愚蠢?

所以 atm 我快要发疯了,我希望能简单地解释一下如何在我的虚拟主机上启动和运行 svn 服务器:/

非常感谢..

【问题讨论】:

  • 我仍然不清楚这个问题的要求。您上传到虚拟主机,并尝试通过 repo-browser 查看它,但它不起作用?你在寻找什么答案?您是否正在寻找一种在线查看源文件的方法?或者你想了解如何托管 svn 服务器?
  • 据我所知 TortoiseSVN 是一个 SVN 客户端。您不能使用它创建新的存储库。您必须有权访问 svn 服务器才能执行此操作。

标签: php apache svn tortoisesvn


【解决方案1】:

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

SVN Hoster

【讨论】:

  • 这很糟糕,但解释了为什么我遇到了这么多麻烦.. 甚至没有意识到虚拟主机不等于实际服务器.. 只是表明我的无知.. :P 谢谢
【解决方案2】:

如果你想设置 svn 服务器,你需要一个 root 权限。但是,您可以使用其他一些免费的 svn 托管服务,并且可以像浏览器一样在网络上查看源文件。

http://unfuddle.com/

【讨论】:

  • 这是我自己的虚拟主机,因为我为它付费,所以我获得了 root 权限。但是在根目录下创建一个仓库是行不通的。
  • 你有专用或 VPS 吗?
  • 拥有自己的虚拟主机并不意味着您拥有root权限。
【解决方案3】:

如果您正在运行一些私有服务器,并且无法访问 VPS 或专用服务器(并且您的教育机构无法帮助您在其部门 IP 地址之一上进行设置),那么也许是一种解决方案可能是使用 VisualSVN for Windows(假设您使用的是 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/ [同样也不是推荐,只是一个例子]

【讨论】:

  • 我只是坚持认为我可以使用自己的虚拟主机,但显然不行。感谢您提供的替代方案。
  • 您好 Tsanas - 您可以要求您的虚拟主机为您在您的主机上安装 Git 或 SVN(如果它是 VPS 或专用)。通常成本高得令人望而却步,但有一些解决方案值得考虑,或者考虑将主机移至支持它的开箱即用的主机。 IT 让他们进行设置比让您管理要容易得多。
【解决方案4】:

SVN-repo 和网站的共同点是弱相关

  1. Dreamhost 在它的普通主机包中提供 SVN
  2. 您可以使用任何(免费或非免费)SVN 托管
  3. 您可以创建语言环境 repo(使用 TSVN)并使用 file:// 协议进行访问(仅限本地)
  4. 您可以通过 svn:// 协议(可联网)和 svnserve 创建本地 repo 并为其供电

【讨论】:

    【解决方案5】:

    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 online manual。前几章将让您基本了解 Subversion 的工作原理以及如何使用 Subversion svn 命令,该命令是您下载并安装的 SlikSVN 客户端的一部分。服务器基础知识在Chapter 5 和有关使用svnserve is in chapter 6 的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2013-08-02
      • 2020-04-14
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多