我是一名学生,我总是自己开发项目,主要是使用Ruby On Rails。
我注意到,如果您无法轻松解救已删除的代码并从一个版本传递到另一个版本,即使是一个简单的项目也可能会变得复杂。 Time Machine备份还不够。
我想使用版本控制系统,但它们似乎不适合单用户项目。我错了吗?如果是这样,您使用什么政策和软件来管理代码?
答案 0 :(得分:15)
如果您是单个用户,则没有任何内容表明您无法使用标准版本控制系统。这样做肯定会让您免于遇到一些更痛苦的问题,例如合并同时更改的文件以及多个开发人员引起的其他冲突。
基于此,您可以查看任何版本控制系统(我相信Subversion现在最受欢迎)并挑选出最符合您需求的版本,或者您拥有的界面最舒服的。
答案 1 :(得分:10)
分布式版本控制系统适合您:寻找Bazaar,Git或Mercurial。它们很轻,本地提交很容易,您可以还原到以前的版本。通过GitHub等托管服务提供商,您可以发布您的项目,免费获得备份,您可以轻松分享具有其他潜力的项目贡献者。协作很容易,因为合并您的更改也是一种轻量级操作。
答案 2 :(得分:9)
在您自己的项目中使用版本控制软件和其他项目软件绝对是个好主意。这些工具不仅适用于团队合作,还可以让团队合作。除了跟踪项目变更的明显原因之外,最好使用SCM工具,以便熟悉行业正在使用的内容。
Subversion很普遍,并且是一个很好的选择,因为它成功地取代了早期和旧版的CVS工具。它依赖于存储代码的中央存储库,并且可以备份:我将SVN用于个人项目和小型团队项目,我已经备份到CD。如果你的项目是opensource,那么像sourceforge这样的网站支持svn,你可以用它来托管。
然而,正如其他一些海报所表明的那样,个人项目可能会从分布式系统中受益更多:git越来越受欢迎,因为git-hub已经上线并且移植工作正在取得成功。 http://git-scm.com/这些工具很可能在未来几年越来越受欢迎,因为它们允许更多人参与相同的代码。一个中央存储库的想法很轻松,使每个开发人员能够对不同设计进行版本跟踪,并仅向社区返回他们完成的版本。
将SCM用于所有个人或非个人项目的好处之一是可以设置单独的服务器来测试代码的版本。对最新版本代码进行自动测试(使用Continuous Integration Server或类似代码)可以提高您正在编写的软件的质量。
一些经验丰富的软件开发人员谈论他们经常进行增量更改检查的节奏。养成完成并进行小规模更改的习惯:进入小组工作是一种很好的做法。
答案 3 :(得分:6)
我会推荐Subversion。它是免费且相对简单的,稍微了解它可能在将来很有用。它是跨平台的,也可以在各种托管系统上使用。
另请参阅:https://stackoverflow.com/questions/250984/do-i-really-need-version-control
答案 4 :(得分:3)
使用git。它允许您在不需要服务器的情况下工作。
命令行还有一个实用程序和GUI(older screenshots)(对于linux,windows和OS X)。
如果您以后想要共享或发布项目,可以轻松将其推送到github这样的网站。
答案 5 :(得分:3)
颠覆!
您可以在本地安装或使用托管服务。如果要在计算机之间切换或将其用作脱机备份,则服务很好。 http://www.beanstalkapp.com/有免费的个人使用计划。
GitHub(git,而非颠覆)也很受欢迎,但我相信个人项目收取少量费用。
答案 6 :(得分:3)
即使对于个人项目,如果它们变得比你写几个小时的东西更大,那么版本控制系统将是非常有益的。
以下是一些好点:
我个人使用在我的系统上运行的Subversion服务器,我可以通过Eclipse中的Subclipse plug-in访问该服务器,我觉得这对跟踪我的个人项目非常有帮助。
如果您对Subversion感兴趣,Version Control with Subversion是了解这些概念以及如何设置和开始使用Subversion的非常有用的资源。
版本控制系统起初可能有点困难,但绝对值得设置!
答案 7 :(得分:2)
我非常谨慎地使用“总是”在我给出的任何答案中......
始终使用版本控制。这些天它是免费且容易做到的。根本没有理由不使用它。如果它是一个小时的项目...好...这是一个小时的项目,现在是版本控制。
我的解决方案是slicehost(确定...不是免费的),redmine(免费的RoR错误跟踪器)git和gitosis。启动一个新项目会增加大约五分钟到任何编码的前面,但它的五分钟非常值得。
答案 8 :(得分:2)
使用SVN或Mercurial。
两者都非常适合“家庭”使用,我认为Mercurial对你更好,因为默认情况下你会为每个项目创建一个存储库(选择SVN的一个“大”存储库来存储所有内容),所以它会更容易如果需要,备份单个项目或与他人交换资源。
两者都可以在命令行模式下工作,也可以使用类似浏览器的接口(Tortoise)或可用于最常用IDE的插件。
答案 9 :(得分:1)
一个完整的不同版本控制系统是dropbox(www.getdrobox.com)。它不是(仅)用于源代码。它适用于Mac,Win和Linux以及私有Web界面(具有智能OS集成)。
对你来说可能很有意思。
答案 10 :(得分:1)
Bitbucket是基于以下内容的个人项目必须考虑的因素:
这使得人们可以快速启动存储库,而无需关注付费源代码托管帐户下可用的回购数量。
它还允许将进入公共域的项目简单地分叉到GitHub等。
答案 11 :(得分:1)
诸如beanstalkapp.com之类的托管版本控制非常方便,但请考虑是否要将您的源文件交给第三方。您可以考虑使用在线备份的本地存储库,该解决方案在上载之前在本地加密内容。我使用subversion,Amazon S3和JungleDisk执行此操作。
答案 12 :(得分:1)
你喜欢git的一个项目,例如使用github托管,你可以获得更改的历史记录,并获得实际的代码源,从而“拯救”以前的代码更改。
您也可以使用Dropbox方法将原始代码备份到云端的文件夹中。
我已将这两种方法用于个人项目。
答案 13 :(得分:1)
我使用subversion来管理我的所有项目。 xp-dev.com是一个免费的subversion托管解决方案。另外,我认为,如果你安装tortisesvn,它会安装一个subversion服务器以便在本地使用。
答案 14 :(得分:0)
您可以使用仅用于单用户开发的任何版本控制系统。正如你所说,即使是简单的项目也会成为一场噩梦,如果你改变一些你认为更好而且失败的东西。下载tortoise snv - 它是免费的,非常简单易用 - 并将您的工作版本保存在存储库中。提交有效的代码,保持可能的小改动(例如重构一个类),构建它,测试它是否有效 - >提交,如果没有,你不知道为什么你可以总是还原变化并再试一次。
答案 15 :(得分:0)
我强烈建议下载VisualSVN Server。这是一个非常简单的设置,可以完全满足您的需求。
答案 16 :(得分:0)
版本控制始终很重要。 尝试免费的在线SVN,如http://beanstalkapp.com/ 进行搜索,你可以找到很多建议
答案 17 :(得分:-1)
您的Mac安装光盘附带CVS版本控制作为XCode工具包的一部分
有关详细信息,请参阅http://developer.apple.com/internet/opensource/cvsoverview.html