目前我们正在使用Visual Source Safe - 与Visual Studio 2010集成 - 显然它不是理想的选择。
我的主要问题是 - 似乎有一个“项目文件”可以跟踪添加到本地项目的所有新项目 - 这似乎总是在队友之间不同步。我们如何在任何源控制系统中更好地处理它?</ p>
(我们已经将“项目文件”添加到VSS,并且一旦有人签出文件我们也锁定了文件 - 这样“项目文件”总是被一个人改变。我们也尝试过SVN与AnkhSVN但它似乎破坏了“项目文件”并引起了很多焦虑。)
答案 0 :(得分:3)
您需要将项目文件添加到源代码管理中。如果您使用的是Visual Studio,则应始终执行此操作。如果不这样做,您将无法使用源代码管理。
困难的部分是确保人们在完成更改后重新检查。在从源代码管理中将其下拉之前,开始让人们检查项目文件。
为什么你说VSS不是理想的选择?
如果您正在寻找替代方案,我建议将Visual SVN Server与Ankh SVN结合使用。两者都是免费的,对我来说效果很好。
答案 1 :(得分:1)
如果您想要使用Microsoft路由,那么TFS是新的VSS,其中包含一些额外的内容。
我很高兴Subversion使用TortoiseSVN和VisualSVN插件运行Visual Studio。通过与Visual Studio的合理集成,还有其他替代方案,如GIT。
没有“最佳”选择,但所有上述选项都运作良好。他们有不同的优点和缺点,但他们都很容易胜过VSS。
答案 2 :(得分:0)
项目文件如何损坏?在任何源代码控制系统中,您必须获取文件的独占锁,或者接受可能合并文件的需要。
“腐败”可能并不像看起来那么糟糕。可能发生的事情是团队中的某个人遇到了“合并冲突”,其中两个开发人员对同一行代码进行了不同的更改,而忽略了它。当发生这种情况时,SVN客户端会将这些行并排放置在文件中,并带有标记,指示每次更改的修订版本。这肯定会使任何源代码或XML文件无法按照预期的方式进行解析。
要解决合并冲突,您必须通过选择要使用的每行的两个版本中的哪一个来进入并手动解决每个合并冲突。如果没有发生这种情况,您应该能够通过简单地使用版本控制来轻松找到没有正确合并并教育他们的人。忽略TortoiseSVN窗口中的红线是非常糟糕的事情。
使用版本控制可能需要在团队环境中习惯,但这是团队合作的一个非常必要的部分。尝试实施以下一些开发策略:
将您的解决方案分成几个项目。创建的每个新代码文件都需要更改项目文件,这会增加PMS(痛苦合并综合症)的发生,特别是当您的应用程序只有一个或两个项目时。随着产品的成熟,新代码文件的创建速度变慢,您可以考虑将源代码合并为更少的程序集。
实施“持续集成”,即“自动构建”。像TeamCity这样的CI服务器可以坐在角落里的一个盒子上,等待团队成员检查代码。当发生这种情况时,它将检测签入,获取最新的源,并尝试构建它,可选地还运行您想要的任何单元/集成测试,代码覆盖,FxCop规则检查等。如果它无法完成任何这些,或者结果不能令人满意,那么构建就会“破坏”,团队从破解到构建成功的那一刻的工作就是通过纠正构建服务器的任何问题来“修复”构建找到。
答案 3 :(得分:0)
您对该项目进行了哪些更改? SVN和VSS都应该处理向项目添加删除文件而不会引发冲突。我在更改其他项目设置时遇到了一些问题,例如单击一次安装程序,以及更改.proj文件中的大块文件。
一种可能的解决方案是为不同的安装配置创建单独的项目文件(但不要使用代码为每个人创建单独的项目,这将更糟糕)