我现在是一个孤独的开发者;请分享您关于对于独立开发人员来说什么是好的 VC 设置的经验。

我的限制是;

  • 我在多台机器上工作并且需要保持它们同步
  • 有时我离线工作

我目前正在使用 Subversion(只是远程服务器的客户端),并且工作正常。我对 Mercurial 和 git DVCS 感兴趣,但它们的用例对我的情况都没有意义。

编辑:我已将积极的开发迁移到 Fossil http://www.fossil-scm.org/ 与客户试用后。我真的很喜欢自动同步我的存储库的功能(减少意外分叉),文档支持(wiki 和嵌入式/版本化)支持我在不同空间中记录代码和项目的需要,易于配置的问题跟踪器,良好的访问控制、可换肤的 Web 界面和有用的社区。

有帮助吗?

解决方案

我可以建议一个相当新的版本控制称为化石吗?

这不是我的项目,它是由 Dr. 编写的。Richard Hipp,也是 SQLite 的开发者。整个存储库是一个 SQLite 文件,因此非常可靠。您有一个内置的维基百科和票务系统。您可以拥有许多具有不同权限的用户,因此您可以授予用户颁发票证但无权查看源代码的权限。

这非常简单、直接,并且它作为分布式系统工作,这意味着您可以在本地和远程克隆和结帐。

更多信息可以参见 http://www.fossil-scm.org/ 如果你仔细观察,你会发现整个遗址实际上都是化石。

化石给我留下深刻印象的一件事是它只是一个文件,就是这样。整个化石程序相当小,但考虑到作者是谁,这并不奇怪。

由于您的存储库是一个 sqlite 文件,因此您只需复制它即可获得备份。

其他提示

每个人都可能会告诉您,他们最喜欢的 DVCS 最适合您。我会告诉你 Mercurial 是最好的!;-)

但这是废话. 。您肯定需要 DVCS,但请尝试所有这些,或者至少尝试最常用的那些,然后自己做出选择。顺便说一句,选择您认识的大师的 DVCS 也是一个明智的选择。我建议至少尝试(或阅读其文档)Mercurial、Git 和 Bazaar。SVK 可能具有理想的功能,它被设计为与 SVN 交互,但上次我检查它们有严重的性能问题。Git还有一些SVN交互插件,AFAIK。

离线工作对于 Git 来说绝对有意义。您可以浏览整个历史记录、进行提交、合并、创建分支,基本上可以离线执行与存储库相关的所有操作。此外,您可以设置一个作为“主”的中央存储库,也就是说,您将把所有更改推送到该中央存储库。这样,您始终知道最新代码在哪里,而且您还可以在需要时将更改从一台计算机发送到另一台计算机。

我最近将我的 80 多个 Subversion 存储库全部转换为 Git,并且我没有回头。

市场: :请参阅 单独用例5分钟逛集市.

特别是对于离线使用, 分布式版本控制系统 是要走的路。

Subversion 效果很好(特别是使用 TortoiseSVN)。我认为任何分布式 VC 在单一开发人员场景中都不具有优势。

编辑:当我最初回复时,我没有注意到“有时我离线工作”部分。在这种情况下,我想您必须权衡 DVCS 增加的复杂性,因为它为您提供离线历史记录/修订。

我总是推荐 达尔克斯 对于这种情况(这是我对类似问题的回答)因为它的命令行用户界面使用起来很愉快,而喜悦正是我想要从自己的开发中得到的:)

Git 捆绑了一些可用的 GUI,但当我点击命令行用于个人项目时,我发现它与 darcs 相比太笨拙了。

两者都可以满足您离线工作的需要,并且它们都很容易同步更改。

Subversion 需要访问集中存储库。如果您在多台机器上脱机工作,这意味着您无法在脱机时进行修改。

一个简单的 Unix 解决方案是在工作目录中保存历史记录 RCS, ,并使用同步不同机器之间的工作目录(包括历史记录) 齐奏. 。主要的警告是,如果您切换机器,您首先需要在开始提交新修订之前同步它们。如果这是一个问题,您最好研究一下真正的 DVCS。

您可能会发现我提出的问题的答案很有帮助:一个人表演的 VSS 替代方案(一人之军?):

替代 VSS 进行单人表演(一人军队?)

您必须尝试 DVCS(或者我所说的点对点 VCS)。我同意任何人的观点。不要在 svn 上浪费时间,所有围绕它的软件都是为了让它变得有用。DVCS 比旧的且已弃用的客户端-服务器样式更直观。SVN 不知道什么是标签或分支。对于Svn来说,所有的都只是副本。

例如:将标签实现为修订号的同义词非常困难。

在 Mercurial 中,标签就是这样。您无法像在 svn 中那样持续跟踪标签的版本。

在这里阅读 dvc 指南 开始。然后你可以使用 svk、mercurial 又名 hg 或 git。但请不要时光倒流

我是分布式版本控制的忠实粉丝。我尝试过 git、mercurial 和 bzr,现在我的所有项目都使用 git。所有这三个都非常适合个人使用,因为在计算机上创建新存储库非常简单。您不必运行任何服务器。

以下是在多台计算机上共享存储库的一些想法。1)使用一些托管服务,例如github。通常,这些对于开源项目是免费的,对于商业项目来说费用较低。我们在工作中使用 github。2) 使用 dropbox 创建一个所有计算机都可以访问的共享互联网备份磁盘。少于 2 GB 是免费的。(如果您使用的是 Ubuntu,Ubuntu One 是另一种选择。)将主 git 存储库放在 dropbox 上,然后将本地存储库放在每台计算机上。(因此,dropbox 起着与 github 相同的作用。)它是完全免费的,允许您轻松离线工作,允许您稍后在需要时与其他开发人员共享存储库,并且它会自动备份。

另外,如果您确实想使用 SVN,请查看像 cvsdude 这样的托管解决方案(尽管有名称,但它们确实运行 SVN),而不是运行您自己的服务器。您可以从任何地方访问您的代码,并且每月只需花费约 5-10 美元。

SourceGear Vault 对于一名开发人员来说是免费的,而且非常好。

我推荐 assembla.com - 他们提供免费的 svn 、 wiki 和 trac 。没有比这更好的了!

如果你对颠覆感到满意,我建议你看看 SVK

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top