按用户推送到mercurial存储库会导致其他用户出现http 500错误

时间:2010-11-03 16:53:41

标签: mercurial corrupt

我有一个Windows托管的mercurial存储库,UserA,UserB和UserC有权推送到。 UserA可以愉快地推/拉等...但是一旦UserC推送...... UserA开始收到以下错误:

abort:HTTP错误500:.hg \ store \ data / _web / _mvc._sitemap.i:访问被拒绝

唯一的'修复'就是核对并重新启动远程存储库。

有没有人有这类问题的经验?

更新 存储库位于服务器上的驱动器上,IIS位于其上。用户在本地连接。安装程序非常适合Mercurial wiki。

1 个答案:

答案 0 :(得分:2)

我把tonfa的答案放在这里,附上一些额外的信息。这是完全正常的,实际上只是文件系统的工作方式。当您的用户使用直接磁盘访问时,他们正在创建由他们拥有的新文件。除非采取措施确保其所拥有的文件也可由其协作者编写,否则后续的推送器(以及根据您的默认权限的拉出器)将被告知他们无法访问新创建的文件。

有一些通用的方法可以避免这种所有这些都是服务器管理员的工作,而不是推动用户的工作。之一:

  • 更改权限,以便自动添加所有新文件,并允许所有协作者进行读/写访问权限
  • 让每个人只使用HTTP接口进行推/拉,这样所有读/写操作都由同一个(IIS)用户完成

在unix land中,使用“sticky group bit”和“umask”很容易做到。在Windows上,可能有一种更简单的方法,只能工作一半的时间。 ;)