我的存储库中有某些文件我希望能够在本地编辑。但我绝不想将这些文件的任何更改推送到服务器。我可以设置它吗?
编辑:澄清一下,我确实希望得到其他人所做的改变。但我不想推动我的改变。
答案 0 :(得分:2)
这不容易。 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(如果它还没有)存在。这是正常做法。
答案 1 :(得分:2)
如果您的更改很重要,请考虑将其作为Mercurial Queue中的补丁。您可以pop
更改,撤消更改,然后push
将您的更改重新发送到工作目录。如果这是一个你无法忍受的变化,你可以让队列成为它自己的存储库,然后在其他地方克隆那个存储库。
答案 2 :(得分:1)
Ry4an写道,您可以在提交时排除该文件。我的一位同事做了一个简单的扩展,在简单的情况下将自动化:
非简单的情况是合并 - Mercurial不允许您在提交合并时排除文件。现在,您必须将修改后的文件移到一边,还原它,然后在合并后将其移回。欢迎补丁来处理这种情况!