如何解决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不允许您在提交合并时排除文件。现在,您必须将修改后的文件放在一旁,还原它,然后在合并后再将其移回。欢迎补丁来处理这种情况!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。