如果我使用时间机器,为什么还要有版本控制系统?

时间:2009-04-23 15:25:19

标签: macos version-control

我实际上知道最好有一个版本控制,但是我想知道Time Machine是否在懒惰程序员方面做得不好?

9 个答案:

答案 0 :(得分:15)

因为TimeMachine不会跟踪文件更改的日志。

e.g。对于Subversion中的给定文件,我可以轻松确定它何时发生变化,以及同时发生了哪些变化。

它不会告诉你是谁更改了它,但我假设你正在讨论这个例子中的单用户案例。

最后,您无法将签入和更改绑定到构建/部署。

在Mac OS上安装Subversion(或类似软件)是微不足道的,除非您正在检入/退出,否则不会消耗资源。强烈推荐。当然,请确保使用TimeMachine备份您的存储库!

答案 1 :(得分:7)

它们实际上非常相似,但Time Machine无法跟踪哪个版本的文件与系统的特定版本匹配。拥有元数据非常有用。

答案 2 :(得分:6)

Time Machine不会保留所有备份(它只保留一天的每小时备份,并且只保留一个月的每日备份),因此如果您需要返回并确切地弄清楚,您将不会拥有该文件的每个版本什么改变引入了一个问题。它没有内置的差异支持,但您可能会对相关目录执行diff -r。它也不记录任何提交消息,这对于弄清楚某人为何以特定方式更改代码非常有用。最后,它无法帮助您在多台计算机上协调多人或一人;版本控制的最大好处之一是它可以帮助您分发代码并合并来自多个人的更改。

如果您希望快速简便的版本控制,我建议使用其中一个分布式版本控制系统。与您必须设置和管理服务器的集中式系统不同,使用分布式系统开始通常就像git init; git add .; git commit一样简单。我通常更喜欢Git,但Mercurial也是一个不错的选择,有些人会更容易开始使用。

答案 3 :(得分:4)

Time Machine将为您提供代码备份。就是这样。

Source Control也会提供此功能,但也提供了更多功能。最大的是分支和合并,这对项目有很大的帮助。

Time Machine也不会存储签到评论或进行了哪些更改的元数据。

最后,Time Machine无法真正分发。如果您希望其他人也开始处理您的代码,那么Time Machine将无济于事。但是(良好的)源代码控制会使协作变得非常容易。

答案 4 :(得分:3)

版本控制存储库中最重要且最有价值的东西是内容,它甚至不是历史记录(那是#2),它是提交消息。你没有备份程序。

答案 5 :(得分:2)

在PC上,active backup几乎完全相同,并且允许修订比较,尽管仅限于逐个文件。当您想要列出版本X和版本Y之间的所有差异时,问题就出现了,目的是根据两者的组合构建版本Z.在您同时维护同一项目的多个版本之前,这些类型的备份系统都可以。

答案 6 :(得分:2)

分行&标签

答案 7 :(得分:1)

由于其他人都指出的原因,使用源代码控制。它很容易设置并解决很多问题。它将告诉您谁更改了什么时间以及为什么(如果您正确使用提交消息),并提供详细信息。当你意识到过去几天出现问题时,这是非常宝贵的。

完成后,使用Time Machine保留存储库的备份。版本控制系统不是备份系统。没有什么是安全的,只在一个文件系统上。

答案 8 :(得分:1)

不要忘记分支,它是SCM可以给你的最强大工具之一..我不知道时间机器是否具有某种“替代现实”功能