2009-05-29 107 views
2

有人说SO设置源代码控制,需要5分钟。它需要很长时间,它很烦躁,屁股疼痛!而且我没有得到工作流程如何将svn存储库路径设置为服务器路径?

无论如何。我有svn安装在server1上。 Server1还用于存储我们现有的所有源代码和项目,这些代码和项目现已添加到server1上各自的存储库中。我们有三名开发人员在机器1,2和3上工作。当我们在Visual Studio中打开服务器1上的工作副本项目(使用VisualSVN)时,当您使用repos时,文件路径为file:/// d:/ foo提交你得到一个错误信息,说file:/// d:/ foo找不到,因为它在服务器上而不是机器上。

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

我已经试过

SVN切换--relocate文件:/// d:/ foo的文件:// \服务器/ d $/foo的

不工作

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

编辑: 谢谢你的所有输入,我会坚持这一个!

+1

存储库是如何提供的?它是Server1上的本地存储库吗?你在哪里签出了工作副本:是在Server1上进行的本地结账,你现在正尝试通过网络使用(即每个开发人员在同一个工作副本上工作,这是错误的:每个开发人员都应该有自己的工作副本)还是检出到每个开发人员的机器? 工作流和其他SVN的东西很好解释这里:http://svnbook.red-bean.com/en/1.5/index.html – Steef 2009-05-29 11:39:46

回答

6

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

为了回答这个问题,最好解释一下Source Control是如何工作的以及您应该期望从中获得什么。

http://svnbook.red-bean.com/(你可以直接在线阅读)有一个神奇的解释,它可以如何工作。前几章是您真正需要浏览的基本知识。

一旦你掌握了本书的基本概要,它应该变得明显,你的实现出错的地方。

+3

我强烈推荐阅读svnbook,它写得很好,易于阅读。 – crashmstr 2009-05-29 11:54:42

1

我怀疑你使用的UNC名称,以便你可以有一个基于网络的回购,同时仍然使用file://方案是这里的问题。回购托管机器上应该有一个SVN服务器。这将不会使用file:// scheme进行联系。

关于检查编译输出,总之,不要。每个客户端都可以从头开始构建颠覆中的内容。编译的二进制文件在颠覆回购中没有地位,除非(可能)它们来自第三方并且对于构建而言是必不可少的。

“如果多个项目使用dll,我是否会将其从源代码管理中移出到所有项目都要查找的文件夹中,或者是否将其复制到所有项目的bin文件夹中......”没有答案。抱歉。

1

svn书建议您使用file://协议为多个用户

Choosing a Server Configuration

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

1

尼克:

挂在那里。不要放弃源代码控制!相信我,你现在骑的学习曲线将会黯然失色。

回复:您的工作流问题,您遇到了如何构建软件的问题。这里有很多方法可以使用,但基本是这样的。当你编译你的应用时,确保你的工件(.exe,.dlls等)被标记为svn:ignore(在Tortoise中,你只需说“add to ignore list”)。这将使SVN免于检查你的版本。您不希望从开发者副本签入构建工件,因为它占用大量空间,并且会产生很多冲突。

你有几个选择,但我会为根据您的工作流程建议你告诉我:

建立源控制之外的DLL。在SVN中,为你的“发布”代码建立一个目录 - 对我来说,这是我的项目下的一个名为“发布”的目录。然后,当您的DLL经过测试和验证后,给它一个版本号并将其签入到“发布”部分。告诉开发人员他们可以使用共享DLL的新版本,并让他们知道这些更改是什么。然后他们可以随意下载你的DLL并将它集成到他们的代码中。

一旦你对SVN感到满意(它会发生!),你可以继续使用像Hudson或CruiseControl.NET这样的东西,它们坐在你的网络上并监视SVN的变化。当他们检测到更改时,他们会根据您指定的方式自动构建软件。这使得所有这些复制业务完全自动化。即使没有CCNET,你也可以使用nAnt或MSBuild(我个人使用MSBuild)来创建“构建文件”,它将根据你选择的方法为你做所有这些复制的东西,所以你不必全部这本手册内容每次你想做一个构建。