版本控制入门
我需要实现版本控制,即使是在家中进行开发也是如此。我已经阅读了有关Subversion在过去几年中的出色表现,并打算全力以赴地学习这一知识,直到我听说Git是即将推出的版本控制系统。
在这种情况下,我应该推迟一下,看看哪一个排在首位吗?它们的相对优势是什么?
我注意到Git的一个问题是功能齐全的GUI并不多,这对我团队中的许多用户而言都很重要。
同样,不介意关于如何开始使用另一种的建议。 (教程等)
解决方案
回答
使用Subversion,它易于设置,易于使用,并且具有许多工具。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。将来的任何修订系统都将具有从SVN导入的功能,因此,如果需求不断增长,就好像我们不能沿着道路前进。
回答
选择SVN。如果我们以前从未使用过源代码管理,那么对我们而言,无论哪种方式都无关紧要。
而且,使用源代码控制系统不会涉及大量的学习。如果我们学习一个,则可以在以后轻松地切换到另一个。
SVN是一个很棒的工具,它应该满足大多数需求。而且自从问世以来,它就拥有GUI工具(例如TortoiseSVN)的公平共享者。
选择SVN。
回答
关于版本控制的最重要的事情是:
刚开始使用它
不使用版本控制是一个可怕的想法。如果我们不使用版本控制,请立即停止阅读并开始使用它。
转换非常容易
cvs<->svn<->git<->hg
选择哪一个都没关系。只需选择最简单的一种即可使用,然后开始记录代码的历史记录。以后我们始终可以迁移到另一个(D)VCS。
如果我们正在寻找易于使用的GUI,请查看TortoiseSVN(Windows)和Versions(Mac)(建议不带注释的编码)
编辑:
pix0r said: Git has some nice features, but you won't be able to appreciate them unless you've already used something more standard like CVS or Subversion.
这。如果我们不知道什么版本控制可以为我们做准备,那么使用git是没有意义的。
编辑2:
刚刚在reddit上看到了此链接:Subversion备忘单。 svn命令行的快速参考。
回答
不要等选择一个,然后去。所有系统都有其优缺点。力量可能会耗尽,计算机被盗,或者我们忘记撤消主要更改,并且所有代码都被浪费,而我们等待着谁的胜利。
回答
当我决定必须使用代码版本控制系统时,我四处寻找有关入门的良好教程,但没有找到任何可以帮助我的教程。
因此,我为客户端简单地安装了SVN Server和Tortoise SVN,并深入研究了深层次,我不知道该如何使用它。
回答
Subversion书籍是学习该工具的最佳选择。可能还有其他快速入门教程,但是《本书》是我们会发现的最好的单一参考。
Git具有一些不错的功能,但是除非我们已经使用了CVS或者Subversion之类的更标准的功能,否则我们将无法欣赏它们。我绝对会同意以前的海报,并从Subversion开始。
回答
开始在实际工作中使用SVN,但请尝试花些时间摆弄Git和/或者Mercurial。 SVN对于生产来说相当稳定,但是最终我们将面临一个需要分布式SCM的场景,届时我们将得到适当的配置,新系统将足够成熟。
回答
我的投票投向了Subversion。它非常强大,但易于使用,并且具有一些出色的工具,例如TortoiseSVN。
但是正如其他人在我之前说过的那样,请开始使用它。源代码控制是软件开发过程中如此重要的部分。没有"严肃的"软件项目,就应该没有它。
回答
有关大多数基本概念的友好说明,请参见版本控制的可视指南。这篇文章对SVN非常友好。
回答
是的,SVN是首选,除非我们确实需要git的特定功能。 SVN足够难。听起来git更难以使用。除非我们有内部Linux人士,否则我们可以从Beanstalk之类的人那里获得托管svn,我真的建议我们这样做。事情很容易出错,很高兴有其他人来解决这个问题。
无论我们使用哪种系统,Eric Sink都提供了关于修订控制的出色教程,值得一读。
回答
superjoe30 writes: Related question (perhaps answers can be edited to answer this question as well): What about using source control on your own computer, if you're the sole programmer? Is >>this good practice? Are there related tips or tricks?
我将SVN用于所有个人项目。我从在家用计算机上运行svn开始,但最终迁移到Dreamhost。他们的包含Subversion的托管软件包非常合理。
回答
如果我们使用的是Mac OSX,我发现http://www.versionsapp.com/">版本是SVN的不可思议的(免费)GUI前端。
回答
在我目前的工作中,我的前任没有使用任何类型的版本控制。在他保存所有项目的至少3个不同的地方只有一堆文件夹。可以期望任何随机项目文件夹至少找到一个文件夹名称" project(OLD)"和一个名为" project"的文件夹
使用版本控制,我们无需复制"安全"构建。我们真的不必担心IDE会破坏我们正在处理的文件(我正在看着我们,REALBasic 5.5),因为它每天都很容易提交(阅读:保存)工作。
不用说,我在发现版本控制存在的第二天就安装了它。
另外,TortoiseSVN使得对数据库的提交就像在文件夹上单击鼠标右键一样容易。
回答
在版本控制系统之间切换并不困难。正如其他人提到的,重要的是尽快开始使用任何东西。与不使用源代码控制相比,使用源代码控制的好处大大超过了不同类型的源代码控制之间的区别收益。
请记住,无论使用什么版本的源代码管理,我们都可以通过将旧系统中的文件放到磁盘上,然后将这些原始文件导入到新系统中,来进行暴力转换到另一个系统。
此外,作为软件开发人员,熟悉源代码控制基础知识是一项非常非常重要的技能。
回答
如果要避免任何命令行工作,也请为服务器尝试visual svn。
回答
如果在Windows盒子上,一个快速且肮脏的解决方案是CVSNT。易于使用,只需对其进行设置即可,并且效果很好。
我自己更喜欢SVN,但这是快速使用的好工具。
回答
我已经使用了RCS,CVS,SCCS,SourceSafe,Vault,perforce,subversion和git。
我已经评估了BitKeeper,Dimensions,arch,bazaar,svk,ClearCase,PVCS和Synergy。
如果今天必须启动一个新的存储库,则选择git。把手放下。
它是免费,快速且正在积极开发中的。
我们可以使用git-svn将其用作任何Subversion存储库的客户端。
摇晃。
回答
@superjoe30 What about using source control on your own computer, if you're the sole programmer? Is this good practice? Are there related tips or tricks?
我发现git实际上更容易做到这一点,因为我们不需要服务器,也不必担心输入URL等。版本控制内容仅位于项目内的.git目录中,我们可以继续使用它。
5秒的简介(假设我们已安装)
cd myproject git init git add * # add all the files git commit
下次我们进行一些更改
git add newfile1 newfile2 # if you've made any new files since last time git commit -a
只要我们这样做,git就会为我们提供支持。如果我们搞砸了,那么代码在不错的git存储库中是安全的。这很棒
- 注意:我们可能会发现将git以外的东西放进去比将它们放进去要困难一些,但是,比起根本没有文件,出现该问题要好得多!
回答
如果我们是版本控制的新手,请阅读以下内容:
源代码控制方法
回答
我绝对会选择SVN而不是CVS,因为仅仅是因为那些使用CVS学习了源代码控制的人倾向于使用"svn delete
"而不是"svn move
"。这使得查找特定文件的所有先前修订版本变得更加困难。而且,我们始终可以升级到使用git-svn。我个人认为它比hg更容易学习,但是实际上使用SVN的主要原因是它已成为开源软件的实际版本控制系统。
如果我们打算学习/使用D,则几乎必须访问DSource等第三方存储库。
回答
@ superjoe30是的,绝对。一旦开始使用版本控制,就再也不会回头了。我用它来做所有事情,甚至是我的" home"文件夹。
@Orion Edwards Subversion不需要服务器。我们可以直接访问本地存储库(当然,通过客户端),并且不涉及服务器进程。
回答
只需使用TortoiseSVN,我们甚至可以在不知道实际Subversion命令的情况下生活……但这很糟糕。幸运的是,当我们无价的存储库首次遭到破坏时,始终会有一个很好的机会来认真学习它们。
是的,它发生了。
回答
正如在其他地方多次提到的,请随便做。通过阅读《红皮书》中的快速入门指南,我能够立即在Windows下使用Subversion从头开始。将TortoiseSVN指向存储库后,我便开始从事商业活动。我花了好一会儿才能记下更好的分数,但它们是克服困难的小障碍。
我建议安装Subversion服务,而不要使用file:// URL,但这主要是个人喜好。对于存储在开发计算机上的存储库,file://可以正常工作。
回答
Git优于颠覆,但在前沿方面有点不足。
我想说的是,如果我们才刚刚起步,那就快点走吧;设置一个免费帐户@ http://github.com
他们在现场有用于设置和使用git的教育资料。
回答
使用TortoiseSVN(如果是Mac,则为version.app)。只需安装即可。如果需要托管代码的地方,请访问http://beanstalkapp.com/
回答
从个人经验来看,svn是我的建议。我们甚至可以使用像Beanstalk这样的服务来提供免费帐户(显然有限制,但对于任何较小的项目来说都足够)来测试水域。但是正如其他人所说的那样,git是优越的,可能值得研究。
回答
简短答案:Subversion,如果我们是唯一一个使用它进行编码的人,或者我们与所有与之共事的人都在网站上。如果我们正在与不同站点的人员一起工作,并且代码库很大,则可以使用GIT。
Subversion确实非常容易设置和使用。这也很不错,因为我们也可以使用它进行相对复杂的操作,例如将其连接到Apache并使用SSL或者将其插入Trac进行项目管理。 Subversion有很多可用的工具,这确实是一个不错的选择。
对于在分布式环境中工作的大型团队的人员而言,GIT更为有用。 Linus T.是为Linux团队开发的,因为他对传统存储库的功能不满意。如果我们计划与开源项目的人一起工作,那么值得学习。
回答
Coding Horror撰写了一篇很棒的文章,介绍如何在Windows上设置Subversion。
遵循该教程,我能够在本地运行Subervsion和TortoiseSVN,并且得到了所需的培训。
就Git而言,最好动手对它们进行实验,以了解它们适合特定开发实践。
回答
现在,简化SVN服务器设置的一个主要技巧是使用虚拟设备。也就是说,已经预先安装了Subversion并且(大多数情况下)预先配置了Subversion的虚拟机几乎是一个即插即用的东西。我们可以在这里,这里和这里尝试,也可以尝试在" Subversion Virtual Appliance"上搜索Google。
回答
在阅读Wil Shipleys博客后,我开始使用Subversion。
因此,我开始检入代码,一台计算机和dreamhost帐户。然后,在我不小心删除了一个函数并保存了我的项目之后,我知道自己处于深层的" dudu"中,但是通过subversion,我只是签出了该文件的最新版本,就好像什么都没有发生。
我现在对所有内容都使用版本控制。我打算迁移到git,因为它速度更快,可离线工作,占用的空间更少,哦,天哪,它更快。
回答
SubVersion是最佳选择,正如Karl Seguin指出的,迁移到另一个版本控制系统将不是问题。 SVN在客户端(TortoiseSVN)中也非常易于使用的GUI。
http://www.snee.com/bobdc.blog/2007/08/getting_started_with_subversio.html
http://dojo.jot.com/WikiHome/Getting%20Started%20With%20Subversion
回答
如果我们选择使用Subversion,并且希望托管自己的svn服务器,则有一个非常漂亮,基于Windows的简单服务器,称为VisualSVN服务器。它掩盖了设置apache服务器的复杂性,我们基本上只需要继续下一步即可。
用户配置是通过webUI而不是config处理的
http://www.visualsvn.com/server/
使用类似R的bean的公共服务可能更容易,但是有些人喜欢拥有自己的存储库,以提高速度或者提高安全性。
回答
根据我自己的经验,我不会推荐git作为版本控制的简介。我已经使用了几个月了,我的印象是它非常强大,并且现在我已经部分地意识到了它的直观性。但是,即使我多年来一直使用版本控制,学习曲线也非常陡峭。它还表现得太强了,它支持许多不同的工作流程和开发模型,但是关于"最佳"使用方式的唯一指南是在Google搜索中深入了几页,这对于新手来说也很棘手。 。
就是说,从git的空白开始实际上可能会更容易,我的VCS体验全部是集中式版本控制(CVS,SVN,Perforce ...),而git的(正在进行中!)困难中的一部分一直在理解分布式模型的含义。我简要浏览了其他DVCS,例如Bazaar和Mercurial,它们似乎对新手更友好。
无论如何,就像其他人所说的那样,Subversion可能是适应版本控制思想和获得VCS好处(回滚,分支,协作开发,更容易的代码审查等)的实践经验的最简单方法。
哦,别以CVS开始。它仍然在实际使用中并具有优势,但是恕我直言,它有太多的历史古怪和实现问题(非原子提交!),不是学习的好方法。
回答
使用svn而不是cvs的重要原因是svn支持二进制差异。对于许多程序员而言,这可能并不重要,但是如果我们要对10Mb映像进行一系列细微更改,则每次在存储库中拥有唯一的副本都会极大地消耗空间。
我在Windows上使用TortoiseSVN,但在Mac上已经使用了(现在是商业)Versions客户端的商业CornerStone客户端。我发现包括RapidSVN在内的各种免费Mac客户端都有很多痛点,使我不愿意花钱购买真实货币。 CornerStone提供的用于捕获我忘记添加到存储库中的文件的安全网对我来说是值得的。我花了很多时间与位于相反时区的美国客户合作,因此无法承受忘记添加文件的麻烦!