Mercurial没有保存推动变革集

时间:2011-06-15 10:25:44

标签: ubuntu mercurial repository push

在这里和我在一起,因为除了我自己体验之外,这似乎是一个不存在的问题。

我最初在我们的Ubuntu 10.04盒子上设置了Mercurial。我们有几个项目正在进行,需要一个可靠的版本控制源。我使用过Mercurial并喜欢它。我首先开始安装Mercurial并跟随几个指南到T.我遵循的主要指南和http://phpfour.com/blog/2011/05/setting-up-central-mercurial-server-in-ubuntu/取得了初步成功 - 本指南对我很有用,我必须编辑一些内容才能使用新的hgwebdir.cgi而不是hgweb.cgi,以便我可以在配置下使用集合。

以下是我相关的配置文件:

hgweb.config

[collections]
/var/hg/repos = /srv/hg/repos

hgwebdir.cgi只是标准文件

我的默认apache虚拟主机文件:“/ etc / apache2 / sites-available / default”

ScriptAlias /hg "/var/hg/hgwebdir.cgi"
<Directory "/var/hg/repos">
   AuthType Basic
   AuthName "Mercurial Repositories"
   AuthUserFile /var/hg/hgusers
   Require valid-user
</Directory>

好的,让我解释一下。正如我之前在上面的教程中所说的那样,我最初设置了它。它立即第一次工作。我有一切正常,网站正在进行,推动工作,拉动工作,更新,一切,它是100%完美无瑕。

我必须在服务器上修改几件事情,并注意到几小时后存储库受到其中一个更改的影响。经过将近12个小时的日志调查,我决定是时候再刷新了。我重新装满整个盒子,没有任何改变,一切都是默认的。

好的,所以当我说存储库“不工作”时,请记住这是一种模糊的描述,我会解释它;该网站工作,我可以访问www.mydomain.com/hg并查看我的存储库,我也可以提交并推回到服务器上的中央存储库,它在我的JIRA / Crucible / FishEye设置中也显示了所有这些作为我网站的www.mydomain.com/hg目录。很酷,所以你会认为它有效!错误!我可以推送,进行我想要的所有更改,并查看网站上的更改日志,但是在查看假设要更改的文件时;然后我注意到他们根本没有更新。

几小时后认为这是因为我做出的一些改变;我决定重新成像。重新安装Mercurial并第二次配置它。网站工作,可以推,拉,更新,一切。但是根本没有更改文件!。

我的存储库文件夹设置为chown -R www-data“RepoName”,甚至在默认权限不起作用后的所有内容上都是chmod 777。很明显,所有者需要是apache,以便在需要进行更改时可以读/写并执行这些文件。有趣的是,每次我进行更改并将变更集推送到中央DVCS时,它实际上会对.hg文件夹进行更改,但绝不会添加任何未跟踪的文件或对计划在changeset推送到服务器。

到目前为止,我真的不知道要走哪个方向,我已经检查过几个指南,甚至尝试用两种不同的方式进行设置无济于事。如果有人对此有任何指导,我会比你知道的更感激。这似乎是一个主要问题,我想解决它,因为我不能成为这个问题的唯一人。我想要切换版本控制解决方案的地方,但是我想它曾经神奇地工作过,我猜它现在已经彻底崩溃了。

1 个答案:

答案 0 :(得分:2)

如果在服务器上的存储库中运行hg update,它会有帮助吗?

如果是这样,那么您需要在服务器上安装changegroup hook

[hooks]
changegroup = hg update

关键细节是hg push 不会更新接收存储库的工作目录