您是否为您的家庭项目使用源代码管理?

时间:2009-01-18 16:32:28

标签: version-control

一个简单的问题,供人们发表评论,以及他们的选择和原因。

同样有趣的是看到是什么促使你使用它?对我来说,我使用源代码控制,以便

  • 我在工作中使用相同的功能,因此我可以熟悉如何使用它
  • 如果我把代码搞砸了就可以得到保护
  • 它的异地,所以如果我的电脑死了,我不会失去我所有的家庭代码项目。

对我来说,我使用Perforce,简单的2客户端“演示”版本。这是因为我们最近使用IBM Rational Clearcase转向了它。到目前为止,太棒了!

35 个答案:

答案 0 :(得分:16)

我使用git和Subversion - git用于我的C#Protocol Buffers端口(我在工作时间做,但是从我的家用笔记本电脑)和Subversion用于其他一些事情。

我曾经在我的本地NAS服务器上安装了我的Subversion存储库,但我最近把它转移到了csharpindepth.com,所以我可以退役NAS,但也可以让我可以从家外轻松到达它而无需打孔防火墙上的漏洞。

至于原因:

  • 如果笔记本电脑坏了
  • 如果我想回到早期版本
  • 所以我可以跟踪我做过的事情
  • 这样其他人也可以参与(例如Marc Gravell为MiscUtil贡献了大量的东西)
  • 适当时分支

我还使用Subversion来管理csharpindepth.com和yoda.arachsys.com的大部分内容 - 我有每个站点的本地副本,以及每个服务器上的提交后挂钩(存储库所在的位置)以更新Web我提交时的服务器目录。

哦,我在深度编写C#时也使用了Subversion - 再次,我可以跟踪写入哪个位等等。我不需要经常使用这个方面,但它是一个方便的备份解决方案。 / p>

答案 1 :(得分:15)

是的,我使用的是SVN。

为什么呢?为了练习。而且因为错误发生了。有时我检查代码,开始工作,并在四小时后意识到我已经弄得一团糟,需要退出。当我让SVN支持我时,我只失去了四个小时的工作。

答案 2 :(得分:4)

