Mercurial-指定某些文件应该总是被拉出,但是从不被推入?

问题描述

| 我的存储库中有些文件我希望能够在本地进行编辑。但是我从来不想将对这些文件的任何更改推送到服务器。我可以设置吗? 编辑:澄清一下,我确实想拉别人所做的更改。但是我不想推动我的更改。     

解决方法

        这并非易事。 Mercurial不会推和拉文件,它会推和拉变更集。您唯一的途径是永远不要提交那些文件。忽略它们不是一个选择,因为已经对其进行了跟踪(添加),并且跟踪总是覆盖忽略。 您可以在类似的提交中明确排除它们。
hg commit -X a-file-I-changed -X another-file 
而且由于您最终会忘记这样做,因此可以在hgrc中设置别名:
[alias]
mycommit = -X a-file-I-changed -X another-file 
但是,我会费劲地猜测您正在谈论的是诸如数据库设置文件之类的配置文件。最好的处理方法是不提交
database.conf
(或任何它称为的东西),而是提交
database.conf.sample
,然后将启动脚本将database.conf.sample复制到database.conf(如果尚不存在)。这是正常的做法。     ,        如果您的更改很大,请考虑在Mercurial队列中对其进行修补。您可以“ 4”更改,拉出他们的更改,然后“ 5”将更改返回到工作目录。如果这是您不愿意丢失的更改,则可以使队列成为其自己的存储库,然后将该存储库克隆到其他位置。     ,        一个Ry4an写入,您可以在提交时排除该文件。我的一位同事做了一个简单的扩展,可以在简单的情况下自动执行此操作:   https://www.mercurial-scm.org/wiki/ExcludeExtension      https://bitbucket.org/aragost/exclude/ 非简单的情况是合并-Mercurial不允许您在提交合并时排除文件。现在,您必须将修改后的文件放在一旁,还原它,然后在合并后再将其移回。欢迎补丁来处理这种情况!     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...