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

如何将svn存储库路径设置为服务器路径?,svn,Svn,有人说要设置源代码管理,需要5分钟。这要花很长时间,很烦躁,很痛苦!我不知道工作流程 无论如何。我已在服务器1上安装了svn。Server1还用于存储所有现有的源代码和项目,这些源代码和项目现在已添加到Server1上各自的存储库中。我们有三个开发人员在机器1、2和3上工作。当我们在VisualStudio(使用VisualSVN)中打开服务器1上的工作拷贝项目时,repo的文件路径是file:///d:/foo 当然,当您提交时,会收到一条错误消息file:///d:/foo 找不到,因为它位

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

无论如何。我已在服务器1上安装了svn。Server1还用于存储所有现有的源代码和项目,这些源代码和项目现在已添加到Server1上各自的存储库中。我们有三个开发人员在机器1、2和3上工作。当我们在VisualStudio(使用VisualSVN)中打开服务器1上的工作拷贝项目时,repo的文件路径是file:///d:/foo 当然,当您提交时,会收到一条错误消息file:///d:/foo 找不到,因为它位于服务器上而不是计算机上

如何指向文件://\server/d$/foo

我试过了

svn开关-重新定位file:///d:/foo 文件://\server/d$/foo

不起作用

我无法理解的工作流程部分是这个。如果我签出一个类项目的工作副本并编译它。我是否将新dll从工作副本移动到生产环境?还是将dll检入源代码管理,然后将其从源代码管理移动到生产环境?如果多个项目使用dll,我应该将其从源代码管理中取出,放到所有项目都要查看的某个文件夹中,还是将其复制到所有项目的bin文件夹中。头痛

编辑:
谢谢你的所有意见,我会坚持下去的

我怀疑,您使用UNC名称,以便在仍然使用file://方案的情况下拥有基于网络的回购,这是这里的问题。repo主机上应该有一个SVN服务器。使用file://方案不会联系到这一点

关于签入编译输出,简而言之,不要。subversion中的内容应由每个客户端从头开始构建。编译后的二进制文件在subversion repo中没有位置,除非(也许)它们来自第三方并且是构建所必需的


“如果多个项目使用dll,我是将其从源代码管理中带到所有项目都要查看的某个文件夹中,还是将其复制到所有项目的bin文件夹中”。。。没有回答。很抱歉。

是的,源代码管理只需几分钟即可完成设置,但是,了解其工作原理是关键

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

这本书(你可以在网上直接阅读)对它的工作原理有一个奇妙的解释。前几章是你真正需要浏览的全部内容,以便掌握基本知识


一旦你掌握了书中的基本概要,你的实现哪里出了问题就显而易见了。

SVN书建议你不要对多个用户使用file://协议

:

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

尼克:

坚持住。不要放弃源代码控制!相信我,你现在所走的学习曲线将会在未来的日子里得到回报

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

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

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


一旦你习惯了SVN(它会发生!),你可以继续使用Hudson或CruiseControl.NET之类的东西,它们位于你的网络上,监视SVN的变化。当他们检测到更改时,他们会根据您指定的方式自动构建您的软件。这使得所有这些复制业务完全自动化。即使没有CCNET,您也可以使用nAnt或MSBuild(我个人使用的是MSBuild)创建一个“构建文件”,它将根据您选择的方法为您完成所有这些复制工作,因此您不必在每次创建时都执行所有这些手动工作。

存储库是如何提供的?它是服务器1上的本地存储库吗?您在哪里签出了工作副本:您现在试图通过网络使用的是Server1上的本地签出(即,每个开发人员都在使用同一个工作副本,这是错误的:每个开发人员都应该有自己的工作副本),还是签出给每个开发人员