ubuntu - Mercurial 不保存推送的变更集

标签 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 文件夹,但绝不会添加任何未跟踪的文件或更改任何计划更改的现有文件变更集推送到服务器。

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

最佳答案

运行 hg update 有帮助吗?在服务器上的存储库中?

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

[hooks]
changegroup = hg update

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

关于ubuntu - Mercurial 不保存推送的变更集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6356297/

相关文章:

ruby - 自定义 Chef 资源在 ubuntu 中启动 newrelic-infra

shell - 文本对齐中心——shell脚本

svn - 当其他团队成员只在 SVN 上工作时,在本地使用 Hg 并推送到 SVN 存储库——这可能吗?

git - 从我的 fork 存储库中获取代码

svn - 克隆/镜像 SVN 存储库

mysql - 无法将unicode插入mysql

git - 无法 git pull ubuntu [无法创建符号链接(symbolic link)文件名太长]

version-control - 选择 Mercurial 主机

mercurial - 如何在我的源代码树中标记某个文件夹?

spring - 如何在 spring boot 中为 mongodb 存储库进行自定义排序查询?