2014-12-01 106 views
1

除去在我们公司Untrack文件,我们刚开始使用水银,我们正面临着以下问题:没有从远程仓库

我们在远程存储库中的某些文件是由每个开发人员改变添加一些本地配置但这些文件绝不能在远程存储库中更改。

有没有办法告诉水银停止跟踪这些文件在本地,而又不使远程储存的任何更改文件?

我们试图用hg forget <file>但据我所知,这将从远程存储库中删除该文件。

我们也尝试将这些文件添加到.hgignore文件,但不知何故文件没有被真正忽略,我猜Mercurial是这么做的,因为这些文件已被跟踪。

到目前为止,我们只是在执行提交时忽略这些文件,并且我们使用shelve在更新后维护和恢复本地更改,但这开始是一项非常乏味的任务。

在此先感谢您的帮助。

编辑:虽然它没有完全解决我们想要的,但接受的答案是最好的方法。我们的问题可能是由于糟糕的设计。

回答

3

如果你想改变的文件,例如,config.cfg,检查在config_template.cfg,忘记config.cfg如果已经跟踪,并添加config.cfg忽略列表。然后,生成规则可以从模板创建如果config.cfg它不存在

,用户届时将有一个启动的config.cfg,他们可以在没有检查它定制。

+0

谢谢!这听起来像是一个非常好的解决方案。我会检查这是否可能,因为有些文件用于部署,我必须确定我们不会破坏某些东西。 – 2014-12-02 18:26:40

1

你可以使用配置[defaults]部分添加一些“--exclude”选项通常命令(见我的回答Mercurial hg ignore does not work properly ) 更多细节。

但是..要小心,静静地忽略对文件的修改并且此[defaults]部分已被标记为已弃用(它仍存在于2.9.2中)是危险的。

+0

感谢!我们正在排除将文件从现在的任何承诺,但是我们仍然有,同时将问题和更新,我们要搁置我们的变化和更新完成后恢复它们。 – 2014-12-02 18:23:33

1

恕我直言,这是一个错误的做法有在每个人的需求反正改变了库中的文件 - 这是你不想拥有它跟踪所有的指示。

更改文件config.sample,和你的程序中创建一个默认的配置在第一次启动(因此当没有现有的配置文件),并有充分的开发利用配置文件作为他/她需要。

而我现在只看到Mark Tolnen的回答:)