我从来没有真正与很多人一起工作,我们不得不检查代码并拥有旧代码的存储库等等。我不确定我甚至不知道这些术语的含义。如果我想开始一个涉及跟踪所有代码更改的新项目,那么“检查”(再次,不知道这意味着什么),我该如何开始?那是SVN的用途吗?别的什么?我是否下载了一个跟上代码的程序?
我该怎么办?
一切都在内。没有用于存储代码的Internet。
我甚至不知道我要求的是源控制。我看到了关于签出,SVN,源代码控制等的事情。我不知道是否所有人都在谈论同一件事。我希望使用开源的东西。
答案 0 :(得分:27)
所以,很久以前,在昔日糟糕的旧时代,源代码控制使用了一个库隐喻。如果您想编辑文件,避免冲突的唯一方法是确保您是唯一一个编辑文件的人。您要做的是要求源控制系统“检出”该文件,表明您正在编辑它,并且在您进行更改并且文件已“签入”之前,没有其他人可以编辑它。如果您需要对已签出的文件进行更改,您必须找到自上周二以来已经检查过everythingImportant.conf的那个怪胎'开发人员...'freakin'Bill ...
无论如何,源代码控制实际上并不像那样,但语言一直困扰着我们。如今,“签出”代码意味着从代码库下载代码的副本。这些文件将出现在本地目录中,允许您使用它们,编译代码,甚至可以根据需要更改可能稍后上传回存储库的源代码。更好的是,只需一个命令,您就可以获得自上次下载代码以来其他开发人员所做的所有更改。好东西。
有几个主要的源代码控制库,其中SVN(也称为Subversion)是一个(CVS,Git,HG,Perforce,ClearCase等等)。我建议从SVN,Git或HG开始,因为它们都是免费的,并且都有很好的文档。
即使您是唯一的开发人员,也可能希望开始使用源代码管理。没有什么比认识到昨晚你删除的无用的千行代码实际上非常重要并且现在永远丢失的情况更糟。源代码控制允许您在文件的历史记录中向前和向后缩放,让您轻松恢复不应删除的内容,并让您更有信心删除无用的内容。另外,自己摆弄它是很好的做法。
熟悉源/修订控制软件是任何认真的软件工程师的关键工作技能。掌握它将有效地使您成为一名专业开发人员。进入一个项目并发现团队将所有源代码保存在某个文件夹中是一种糟糕的体验。祝好运!只是感兴趣,你已经走在正确的道路上了!
答案 1 :(得分:20)
查看Eric Sink的优秀系列文章:
答案 2 :(得分:2)
我建议将Git和Subversion (SVN)作为免费的开源版本控制系统,这些系统运行良好。 Git有一些很好的功能,因为它可以更容易分散。
答案 3 :(得分:2)
Checkout表示从源控制系统中检索文件。源控制系统是一个数据库(有些像CVS,只使用特别标记的文本文件,但文件系统也是一个数据库),它包含所有版本的代码(在您修改后签入) )。
Microsoft Visual SourceSafe使用非常专有的数据库,如果不经常维护并且仅使用保留的签出,则该数据库容易出现损坏。出于所有这些原因,不要使用它。
保留结账和未保留结账之间的区别在于无保留结账;两个人可以一次修改同一个文件。第一个签入没有问题,第二个必须将他们的代码更新到最新版本并将更改合并到他们的(他们通常会自动发生,但如果文件的相同区域被更改,那么冲突,必须在签入之前解决。)
有关无保留结帐的一些参数,请参阅here。
在此之后,您将看到一个构建过程,它独立地检查代码并构建源代码,以便每个人的更改都是一起构建和分发的。
答案 4 :(得分:1)
您是否正在创建需要源代码管理的项目?如果是这样,请选择满足您需求的源控制系统,并阅读文档以了解如何设置它。如果您只是为现有项目使用以前设置的源控制系统,请询问一直使用它的同事,或询问设置源控制系统的人员。
为了选择满足您需求的源控制系统,大多数源控制系统都在线对其功能进行了广泛的描述,许多提供了评估甚至是完全免费的产品,并且有很多关于每个源的工作原理的轶事描述控制系统就像,这可以帮助。
如果您重视自己的理智和代码,请不要使用Microsoft Visual SourceSafe。