将 Subversion 与 DropBox 一起使用

Posted

技术标签:

【中文标题】将 Subversion 与 DropBox 一起使用【英文标题】:Using Subversion with DropBox 【发布时间】:2011-01-07 04:10:03 【问题描述】:

使用 DropBox 作为 Subversion 存储库的备份系统是不是一个坏主意?

有没有人尝试过将 Subversion 与 DropBox 等在线文件共享实用程序结合使用?你有什么经验?

我担心这是否会起作用 - 主要是因为 Subversion 维护锁并且它非常具体。我不确定 DropBox 和 Subversion 是否可以一起工作?

附言我正在考虑将它用于我的 Xcode 项目,不,我不想使用 github,因为它不是免费的 - 您不能使用免费帐户(以及其他原因)将您的存储库保持私有。


参考资料:

DropBox(文件同步、共享、在线备份)

Subversion(开源版本控制系统)

【问题讨论】:

我认为您将 Git 与其中一种 Git 托管服务混淆了。也许是 Github? 作为记录,git 是免费的:git-scm.com。 Github,不适用于私人存储库。你甚至可以在没有远程服务器的情况下使用git 你真的应该看看 Mercurial(或已经建议的其他 DVCS,如 git)——听起来更适合你,我不知道你为什么要在开始时选择 Subversion今天出去。 是的,我指的是 Github。 Git 与 Subversion 几乎相同。 @GraemeF,为什么 subversion 不适合我的情况? 很多人正在从 Subversion 迁移(或希望他们可以),因为 DVCS 更加灵活。有一个谷歌。 :) 【参考方案1】:

我的 Dropbox、SVN 和 Xcode 在这里运行良好,我从来没有遇到过任何问题。

您甚至无需小心从哪台机器提交/更新,因为 Dropbox 会保持一切同步。

【讨论】:

当多个人在一个项目上工作并且他们都在不断地向 Subversion 存储库提交更改并获取更新时怎么样?我担心颠覆可能会遇到锁定问题,或者 DropBox 在更新时可能会遇到锁定问题。对此有什么想法吗? 我只使用 Dropbox 来保持 2 台机器同步,所以我无法真正发表评论,但我不明白为什么会有任何问题,Dropbox 所做的只是同步任何更改文件,它没有似乎对他们持有任何锁。但是,我不想使用 Dropbox 在团队之间同步源代码,没有版本控制或责备/表扬日志。 然而...这是征服世界的下一步(我希望)。 :P 没有下一步,Dropbox已经征服了世界:) 哇.. 请问我如何设置 Dropbox、SVN 和 Xcode。我是颠覆的新手。谢谢【参考方案2】:

我的建议是将保管箱与 TrueCrypt 等加密工具一起使用。这样一来,您就可以在云端拥有一个安全的存储空间。

SVN 在 TrueCrypt 磁盘中完美运行。

如果您需要在多个位置同时访问存储库,我建议您使用 subversion 主机提供程序。如果两个人同时修改同一个文件,DropBox 可能会感到困惑。

http://wiki.dropbox.com/TipsAndTricks/IncreasePrivacyAndSafety

http://www.randomwire.com/storing-sensitive-data-in-the-cloud

【讨论】:

如果您担心安全问题,您还可以将您的 SVN 存储库放在一个加密的磁盘映像上,然后您可以将其放在保管箱中 :) 今天刚找到这个:webupd8.org/2011/06/encrypt-your-private-dropbox-data-with.html。文件。似乎与我正在寻找的内容非常接近[您可以加密 Dropbox 的特定文件夹]。 更新到之前的评论:当使用带有 dropbox 的 ENCFS 时,请确保 dropbox 和 encfs 以正确的顺序启动,否则可能会发生灾难。更多信息:forums.dropbox.com/topic.php?id=15065 如果您的意思是创建一个 TrueCrypt 加密文件容器,那么潜在的问题是每个小的修改都必须重新上传一个非常大的文件,除非 Dropbox 只能发送文件的更改部分。 @SimonT 似乎保管箱只是uploading the changed part。但是,加密磁盘中包含的文件中的微小变化可能会导致更大的变化。【参考方案3】:

为什么要在 Dropbox 中使用 SVN?相反,您可以使用自己的 SVN 服务器和类似 Dropbox 的界面:来自 Assembla 的 EasySVN 或 IQBox-SVN。

【讨论】:

【参考方案4】:

也许这会对你有所帮助。我已将 SVN 存储库放在 Dropbox 文件夹中。 http://foyzulkarim.blogspot.com/2012/12/dropbox-as-svn-repository.html

