gpt4 book ai didi

svn - 选择 Subversion 服务器

转载 作者:行者123 更新时间:2023-12-04 11:46:06 25 4
gpt4 key购买 nike

选择后Apache Subversion满足我的版本控制需求(和 AnkhSVN / TortoiseSVN 对于我的主要 Subversion 客户端)。现在我正在尝试选择 SVN 服务器来提供对 SVN 存储库的远程访问。我看过其中的几个:

  • CollabNet Subversion Edge
  • VisualSVN Server

  • 我已经在虚拟机中安装了每一个来试用它们,但还没有找到足够的方法来区分它们中的大多数以选择任何特定的。现在我有几件事需要决定。
  • 协议(protocol)
  • 供应商
  • SSL

  • 1.我读过HTTP很多 较慢 比SVN协议(protocol)。虽然我的项目通常不会太大(实际上只有初始导入是耗时的部分),但我确实希望获得 SVN 的性能优势,并避免我的 HTTP 日志被 SVN 条目淹没(我有到目前为止还无法分离到单独的 LOG 文件中)。

    不过,我确实喜欢使用 Apache 模块或 VisualSVN 提供的 Web 界面。我真的不需要将我的东西提供给其他人(甚至我自己远离我的系统),所以这并不重要,但它确实允许可扩展性。

    2.选择协议(protocol)后(假设我必须选择);我需要帮助决定使用哪个供应商。我最初使用的是 Tigris 发行版中的 Apache 模块。我已经删除了它(好吧,只是禁用了它),并且目前正在使用 VisualSVN(它是 HTTP,因此速度很慢)。我见过人们支持 Sharp 和 Silk,但它们似乎更小,独立发行版。
    另一方面,Collabnet 似乎比我需要的更复杂。基本上,除非我能说服其中之一,否则我主要只是想在官方的 Tigris 和 VisualSVN 之间进行选择。

    3. 我也尝试过使用 SSL,但没有取得多大成功(我买不起真正的 CA,所以我在 VisualSVN 中使用自签名证书)。我很乐意使用 SVN+SSH/HTTPS,但如果我在自己的系统上使用它,则没有必要,如果我在外部使用它,那么我的自签名证书将无济于事。

    我想我什至可以使用本地存储库;我认为这将是最快的。但是,如果我扩展,我更喜欢更正式的解决方案。 (我考虑过只使用 TortiseSVN 客户端在本地完成服务器的工作。)

    所以总而言之,我需要一些关于使用哪个服务器( s ?)的建议。如果我可以让 VisualSVN 提供一个供 Web 使用的 HTTP 接口(interface),而且还可以在客户端使用的 SVN 协议(protocol)上提供服务,最好在每个客户端上使用 SSL 选项,那就太好了。那可能吗?工作量会不会太大(我真的很想重新开始我的项目,而不是所有这些元工作)。

    非常感谢。

    编辑

    我想我应该提供一些关于我的情况的信息来澄清事情。
  • (当前)单系统,(旧 P4,Windows,1GB SDRAM)
  • (目前)单例开发者(我)
  • (目前)相对较小的项目(<2MB)
  • 无数项目(>100 个单独的应用程序、游戏、库、网站等)
  • 需要外部(特别是我自己的库以及第 3 方 header 、Boost 等)
  • ?嗯,还有什么……
  • 最佳答案

    编辑 : 在阅读了这里的其他答案之后,我想我应该提到一件事。如果您尝试使用一台服务器,您要求它提供服务的存储库将与您要求另一种类型的服务器提供服务的存储库没有什么不同。

    换句话说,如果您决定现在尝试一个服务器,您可以稍后切换到另一种类型的服务器,而不会丢失您的存储库。当然,工作副本以及您在项目中所做的任何绝对外部引用都必须更改,但您可以保留存储库的历史和所有内容。

    我安装了VisualSVN Server当它被宣布时,并且对它非常满意,有一段时间。

    然而,速度问题让我切换到作为 Subversion 命令行包的一部分提供的主 svnserve 服务器。

    主要问题是我正在使用 .NET,并且我选择将几个外部 Subversion 引用添加到我的项目中。

    首先,最重要的是,我在类库中创建的每个项目都由我的 key 签名。二、外部第三方库,如SQLiteNUnit被添加为外部引用。

    每个项目都有自己的外部引用。我这样做是为了能够创建一个新的应用程序项目,然后对我需要的类库部分进行新的外部引用,并使这些引用完整。如果我在 .NET 中的类库解决方案有一个签名 key 文件的外部引用,并且该文件不能作为任何单个项目的一部分使用,而是位于所有项目之外的磁盘上,但位于我的解决方案的本地,那将没有工作。

    因此,我的类库解决方案包含大约 15-20 个项目,每个项目至少有一个对签名 key 的外部引用,我所有的数据项目都有对 SQLite 库的外部引用,而单元测试库有 4-5 个外部引用。

    最终结果是解决方案级别的单个更新,即使我已经拥有所有最新的文件、目录和所有内容,也需要大约 2 分钟才能完成。每一个外部引用都需要 10 到 20 秒才能完成,只是为了验证我是否有我需要的修订。

    当我切换到 svnserve 时,这 2 分钟减少到大约 3 秒。请注意,这是本地流量,因此当然这在互联网上会有所不同。问题是,那 2 分钟也是本地交通。

    因此,虽然我非常喜欢 VisualSVN Server 为我提供的界面,包括轻松设置访问权限和用户的能力,但与 svnserve 和 native Subversion 协议(protocol)相比,Apache 服务器模块提供给我的速度绝对是可怕的.

    请注意,从那以后我安装了一个单独的 Apache 服务器,浏览了许多配置文件,并使用 Apache 设置了 Subversion,而不是通过 VisualSVN 服务器,只是为了确保它不仅仅是 VisualSVN,我已经确认速度我观察到的不是 VisualSVN 团队的工作。似乎 HTTP 协议(protocol)或 Apache 模块并没有那么快。

    如果可能的话,我的建议是使用主 svnserve 服务器。可能需要一些工作来了解授权等配置文件,但单独的刺激因素(即根本没有对速度的刺激)很可能超过这一点。

    关于svn - 选择 Subversion 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1182859/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com