Mercurial(我猜是Git)和Dropbox:有什么缺点吗?

Mercurial(我猜是Git)和Dropbox:有什么缺点吗?,git,mercurial,dropbox,Git,Mercurial,Dropbox,我有一个用于个人项目的Mercurial存储库,我在Dropbox中存储主存储库已经有几个星期了(我知道它也很有用) 其思想是,它既是一种使用多台机器的方式,也是一种远程备份。我克隆存储库并处理非Dropbox副本,并且偶尔只推送更新一次,我想这与我处理Bitbucket的方式相同 与使用专用托管(Mercurial中的BitBucket)相比,您能想到这个想法有什么缺点吗?我知道Bitbucket为单个用户提供免费帐户,这很好,但他们的帐户限制在1.5亿个,这并不是一个巨大的数字 特别是,Dr

我有一个用于个人项目的Mercurial存储库,我在Dropbox中存储主存储库已经有几个星期了(我知道它也很有用)

其思想是,它既是一种使用多台机器的方式,也是一种远程备份。我克隆存储库并处理非Dropbox副本,并且偶尔只推送更新一次,我想这与我处理Bitbucket的方式相同

与使用专用托管(Mercurial中的BitBucket)相比,您能想到这个想法有什么缺点吗?我知道Bitbucket为单个用户提供免费帐户,这很好,但他们的帐户限制在1.5亿个,这并不是一个巨大的数字

特别是,Dropbox的同步过程是否可能损坏存储库?我必须在主存储库上运行一次hg recover,但它可能与此无关(而且它很快就恢复了)。有人对这个想法有过不好的体验吗?有没有人有更长的好经验,可以减轻我的忧虑?有没有人在更好地理解这些事物的内部结构的基础上有自己的观点


编辑:我对问题做了一些澄清。它们是斜体字我认为这可能适用于一两台机器上的个人项目,但实际上,您希望对多成员项目使用专业托管


我个人使用BitBucket已经有一段时间了,我非常高兴。。。您也可以在免费帐户上拥有一个私人项目。

+1代表bitbucket。它是免费的,你可以通过这个免费帐户获得一个私人回购协议(不像github)

dropbox only解决方案的缺点是,如果您在机器上的回购中确实出错,那么出错的内容将被复制到bitbucket,并复制到安装dropbox的所有其他位置。Dropbox速度非常快,所以您无法及时阻止它的发生以防止出现问题

您失去了将更改存储库与发布这些更改分离的能力


我确实使用dropbox托管了我在家用和工作机器上使用的几个存储库,但这些存储库并不是这些存储库的唯一副本。还有一个bitbucket回购(以及其他克隆了它们的人)。

我已经在个人项目中使用Dropbox with git有相当一段时间了,我还没有遇到任何问题。不过,有时您必须等待Dropbox同步。我认为如果有超过几个人在同一个项目上工作,这可能会导致一些小问题,但对于个人项目,我发现Dropbox甚至比GitHub更好,只要推/拉更快


至于推/拉中间同步,这很可能会导致问题,甚至可能会破坏您的回购协议,但如果您是唯一一个在项目中工作的人,那么您确切地知道Dropbox将在何时进行同步。

出于上述原因,我建议您不要这样做,但我会更加努力地说。mercurial和git都有自己的在存储库之间移动变更集的协议。这些协议针对以下方面进行了优化/构建:

  • 效率
  • 一致性(永远不能在半更新状态下从回购中提取)
  • 挂钩/触发器——按/拉操作,包括质量(不允许使用标签等)过滤器
当你只是让一个目录同步来处理保持.hg(或.git)目录同步的问题时,那么在同步过程中,你就得到了一个远程存储,它处于不一致的状态并且不知道它

此外,hg和git在其磁盘状态中都将仅本地的和远程的区分开来。他们知道共享哪些信息(例如:提交的变更集)和不共享哪些信息(例如:当前本地工作目录父版本)


在其他回答中,人们会说“你可能会没事的”或“我从来没有遇到过问题”,这可能是真的,但不能保证这是真的,而且修订控制也不是一个发挥作用的地方。为您的源代码管理系统使用适当、更好、更安全、更高效、功能更全面的同步协议。

我的Dropbox存储库出现了损坏的问题。这种情况并非总是发生,但事实上,这种情况已经发生了不止一次,这意味着我将停止为此目的使用Dropbox


这就是说,Dropbox肯定比获得真正的主机便宜,所以只要你保留备份,你可能会发现它适合个人项目。

我不建议将Dropbox与mercurial一起使用,因为我经常看到Mac和Windows客户端之间的文件冲突。尤其是撤消会受到影响,但我也遇到过与其他文件的冲突

问候
Mirko

目前我正在3台机器上与Bazaar一起使用它。然而,我是所有分支中唯一的开发者


我使用init repo--no trees命令来创建存储库。

我也在Hg中使用Dropbox,直到现在还没有遇到任何问题。太晚了,我意识到hg不会在例行签入时报告损坏,只有当你尝试真正使用回购时(最糟糕的情况是,在你真正需要它之前,你不知道什么东西坏了)

尚不清楚损坏是自发的还是由Mac、Windows和Linux客户端访问存储库引起的(我在不同的时间使用这三种客户端)。但我至少看到过一个腐败案例,当时只有Mac电脑处于活动状态,所以很可能是Dropbox本身

如果你决定过危险的生活,那么定期运行“hg-verify”(或“git-verify”)来查找任何污垢