Articles of mercurial

hg中断链接通过proxy_pass服务于nginx后面

我有一个简单的Ubuntu 10.10,Nginx,Mercurial,PHP和MySQL堆栈。 当前文件结构: /opt/nginx/html – document root for nginx (where my website files are) /opt/nginx/html/.hg – repository data /usr/share/mercurial/ – where the templates/static folder is 我正在运行在localhost:8000托pipe的hg -serve。 在这一点之后,我并不清楚水银是如何与资源相联系的。 我有我想要的入口点下面的Nginxconfiguration: location /mercurial/ { auth_basic "Authentication"; auth_basic_user_file /opt/nginx/html/.hg/file.password; proxy_pass http://localhost:8000/; } 这可以正常工作,除了在validation之后完全加载Mercurial实例。 我得到了我期望看到的页面,但/静态引用都被打破,我点击的链接(如其中一个变更集)也被中断(找不到它们,或者带我回到破碎的主页面)。 它试图find这些文件在我的IP地址/静态/ …这是不正确的。 mercurial ui目录位于我的文档根目录/ opt / nginx / html之外。 where / static的path是/ usr / […]

Nginx地图客户端证书REMOTE_USER为uWSGI回退到基本身份validation?

我使用nginx和uWSGI来为Mercurial服务; 它通过SSL进行基本身份validation(Nginx是SSL终结者;它不会传递给Hg),但是由于基本身份validation(即使通过SSL)的安全性有限,正如包括本站在内的各个地方所讨论的,我想允许用户也可以连接客户端证书,例如TortoiseHg支持的东西。 ssl_verify_client optional; … map $ssl_client_s_dn $ssl_client_s_dn_cn { default ""; ~/CN=(?<CN>[^/]+) $CN; }; … location / { uwsgi_pass unix:/run/uwsgi/app/hgweb/socket; include uwsgi_params; uwsgi_param SERVER_ADDR $server_addr; uwsgi_param REMOTE_USER $ssl_client_s_dn_cn; #uwsgi_param REMOTE_USER $remote_user; #auth_basic "Mercurial repositories"; #auth_basic_user_file /srv/hg/.htpasswd; } 所以我把CN当作用户名。 但是,如果没有客户端证书(最好不是在有证书但validation失败时 – 只是在这种情况下出现错误),如何使其回退到基本身份validation? 我发现一个例子是通过一个单独的服务器监听另一个端口,我想避免它: https : //github.com/winne27/nginx-cert-and-basic-auth/blob/master/nginx-example .conf文件 此外,在一些例子中,我已经看到了以下location检查: 他们有必要吗? if ($ssl_client_verify != SUCCESS) { return 496; […]

在推送到hgweb服务器时创build远程书签

关于书签有很多问题,但是他们都没有回答我的问题: 我应该怎么做才能允许在推送到我的hgweb服务器时创build书签? 以下是我在尝试推送书签时得到的内容: $ hg push -B feature1 pushing to http://local_server/hg/Project searching for changes no changes found exporting bookmark feature1 updating bookmark feature1 failed! 有什么我应该把.hgrc或hgwebconfiguration? 当书签已经存在于远程回购,然后他们更新,也创build书签推动作品bitbucket,所以我相信这是可能的。 问题解决了: 在系统中安装了两个Mercurial版本: /usr/bin/hg == v1.4 /usr/local/bin/hg == v2.2 虽然wchich hg打印/usr/local/bin/hg nginx正在使用/usr/bin/hg 。 感谢您的帮助。

Mercurial和nginx。 错误10054

当我推送文件到服务器,然后60秒后,我得到“urlopen错误[Errno 10054]”。 我想这是因为我推大文件。 我使用nginx web-server和fast-cgi进程。 什么nginx参数负责到60秒超时? 或者,也许我应该看到另一种方式?

试图让我的Raspberry Pi上的Mercurial成为一个远程仓库

这个问题的解决方法是在post的底部,在灰色背景的最后一个块中。 我试图让我的Raspberry Pi–运行Debian的股票版本,成为Mercurial的远程仓库。 我已经在我的台式机和笔记本电脑(运行Mageia)上build立了本地存储库,并且在本地工作正常。 我希望能够推动和推动对Pi的任何改变。 我已经在Pi上设置了OpenVPN,所以我可以访问它,并希望从世界上任何地方推送和推送我的软件。 所以,我遵循这些指示 : 一步一步的(使用Apache2作为我的Web服务器),当我尝试连接,如在步骤9.1.2与此: 通过将浏览器指向yourhost / hg /来检查它是否正常工作。 通过将pi / hg放入Firefox,我得到一个内部服务器错误。 (只需将pijoinFirefox,就可以使用默认的Apache消息,并且都是好的。) 我的Apache错误日志告诉我这个: Traceback (most recent call last): File "/var/hg/hgwebdir.cgi", line 18, in <module> application = hgweb(config) File "/usr/lib/python2.7/dist-packages/mercurial/hgweb/__init__.py", line 27, in hgweb return hgweb_mod.hgweb(config, name=name, baseui=baseui) File "/usr/lib/python2.7/dist-packages/mercurial/hgweb/hgweb_mod.py", line 34, in __init__ self.repo = hg.repository(u, repo) File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line […]

Mercurial unbundle错误:中止:…未知的捆绑软件版本20

我在Linux的Ubuntu 14.04 LTS和我使用Mercurial分布式SCM(版本3.3.2)。 我尝试使用命令行解压Mac OSX上制作的mercurial hg bundle: hg unbundle XXX.hg 中止:XXX.hg:未知的捆绑软件版本20 有没有人有什么线索是怎么回事? 谷歌的研究并没有提供太多的信息。

交互式程序有select地排除部分diff文件

有一个程序(最好在Cygwin上可用),我可以用它来交互地“过滤”一个差异文件? 即我想要像git交互式添加,除了我想操作一个diff文件。 我已经发现了filterdiff ,但我不认为它支持交互式编辑,只根据预定义的search条件包含/排除hunk。 我的使用场景:我在MQ中有一个补丁,我想按照这里的教程分解: https : //www.mercurial-scm.org/wiki/MqTutorial#Split_a_patch_into_multiple_patches 。 为了做到这一点,我必须编辑一个补丁文件,以便它只包含我想要的(许多)更改,而用文本编辑器手动执行此操作则是一种痛苦。 谢谢!

在LInux上,mercurial忽略创build/修改date的变化

在Windows上,只要文件本身没有改变,Mercurial就会忽略文件的创build/执行时间。 Linux显然不能做到这一点。 在我的工作中,有些人在Windows上工作,有些人在Linux上工作,而且我们在mercurial上有很多误报。 很好的例子是当我们从YML文件重新生成Doctrine模型的时候。 他们大多数保持不变,变化是在一两个,但都得到了再生,我必须通过所有的人,并确保它是安全的忽略他们的变化(恢复),所以他们不会搞乱mercurial承诺。 有什么办法可以让Linux像Windows那样看到这些文件? 顺便说一句:我已经检查过,它与EOL问题或UTF-8 BOM或其他隐藏字符无关。 只有时间戳发生变化。 提前致谢!

ssh-add,自动添加一个私钥

我有一个公私密的ssh密钥对(由ssh-keygen生成, 没有密码),我使用它与我的bitbucket帐户,特别是与一个mercurial存储库。 通常我使用ssh-add ~/.ssh/id_rsa手动在我的家用电脑上ssh-add ~/.ssh/id_rsa 。 我正在寻找一种方法来在每次启动时自动执行此操作。 有很多教程,但我仍然有一些问题。 我曾尝试过: 在我的~/.hgrc mercurial设置文件中添加ssh = ssh -i ~/.ssh/id_rsa -C 。 这一个不行。 使用以下内容创build~/.ssh/config sshconfiguration文件: Host bitbucket-ssh Hostname ssh://hg@bitbucket.org/… IdentityFile ~/.ssh/id_rsa 第二个也不行。 我错了什么? 我应该在每次启动时使用运行ssh-add的简单bash脚本吗? 提前致谢。

Mercurial hg克隆错误 – “中止:错误:名称或服务未知”

我已经安装了可用于Fedora Linux的最新的hg软件包。 但是,hg克隆报告错误。 hg clone http://localmachine001:8000/ repository 报告: "abort: error: Name or service not known" localmachine001是本地networking中的一台计算机。 我可以从我的Linux机器上ping没有任何问题。 我也可以使用相同的http地址并浏览现有的代码。 但是,克隆不起作用。 如果我从我的Macintosh机器执行相同的命令,我可以轻松地克隆存储库。 某些Internet资源build议编辑.hgrc文件,并向其添加代理: [http_proxy] host=proxy:8080 我已经尝试过,没有任何成功。 另外,我假设在这种情况下不需要代理,因为hg服务器机器在我的本地networking中。 任何人都可以推荐我该怎么做,或者如何跟踪这个问题? 先谢谢你。