我在家中使用subversion进行跨平台项目,因此不同的开发环境(Win-Laptop和Linux-PC始终是最新的。

BTW SVN服务器正在我的WLAN Router上运行,无论我在笔记本电脑还是PC上工作,都可以访问。


编辑:因为我被问到:wlan路由器默认不支持SVN,但使用以下固件(http://oleg.wl500g.info/)。

答案 3 :(得分:4)

是的。我没有用最长的时间,但我被烧了,如下所述: another SO thread

现在,我开始将它用作开发工具,而不仅仅是源代码备份。分支尝试新功能,错误修正等。

我开始在家里使用darcs(我在使用的时候工作的公司 - 颤抖 - SourceSafe)并且正在考虑转换为git或mercurial。

答案 4 :(得分:3)

是的,当然。我将subversion用于我的所有个人项目,原因与上面提到的相同。

我不会考虑在没有VCS的情况下进行任何编码,无论项目有多小。我有一个大型存储库,其中包含许多文件夹,用于我的所有小项目,如果我正在处理一个更大的项目,它将获得自己的存储库。

答案 5 :(得分:2)

我工作或与家庭有关的所有事情一旦开始工作就会受版本控制(如果涉及编程但并非总是如此)。许多原因,包括历史,分支,与软件的集成,如Redmine,特别是如果我打算分发某些东西,还原方法的简单方法等等。

任何VCS都比没有好(包括RCS),但我一直偏爱DVCS很长一段时间。我自己使用Mercurial因为它是分散的(我有几台机器,包括两台笔记本电脑),可以实现离线工作(想想飞机或火车),比git更快速,更容易使用。

答案 6 :(得分:2)

我的ubuntu笔记本电脑上有Subversion。 为什么?我认为没有人希望存储具有日期扩展名的文件的多个副本或类似的东西,除非他们不是认真的项目。任何具有良好代码库的项目都需要版本控制,以便您可以随时返回,而无需担心两天前我的更改中遗漏了什么。此外,由于我使用带有SVN的fsfs,我可以随时备份它们,如果我的笔记本电脑崩溃,可以在另一个盒子中重新加载它。

答案 7 :(得分:2)

是的,我将subversion用于我的家庭项目。我使用它,因为我可以确定我在不同的计算机和操作系统上的版本是相同的,如果我在一台计算机上做一些愚蠢的事情就没问题,因为我可以回滚它。而且它在另一台服务器上,所以如果我的计算机死了,我仍然有项目。

答案 8 :(得分:2)

我使用Git或Mercurial作为我的爱好项目,因为它们简单易用。一个quck hg / git init,我即将提交我的更改。如果我在空闲时间写一些东西,通常是因为我需要一些东西而且没有任何东西可以满足我的需求。所以,如果事实证明是有用的话,我很有可能会分享我所编造的任何内容,在这种情况下修改历史记录很好。

虽然有一个中断..如果我写一个100行shell脚本来执行一些只对我有用的奇怪任务..使用VCS是没有意义的。

在这个时代......我认为使用它们是如此常见,不这样做会让你觉得你没有裤子就上学了。

答案 9 :(得分:2)

我不能不使用VCS。我改变主意,或者需要尝试一些东西 - 我需要VCS的安全网来保护我免受自己的伤害。

我仍然使用RCS - 我不需要复杂的分支策略。我正在考虑迁移到Git(或者SVN),尽管我还不完全相信我需要。我赞成Git而不是SVN,因为它是一个分布式VCS。

答案 10 :(得分:1)

我无法想象在家里不使用VCS。即使有明显的答案,我做的一个很好的理由是我经常在家里的不同项目之间拉,而且记录我已经完成的事情以及为什么这样做很好,我可以回到它。

它还有助于能够在多台计算机之间同步并且始终具有工作副本(好吧,允许我的代码工作.. :)。

我个人开始使用Perforce,这就是我们在工作中使用的东西,我喜欢它。我发现离线编码太麻烦了(谁不喜欢在咖啡店编码?)所以我转而使用SVN。然而,我的下一个重大转变可能是Mercurial,因为分布式的东西让我感兴趣。

答案 11 :(得分:1)

Subversion已经为我工作了好几年但是我已经进入了一个阶段,我有几台开发机器,而颠覆有一些挑战。例如,如果我从服务器获得最新版本并带着笔记本电脑到办公室,我可能想要更多地处理代码。由于无法访问服务器,因此无法检入代码。这使得很难尝试回滚的可能性。

当然有一些黑客比如拥有另一个本地存储库,但最好点点子弹并查看distributed source control system。在过去的几个月里,我一直在使用mercurial,它就像一个魅力。

答案 12 :(得分:1)

我曾经将CVS用于我的家庭项目,然后我将所有内容转换为 Mercurial

我可以访问我通过SSH推送/拉动工作的服务器,这是我的主要项目存储库,这对RAID 1和常规备份非常安全。当然,大多数项目分散在几个地方 - 在我的家用电脑,一些重要的工作,在pendrive上。 DVCS FTW! ;)

答案 13 :(得分:1)

是的,Mercurial。当我在大约一年前看时,它甚至与git相似,并且有更好的窗口支持。从那时起,git似乎赢得了人气竞赛,但事实如此。我有一个非现场备份,还有一个Bitbucket用于公共项目。

答案 14 :(得分:1)

在工作中我使用了SVN,一切都很好。对于我的家庭项目,我有以下习惯:

  • 当我到达“检查站”时,我会使用“暗示”名称(描述整体进度)存档我的来源

  • 当我完成项目时,我通常会有大约20个档案(这些档案很有帮助,但让我们面对它,谁想要浏览所有这些档案,按创建/修改时间对它们进行排序,试试代码,看看它是否有效......糟糕的过程,不是吗?)

这也是我为家庭项目使用SVN的原因:)

答案 15 :(得分:1)

是的,我使用Subversion,这样我不仅可以拥有一个备份代码存储库,而且如果一个家庭项目在工作中很有用(例如代码示例或代码片段),我将始终可以访问它。当然,这对我来说是相当低廉的成本,因为我的工作项目已经在SVN服务器上了。

