Version control 为什么我的团队应该采用源代码管理?

Version control 为什么我的团队应该采用源代码管理?,version-control,project-management,visual-sourcesafe,Version Control,Project Management,Visual Sourcesafe,我有机会向我的老板正式介绍任何对公司有利的事情。我的想法是在我的工作场所采用源代码管理。我一直在使用Mercurial来管理我自己的项目,但是团队的其他成员没有一个正式的源代码控制系统。不幸的是,我不太擅长表达想法 所以,你们能告诉我为什么开发人员必须使用源代码管理吗?此外,为什么要选择Visual SourceSafe以外的任何工具?我没有使用VSS的经验,但他可能会问我们为什么不使用Microsoft的工具 我想听听这里许多聪明程序员的意见!我的首选是SVN或mercurial。两者似乎都对

我有机会向我的老板正式介绍任何对公司有利的事情。我的想法是在我的工作场所采用源代码管理。我一直在使用Mercurial来管理我自己的项目,但是团队的其他成员没有一个正式的源代码控制系统。不幸的是,我不太擅长表达想法

所以,你们能告诉我为什么开发人员必须使用源代码管理吗?此外,为什么要选择Visual SourceSafe以外的任何工具?我没有使用VSS的经验,但他可能会问我们为什么不使用Microsoft的工具

我想听听这里许多聪明程序员的意见!我的首选是SVN或mercurial。两者似乎都对Windows版本有很好的支持,而且都没有CVS那么陈旧。另外,作为一个自称为开源信徒的人,我更愿意推荐一个开源工具。:)

谢谢大家!


编辑:简而言之,目前其他开发人员的做法是复制文件夹,标记日期,可能自己记录。你明白了。如果我的老板说“如果它能工作,为什么要修复它呢?”

简单地说——这样你就有了代码的真实历史记录——调查更改(bug的原因)、恢复到版本、审核等。备份是不够的——你只需要一份当前图片的副本。是否曾经更改过文件并希望能够记住您所做的事情?

使用源代码管理,因为您和您的团队都不是完美的。源代码管理的主要功能是确保您拥有开发过程的完整历史记录。有了这个记录,你就有能力自信地用“实验”版本进行扩展,知道如果实验失败,你可以备份到更早的版本

此外,像svn这样的好的源代码管理系统将允许多个开发人员在同一个文件上工作,并提供强大的工具来协调每个开发人员所引入的差异。

Microsoft(MSDN)有一篇关于源代码管理好处的好文章。

这里也有很多好问题,以说明利弊。


Subversion非常流行,但Git将成为源代码管理领域的“下一件大事”。

很简单:如果代码不是源代码安全的,它就不存在


Subversion是免费的,比VSS好,但VSS绝对比无更好。

我建议使用SVN,因为:

  • 源代码管理为您提供了出色的历史记录。您可以看到在何处进行了哪些更改,从而提供了一种很好的方式来查看随时间发生的更改(如果您每次都填写提交摘要,效果会更好)
  • 对于开发人员来说,如果出现严重错误,它提供了极好的回退。您可以将对文件的更改恢复到其历史记录中的任何点,这样您就可以尝试您想要制作的mod,如果它不起作用,则可以轻松地将其回滚
  • 它提供了一个中央存储库,比在不同开发人员的计算机上运行更容易备份
  • 它允许您从不同的方向分支一个项目,这对于专门化和定制非常有用
  • 它使多个开发人员能够在同一个项目和同一个源上协同工作,方法是允许您合并并以其他方式操作对一个中心副本的更改
  • 我建议不要使用VSS-请参阅本页,了解原因:
    由于更多原因。

    出于这些原因,您必须使用源代码管理

    1) 您可以回滚到任何版本

    2) 不同的开发人员可以处理相同的文件

    3) 所有开发人员都可以访问相同的代码库

    4) 您可以跟踪更改

    5) 您可以回滚不起作用的更改

    6) 源代码控制是持续集成的基础,对TDD有很大帮助

    7) 如果你不使用源代码管理,当文件丢失/被覆盖时,你会慢慢发疯,什么都不能正常工作


    VSS不是最差的SCC应用程序,我使用了多年,逐渐讨厌它,但它确实有效,很简单,很多人都知道它。

    为什么要做正式演示

    假设团队规模至少是两个,那么做一个真实的例子:让两个(或更多,越多越好)的人获得代码,进行更改,并展示如何使用您使用的任何非源代码控制手段来集成所有这些更改

    然后使用源代码管理执行相同的场景


    使用源代码管理所节省的时间和痛苦将不言而喻。

    坚持底线,解释它与金钱的关系,你的老板可能会倾听

    如果你只是一个程序员,我会说主要的论点是减少了你浪费时间(和金钱)修复简单错误、试图回滚错误代码等的机会

    如果你是不止一个程序员,那么以上两种情况都会发生,而且这是唯一一种能够在同一个代码库上协同工作而不浪费更多时间等待彼此的明智方法


    VisualSourceSafe总比什么都没有好,但有一些免费选项在几乎所有方面都更好。如果你的老板需要一个演示来理解为什么源代码管理是必要的,他可能不在乎你在他开悟后使用什么工具。您有使用其他工具的经验,而不是vss,这与底线有关,因此这可能就足够了

    让我们比较两个示例,一个使用源代码管理的开发环境,另一个不使用

    • A:你用什么
    • B:不用
    场景1:请求、完成和推出项目

    A+B)程序员在内部开发项目,项目完成后,将其推出测试,然后交付给客户(无论是谁)

    从大局来看,差别不大

    场景2
         "Hey! What happens ? It worked yesterday."