2009-11-09 54 views
2

所以,我有一个asp.net mvc应用程序正在由不同能力的多个开发人员共同完成。这是我们第一次使用.NET开发mvc应用程序。我们的应用程序没有太多的单元测试...ASP.NET MVC:它应该如何与颠覆一起工作?

我们遇到的问题是试图保持对方不覆盖对方的变化。例如:

  1. 两个开发人员都在应用程序的工作和Jon(化名)进行了更改控制器,编译一个新的DLL,并检查他的东西(包括控制器和DLL )我们的svn系统会自动更新我们的DEV服务器,其中包含Jon刚才所做的更改。

  2. 克莱德(也不是真名)也在同一时间做出了改变,但没有用Jon的更改更新代码,并提交了一个新的DLL,从而“忘记”Jon的改变。

发生这种情况很多。我所问的问题更多的是一个工作流问题 - 我们如何解决这个问题?这只是克莱德需要更小心的问题吗?任何人都可以推荐一个体面的流程供我们使用?

回答

7

你不检查DLL的。从Subversion整个文件夹中排除bin文件夹。这是重要的.cs文件,并且这些文件将在每台检测Subversion代码的计算机上进行本地编译。如果您的部署脚本不编译代码,但只是一个简单的xcopy语句,则需要将csc引入到脚本中,或者实现像TeamCity这样的持续集成系统。

+0

确定 - 这使得有很大的意义。我们现在只是复制文件,但是按照你所说的去做就更有意义了 - 谢谢! – onekidney 2009-11-09 15:27:39

1

您描述的问题已被颠覆处理。当克莱德尝试提交他的更改时,颠覆者将会detect the conflict并提供他合并他的更改的可能性。

1

这正是Subversion和其他版本控制系统旨在避免的情况。当克莱德入住时,他应该得到一个“过时”的错误,他的承诺应该失败,从而迫使他更新他的工作副本并在他自己承诺之前得到乔恩的改变。

0

我已经使用Subersion和.NET应用程序在一起。基本上我们学到的是,在签入之前,您应该始终对工作副本进行更新。这样,其他开发人员所做的任何更改都会被放到您的工作副本中,任何合并冲突都会很快被您知晓。然后,您可以修复合并冲突,签入并继续工作。如果您的第二个开发人员随后更新其工作代码,则第一个开发人员合并的代码将被关闭,并且该过程将被重复。

希望这会有所帮助。

1

查看从角色转换的SVN视频教程。这表明你喜欢的最佳实践如何建立你的项目,以及如何做“签到舞”,这将避免你跑进/

情况

http://www.dimecasts.net/Casts/ByTag/SVN

+0

哇 - 非常有帮助 - 非常感谢! – onekidney 2009-11-10 14:07:30

0

忽略的文件夹bin和OBJ,但我们有bin和Bin。 使用svn:忽略 [BB]在 [OO] BJ 名为.suo *

相关问题