使用亚马逊S3托管远程Hg版本库

10

在Amazon S3上托管集中式Mercurial存储库是否可行(从财务角度来看)?据我所见,只需购买S3帐户和域名,就可以将其用作远程服务器。基于每个GB每月0.15美元的价格以及我所有的存储库加起来可能不到300MB,这将使它变得非常便宜...或者我漏掉了什么?


1
顺便提一下,Bitbucket.org正在Amazon S3上运行,所以你不会是第一个在那里托管Mercurial存储库的人 :-) - Martin Geisler
如果只是为了您自己使用,请查看Kiln - 价格从免费开始,它具有内置的代码审查和一个令人惊叹的Web应用程序http://www.fogcreek.com/kiln/StudentAndStartup.html(尽管名称如此,但不仅限于学生/初创企业)。 - Danny Tuppeny
2个回答

9
可以,但是与在可以运行可执行文件的地方托管它相比,您可能会失去一些速度/效率。Mercurial具有在克隆、推送和拉取期间执行的服务器端代码。在正常设置中,您通过在http上运行cgi或wsgi或通过在ssh上运行hg可执行文件来触发远程执行。这两者都不适用于S3。
然而,有几种方法可以解决这个限制。其中一种有更多限制,另一种需要更多设置:
选项一是将repo上传到s3并通过http-static:// URL进行访问,这是mercurial提供的只读回退模式。它效率不高,并且如前所述,它是只读的。
选项二是使用s3fs或fuse之类的工具将s3挂载到本地文件系统上。
在任何情况下,Mercurial的网络界面都无法从s3获得。

我按照你描述的方法使用s3fs来托管存储库。然而,当我中止推送时,偶尔会出现损坏的存储库。我不能确定,但我最好的猜测是mercurial与S3提供的“最终一致性”不兼容。结论:我认为这是不可能的... - Kevin Coulombe
是的,Mercurial非常明确地表示,它更喜欢您使用ssh或http推送和拉取变更集。Samba、nfs、dropbox和其他网络文件系统在大小写敏感性、符号链接检测、硬链接计数和其他方面存在不一致性。最好只是将变更集推送到hgweb或ec2节点上的ssh://。微型实例(几乎)是免费的。 - Ry4an Brase

2

不,你想错了。我不知道你认为什么是便宜的。我正在使用它,偶尔会被收取1.6美元的费用。我在那里放了一个大的备份。如果你愿意,可以尝试一下,但可能会冒着失去2美元左右的风险。

顺便说一句,我建议使用Firefox扩展程序S3Organizer


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接