it-swarm.cn

独立开发者的版本控制?

如果您是独立开发人员,您认为使用版本控制是否值得?如果是,为什么?您是否将存储库保留在自己的计算机上或其他可以用作备份的计算机上?

60
vedosity

如果您使用分散式源代码管理(Mercurial,Git或Bazaar或其他工具),则与SVN/CVS相比,您将获得优势,从而可以轻松,有用且功能强大地使用自己:

  1. 您在本地提交:您的项目目录是具有完整历史记录的存储库。因此,您不必拥有服务器,可以直接在存储库中提交,并且可以在同一台计算机上拥有多个存储库。有时会使用打开的笔记本电脑继续处理事情吗?大!您不必设置服务器,如果以后需要,则很容易,您只需在存储库之间“推送”和“拉动”更改即可。
  2. 为了简化实验而制作:通常,您需要对功能有所了解,而不会污染代码。使用SVN和CVS时,如果功能不如您希望的那样好,您已经可以使用分支系统并放弃分支。但是,如果要将功能与主干版本合并,则将很难解决很多问题。 Git,Mercurial和Bazaar(至少)使合并和分支变得非常容易。您甚至可以只复制一个仓库,花一些时间处理它,仍然提交并杀死它,或者根据需要将更改推送到主仓库中。
  3. 组织的灵活性:如前所述,您可以根据需要进行组织,因此很容易单独开始,并允许其他人通过更改组织来与您合作。没有组织的要求,因此您只需要进行设置和设置即可。我经常只是在自己的计算机(笔记本电脑/台式机/服务器)之间进行推/拉更改,而我仍然独自呆在开发人员身上。我使用Mercurial,不仅可以帮助我复制工作,而且可以在笔记本电脑上使用我以前想过的功能,然后继续在台式机上使用其他功能,然后将更改的笔记本电脑推送到台式机或服务器上并合并整个台式机+笔记本电脑并将其(作为备份和将来的团队回购)放在我的服务器上。
  4. 它有助于设置备份:如果您设置了中央存储库(在GitHub上为公共存储库,或者在BitBucket上的私有存储库中),则可以轻松编写脚本,该脚本将在每次启动计算机时执行,然后将上述脚本传递给您的朋友,以使其定期自动备份您的工作。这就是我现在正在做的事情,我敢肯定失去工作不会容易。

实际上,当前,您没有任何理由不对任何项目使用控制源工具。因为它们比以前更强大,更灵活,并且可以根据您的需求进行扩展。

61
Klaim

源代码控制对于独立开发人员完全没有用,因为众所周知:

  • 独立开发商永远不会犯错
  • 独立开发人员永远不会进行不可行的修订
  • 独立开发人员从来没有一个以上的版本,所以他们没有使用分支
  • 独立开发者从不关心昨天或上周的更改
  • 独立开发人员永远都不需要备份

称我为“依赖开发人员”:Mercurial存储库可以在我的台式机,笔记本电脑,USB备份驱动器和bitbucket.org之间轻松克隆。我变得越来越依赖,我喜欢这种方式!

34
Steven A. Lowe

为什么不呢?

我是一个单独的开发人员,在我的个人项目中使用BitBucket和Mercurial。能够还原和分叉代码实在太好了,无法传递。

21
Terence Ponce

我个人发现其中的价值。我所有的项目都被检入了git仓库(如果硬件出现故障,我会将它们全部保存在多台机器上)。最有用的功能是分支(这样我可以运行一个实验,弄乱我的代码库的一半,而不用担心永久地炸毁任何东西)并还原(基本上只是撤消类固醇;以防万一,我发现我做了一些超出正常撤消范围的错误)。

1
Inaimathi

是。这是非常非常有用的。我的朋友 (Matt Gallagher )发布了 (这篇出色的文章 )就在几天前,就在他的iOS/MacOS开发博客“ Cocoa With Love”上谈到了这个话题。

本文以Mac&Git为中心,但涵盖了基础知识。

您可能也对以下StackExchange问​​题(及其答案)感兴趣。

1
orj

值得吗?如果您不使用源代码控制,那么您就无法控制源代码,这很糟糕。您无法区分您无法还原,您无法跟踪更改-您将花费数小时来尝试找出刚刚输入的虚拟错误。最好将其放在某些备份服务器上,但是您也可以在计算机上使用任何合适的备份方法。

1
Assimiz

绝对使用源代码管理。然后设置构建服务器并自动执行构建和测试过程。从您的中央存储库的源提交触发构建。我已经以这种方式独自工作了三年,这真是太好了。

1
Dave Neeley

是。

即使是单个开发人员,有时也需要从过去的一些修订中查看其代码状态。备份所有重要内容始终是一个好主意,这适用于所有人。

0
whatsisname