【讨论】:

【参考方案5】:

您可以简单地从 Dropbox 中排除 .svn 文件夹:(Mac 的说明)

    您需要查看 .svn 文件夹,因此进入终端并执行

    defaults write com.apple.Finder AppleShowAllFiles YES
    killall Finder
    

    转到您的文件夹,然后将 .svn 文件夹复制到其他地方

    转到您的 Dropbox-Preferences > Advanced > Selective Sync 并停用 .svn-Folder

    现在应该从您的 HD 和 Dropbox 中删除该文件夹,您可以在网站上查看。

    将 .svn 文件夹的副本放回目录中。您应该会看到一个灰色的小符号,例如 (-)

    使用

    还原步骤 1
    defaults write com.apple.Finder AppleShowAllFiles NO
    killall Finder
    

    就是这样!

【讨论】:

【参考方案6】:

如果您不从不同位置访问存储库,我认为它可能会正常工作,并且在使用它之前先进行同步。不过,这似乎不是一个非常稳定的解决方案。

您是否有任何理由不能为您的存储库提供公开的 URL?

【讨论】:

【参考方案7】:

根据您要同步的文件数量,最终可能会进行大量文件传输。 (请记住,您在 Dropbox 上只有 200MB,而免费帐户没有任何额外的存储空间。)这意味着所有 .svn(或 _svn)文件也将被同步,实际上需要保持更新的文件数量增加了一倍。

如果初始同步完成后您不需要在树中移动整个目录,那么传输应该是可敬的。

我自己在一些项目中尝试过,效果还不错,但最后我认为将 Subversion 存储库和 Dropbox 一起使用的最佳方法是将它们用于部署构建。我不会只将 Dropbox 设置为与我的工作文件夹同步。使用 Dropbox 在一天结束时通过按计划的时间间隔将工作文件夹复制到实际的 Dropbox 文件夹进行同步,从而限制前者可能产生的持续网络流量。

【讨论】:

初始 Dropbox 帐户为 2GB【参考方案8】:

我在使用 Dropbox 同步 svn 存储库时遇到问题, 一旦 Dropbox 无法访问一个文件,该文件就不会再次同步。 然后,svn结构就被破坏了……

【讨论】:

【参考方案9】:

见SVN Backups to Dropbox。这会生成 SVN 存储库的完整或增量转储,并将压缩结果上传到 Dropbox。这种方法的主要优点是它不使用 Dropbox 客户端软件。 Dropbox 客户端软件在您的计算机和云之间同步,并且会同步损坏的文件。您可以创建一个 cronjob(或 Windows 计划任务)来每天/每周/每月/等运行此脚本。

【讨论】:

【参考方案10】:

不是微不足道的方法...

第一个想法总是“好的,让我们将 repo 保存在 Dropbox 上,剩下的事情交给它”。没有。正如您所期望的那样,这个组合总是会给您带来锁定问题。我尝试过是因为我喜欢 svn 的简单性,但我最终将我的一些存储库移动到了 git,只是为了使同步完美无缺。

现在我仍然不是 git 粉丝(由于我的客户的版本控制选择,在不可避免地使用了几年之后)所以这里有一些不做我做过的事情的想法:

你可以做什么

    RiouxSVN 有一个非常好的(而且令人惊讶的是,免费的)svn 托管服务:https://riouxsvn.com/ - 这是一种严肃的方式,可以将您的存储库保存在安全的地方,与您的计算机物理分离,只要您有连接就可以在任何地方使用。所以基本上,我猜你想用 DropBox 实现什么。

    提交后 您可以轻松创建将本地存储库复制到 DropBox 的提交后批处理。让它成为一个差分镜像,一个名为 robocopy 的内置工具可以为您解决这个问题。这样,您将始终在天空中拥有一个安全的实例。

    分散 DropBox 同步 这只是一个肮脏的技巧,如果没有其他方法似乎起作用 - 一个带有大文件副本的预提交挂钩,会导致 DropBox 明显延迟并防止同时打开 svn 正在处理的相同文件。如果您有更好的选择,不推荐。

【讨论】:

以上是关于将 Subversion 与 DropBox 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Subclipse 1.4.4 可以与 Subversion 1.3.2 一起使用吗

如何配置 Git 以将其与 Dropbox 一起使用?

评估将核心数据与 Dropbox 同步的策略

仅用于本地文件的图像选择器,隐藏 Dropbox

使用 fancybox2 的 Dropbox 相册视图

使用 MAMP Pro 3 将 mysql 数据库与 Dropbox 同步