当试图从生产回购中克隆时,我会得到以下错误。
abort: index data/HR3/globals.php.i is corrupted!之后,mercurial立即向我放屁,却没有克隆人。我尝试过从生产回购中删除该文件,但失败了。我还尝试删除生产回购中的.hg目录,并重新添加和提交所有文件。这会产生同样的错误。
只是fyi,我试图克隆我们的应用程序的当前生产副本到我们的测试服务器。我们的测试服务器正在虚拟盒中运行。
更新
通过删除globals文件,然后删除.hg目录并重新运行"hg“和"hg”,我修复了这个问题。和"hg承诺“
现在,当我试图克隆时,我得到了一个内部服务器错误。下面是我使用的克隆命令。
sudo hg clone http://10.1.1.25/ www奇怪的是,mercurial告诉我,“真正的”url是"10.1.1.25/HR3/index.php“,这肯定不是我的mercurial存储库。我不知道它为什么要这样做。我签入了服务器日志,下面的错误是Apache删除的错误。
[Thu Dec 16 12:25:30 2010] [error] [client 10.1.1.102] PHP Parse error: syntax error, unexpected T_STRING in /var/www/.hg/store/data/_h_r3/includes/_b_n_a_s/_b_n_a_s-_h_r_s201.php.i on line 22显然,克隆命令导致Mercurial启动PHP并使其试图解析Mercurial的数据存储中的某些内容?
分辨率
我怀疑这是因为我在存储库的根目录上有一个index.php文件,可以重定向。如果您尝试在我们的网络上直接导航到http:10.1.1.25,您将自动被定向到索引页,它不是根目录中的index.php页面。不知怎么的,我认为这导致了php的启动,并试图解析mercurial商店中的项目。我通过ssh克隆解决了这个问题。
发布于 2010-12-17 07:43:50
似乎您使用静态-http方法从与您的开发项目生命相同的服务器上发布您的回购。只有当web服务器不处理$URL/..hg时,此方法才能工作,而您的服务器似乎就是这样做的。检查是否可以在新文件夹中下载带有.hg的wget -r -np $URL/.hg文件夹,并在那里运行hg verify。
很奇怪,mercurial告诉我,“真正的”url是"10.1.1.25/HR3/index.php“,这肯定不是我的mercurial存储库。
我猜您的web服务器将一些mercurial请求重定向到您的index.php url。
发布于 2010-12-16 19:47:40
我以前也遇到过这样的错误。试着跑
hg verify在你被破坏的存储库上。然后按照这里的说明:
http://www.softwareprojects.com/resources/programming/t-how-to-fix-mercurial-corrupt-repository-1926.html
发布于 2020-09-18 08:19:15
你可以试着这样做:
hg forget HR3/globals.php
hg commit
hg add HR3/globals.php
hg commithttps://stackoverflow.com/questions/4464666
复制相似问题