代码之家  ›  专栏  ›  技术社区  ›  Nick Allen

如何将SVN存储库路径设置为服务器路径?

svn
  •  2
  • Nick Allen  · 技术社区  · 15 年前

    上面有人说设置源代码管理,需要5分钟。这要花很长时间,很烦躁,屁股很疼!我不知道工作流程

    不管怎样。我在服务器1上安装了SVN。server1还用于存储所有现有的源代码和项目,这些源代码和项目现在已添加到server1上各自的存储库中。我们有三个开发人员在处理机器1、2和3。当我们在Visual Studio中打开服务器1上的工作副本项目(使用VisualVN)时,repos的文件路径是file:///d:/foo。当然,当您提交时,会收到一条错误消息,上面写着file:///d:/foo找不到,因为它在服务器上,而不是在计算机上。

    如何指向file://\server/d$/foo?

    我试过了

    svn开关--relocate file:///d:/foo file:///server/d$/foo

    不工作

    工作流程的一部分,我不能让我的头转过来就是这个。如果我签出一个类项目的工作副本并编译它。是否将新的dll从工作副本移动到生产环境?或者我是否要将DLL检查回源代码管理中,然后将其从源代码管理移到生产中?如果多个项目使用该dll,我是将它从源代码管理中取出,放到所有项目所查找的某个文件夹中,还是将其复制到所有项目的bin文件夹中。头痛

    编辑: 感谢您的所有投入,我将坚持不懈!

    4 回复  |  直到 15 年前
        1
  •  6
  •   Robin Day    15 年前

    是的,源代码管理只需要几分钟就可以设置,但是,了解它的工作原理是关键。

    为了回答这个问题,最好解释源代码管理是如何工作的,以及您应该期望从中得到什么。

    http://svnbook.red-bean.com/ (你可以在网上直接阅读)对它的工作原理有一个很好的解释。前几章是您真正需要浏览的所有内容,以便掌握基础知识。

    一旦你掌握了书中的基本大纲,你的实现哪里出错就应该变得明显。

        2
  •  1
  •   spender    15 年前

    我怀疑您使用UNC名称以便在使用file://scheme时可以使用基于网络的repo是这里的问题。在repo主机上应该有一个SVN服务器。这将不会使用file://scheme联系到。

    关于签入编译的输出,简而言之,不要这样做。Subversion中的内容应该可以由每个客户机从头开始构建。编译后的二进制文件在SubversionRepo中没有位置,除非(可能)它们来自第三方,并且对构建至关重要。

    “如果多个项目使用该dll,我是将其从源代码管理中取出,放到所有项目所查找的某个文件夹中,还是将其复制到所有项目的bin文件夹中”…没有答案。对不起的。

        3
  •  1
  •   crashmstr    15 年前

    SVN的书建议你 对多个用户使用file://protocol

    Choosing a Server Configuration :

    不要被让所有用户直接通过file://urls访问存储库的简单想法所诱惑。即使每个人都可以通过网络共享随时使用存储库,这也是一个坏主意。它消除了用户和存储库之间的任何保护层:用户可能意外(或故意)损坏存储库数据库,很难使存储库脱机进行检查或升级,并且可能导致文件权限问题的混乱(请参阅支持多存储库访问方法的章节)。ODS_)。请注意,这也是我们警告不要通过svn+ssh://urls_访问存储库的原因之一,从安全的角度来看,它实际上与本地用户通过file://访问存储库相同,如果管理员不小心,它可能导致所有相同的问题。

        4
  •  1
  •   Dave Markle    15 年前

    尼克:

    坚持住。不要放弃源代码控制!相信我,你现在所骑的学习曲线将会在直线上得到回报。

    回复:你的工作流程问题,你遇到了如何构建你的软件的问题。这里有很多方法可以使用,但基本的就是这样。编译应用程序时,请确保您的工件(.exe,.dlls等)标记为svn:ignore(在tortoise中,只需说“添加到忽略列表”)。这将阻止SVN签入您的构建。您不希望从开发人员副本中检入构建工件,因为它占用大量空间,并且会造成很多冲突。

    您有几个选择,但我将根据您告诉我的内容为您的工作流程提出建议:

    在源代码管理之外生成DLL。在SVN中,为您的“已发布”代码设置一个目录——对我来说,它是我的项目下名为“发布”的目录。然后,当测试和验证您的DLL时,给它一个版本号,并将其签入“发行版”部分。告诉开发人员您的共享DLL有一个新版本,他们可以使用,并让他们知道这些更改是什么。然后,他们可以随意下拉您的DLL并将其集成到代码中。

    一旦你对SVN感到满意(就会发生!)您可以继续使用Hudson或CruiseControl.net之类的工具,这些工具位于您的网络上,监视SVN的变化。当他们检测到变更时,他们会根据您指定的方式自动构建您的软件。这使得所有围绕业务的复制完全自动化。即使没有ccnet,您也可以使用nant或msbuild(我个人使用msbuild)生成一个“构建文件”,它将根据您选择的方法为您完成所有这些复制工作,因此您不必每次创建一个构建时都要完成所有这些手册工作。