3

我为即将到来的学期准备了一台笔记本电脑,这将使我在全职工作的同时参加大学编程课程。当然,我会使用源代码控制系统(可能是 Subversion),并且想在我的 Dropbox 文件夹中创建我的存储库,这将使我能够使用我的笔记本电脑或台式机(或者,实际上,任何其他可以访问 Internet 的计算机),然后将其提交回共享的 Dropbox 存储库。

  • 为什么这不是实现我的目标的好方法有什么陷阱或原因?(假设我可以通过做一些愚蠢的事情来避免破坏 SVN 存储库。)
  • 与 Dropbox 的优势相比,使用网络托管解决方案有什么明显的优势(即它是免费的并且已经在我的机器上设置)?
  • 从多个位置处理代码的任何其他策略可以分享吗?

注意:我不打算与其他人共享 Dropbox 文件夹,因为我意识到多人访问存储库file://是一个坏主意。我的问题仅与个人用户有关。

4

3 回答 3

3

虽然乍一看这似乎是一个坏主意(基本上将两个不同的修订控制系统与不同的工作流程叠加在一起),但假设您是唯一的开发人员,有一种方法对您来说是有意义的。

(作为旁注,Dropbox 为您提供的是数据的离线备份以及从中同步的服务器。如果您尝试单独使用 SVN,则必须将您的机器配置为允许远程访问。这根据您在系统管理员类型任务中的专业水平,可能会或可能不会破坏交易。)

您可以做的是在您的 Dropbox 驱动器中为给定项目创建一个存储库。然后在签出工作副本时,在 Dropbox 文件夹之外file:创建它,使用协议访问您的存储库。这样,存储库在所有机器上保持同步,但每台机器都有一个单独的工作文件夹,如果您愿意,您可以在一台机器上处理与另一台机器不同的分支,或者维护未提交的代码而不会传播到另一台机器。如果多个人通过file:协议访问存储库,则会出现这种情况 - 由于可能存在竞争条件,因此不建议这样做。

注意:此解决方案允许您在离线时继续提交,就像其他 DVCS 一样。但请注意,这样做然后在允许存储库同步之前在另一台机器上离线提交可能是灾难性的!在另一台机器上进行提交之前,允许 repos 在离线工作后同步是非常重要的。

于 2010-01-19T19:46:36.200 回答
2

我建议使用 DVCS 而不是 Subversion 和 Dropbox。原因是在有限/没有网络连接的情况下,通过将同一文件同时更改为机器,可能会产生与 Dropbox 的合并冲突。如果您设法像这样弄乱您的 subversion 存储库,则很难修复存储库,而使用流行的 DVCS 系统,您至少可以核对损坏的存储库并将其本地版本克隆回 Dropbox 共享。

我在编写上述内容时意识到,您没有提及您是否使用同一 Dropbox 帐户使用多台计算机,因此如果您仅在一台计算机上使用 Dropbox 帐户,上述内容并不适用(我想可能如果你做了一些非常愚蠢/奇怪的事情)。

于 2010-01-19T20:03:55.677 回答
2

我会使用 Git 和 Github。然后你有一个源代码控制,你可以很容易地从两个地方访问它。

或者更理想的是设置您自己的服务器来托管 svn 或 git repo,但这显然并不总是一种选择。

于 2010-01-19T20:07:12.523 回答