ASP.NET MVC:它应该如何与subversion一起使用?

时间:2009-11-09 15:09:29

标签: asp.net asp.net-mvc svn

所以,我有一个asp.net mvc应用程序,由不同容量的多个开发人员处理。这是我们第一次使用mvc app并且第一次使用.NET。我们的应用程序中没有很多单元测试...

我们遇到的问题是试图让对方不要覆盖彼此的变化。例如:

  1. 两个开发人员都在使用该应用程序,而Jon(不是他的真名)对控制器进行了更改,编译了一个新的dll,并检查了他的东西(控制器和dll。)我们的svn系统会根据Jon刚刚做出的更改自动更新我们的DEV服务器。

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

    < / LI>

    发生很多。我问的问题更多的是工作流问题 - 我们如何解决这个问题?这只是克莱德需要更加小心的问题吗?任何人都可以建议我们使用一个体面的过程吗?

6 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:1)

您描述的问题已由subversion处理。当Clyde尝试提交他的更改时,subversion将detect the conflict并为他提供合并其更改的可能性。

答案 2 :(得分:1)

这正是Subversion和其他版本控制系统旨在避免的情况。当克莱德办理登机手续时,他应该得到一个“过时”的错误,并且他的提交应该失败,从而迫使他更新他的工作副本,并在他自己提交之前获得Jon的更改。

答案 3 :(得分:1)

查看来自角钱看法的SVN视频教程。这些会向您展示最佳实践,例如如何设置项目,以及如何进行“检查舞蹈”,这将避免您遇到的情况/

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

答案 4 :(得分:0)

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

希望这有帮助。

答案 5 :(得分:0)

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