答案 16 :(得分:1)

是。 Subversion,和我在工作中使用的一样。方便学习,因为我们只是在工作中转向Subversion。

  • 所以我可以回到旧代码。不是固定螺丝钉,而是拧紧螺丝钉。如果我不久前检查过,我觉得更像是重新分解。如果没有源代码控制,我就会习惯于将大量代码注释掉,而不会将其删除。
  • 我必须将我的存储库移动到我的结帐所在的同一磁盘以外的某个地方......

答案 17 :(得分:1)

我使用git,是的,几乎每个项目都在源代码控制之下,至少有一个分支。

答案 18 :(得分:0)

我目前不在,但我想。我在Beanstalk有一个免费帐户,我正在讨论是否要获得付费帐户,或者转到GitHub。

答案 19 :(得分:0)

我对所有事情使用mercurial和subversion,因为:

1)它可以进行彻底的重构或更改,而不必担心丢失工作代码 2)它保留了我的工作备份 3)它可以在多台计算机上同时处理同一个项目而不会出现同步问题。

答案 20 :(得分:0)

我使用Beanstalk SVN和版本。当我做了一些愚蠢的事情时,它不止一次地拯救了我的培根。

答案 21 :(得分:0)

我在工作中使用SVN,现在我可能出于错误的原因切换到bazaar(bzr)。

一开始我正在寻找一种方法来继续我在断开连接的笔记本电脑上的工作。 Bzr是唯一能够以双向方式(拉动和推送)与subversion服务器交互的分布式vcs。

现在我的家庭项目我还在使用bzr,因为设置新的存储库比使用SVN更容易。但是svn可能对我的需求一样好。这就是为什么我说我换错的原因......太懒了。

答案 22 :(得分:0)

是。对于小东西,我使用darcs因为它的界面简单。因为darcs不能扩展,所以我使用git来处理任何严重问题。两者都允许我在断开连接时提交更改。

答案 23 :(得分:0)

最近我只使用Git。通过CVS,SVN之前和现在,我觉得它需要的工作少于它从我那里拯救的工作。从来没有过这种感觉。 :)

 $ mkdir newproject
 $ cd newproject
 $ git init
 $ vim README
 $ git commit -m "Readme file" README

完成。我认为这并不容易。它的美妙之处在于,我没有必要设置任何东西。它只是直接工作。

答案 24 :(得分:0)

我知道,我想要做得更好。最初,我想过在某个地方的某个远程安装上使用TFS,但是现在我已经有几天上网了,我很高兴我和家用服务器一起运行,猜猜是什么,Subversion。

答案 25 :(得分:0)

我主要使用源代码控制,因此我可以在多台计算机(台式机,笔记本电脑)上处理同一个项目。但是,它也非常有用,允许我对项目进行广泛的更改,而不必担心必须备份重要文件,以防我想要撤消一些更改。

答案 26 :(得分:0)

我发誓我正在努力,但是很难找到适合我环境的东西......

答案 27 :(得分:0)

如果它们足够大,我会在Codeplex上拍它们并在VS中使用TFSC,就像我在工作中使用一样。

答案 28 :(得分:0)

我之前使用免费版Beanstalk用于个人项目,提供高达20mb的SVN存储库。

我还使用mozy进行每日备份。

答案 29 :(得分:0)

事实上,我使用多个svn存储库而不是像我一样使用的一个大存储库(一个可能用于公共代码,另一个可能只是个人,其他可能是在线存储库)。我使用svn,我有一切:/ dev和我有一些文件夹,如:/ dev / external或/ dev / prv不在任何存储库中。

答案 30 :(得分:0)

当然,我使用它是因为我想要它在工作中给予我的所有好处,正如许多其他人所提到的那样。

一旦你习惯了这些好处,为什么没有它们呢?

答案 31 :(得分:0)

是的,我使用git + github.com

答案 32 :(得分:-1)

是的,github! :)

答案 33 :(得分:-1)

我对任何大于一个文件的项目使用git。我没有上传,因为我的笔记本电脑是由时间机器支持的。

答案 34 :(得分:-1)

其他所有不使用源代码管理的家庭项目,请投票。我没有。