与Mercurial混淆的情况

| 我处于这种情况: 首先,我刚开始使用水银。 我有一台服务器,其中有一个我的django项目。 我想从本地计算机上服务器上的项目目录克隆存储库。 我已经做到了:
user@host> cd myproject
user@host> hg init
user@host> hg add
user@host> hg commit -m \"Added initial files.\"
我已经用1英镑克隆了回购协议。没关系,在我的计算机上,我已经拥有服务器上的所有文件。 现在,我想编辑ѭ2来设置本地环境(数据库引擎和其他内容),但是我不想更新服务器上的ѭ2。编辑后,
hg status
返回我
M settings.py
。即使我在本地存储库中设置了“ 6”,它也不起作用。工作目录中的目录
static
media
和数据库
my_database
相同。我如何设置Mercurial不更新并在服务器中提交? 我想在我的计算机和服务器上工作,并使所有两个存储库始终保持同步。 有人可以向我解释我该怎么办?我有点困惑。 谢谢!     
已邀请:
它不能直接回答您的问题,但是我发现管理本地设置的一种好方法是将它们放在一个单独的文件中(您的SCM忽略)并将它们加载到settings.py中。 例如,将其放在settings.py的底部:
 try:
   import settings_local
 except ImportError:
   pass  # Ignore when file doesn\'t exist
settings_local.py
中的所有内容将覆盖
settings.py
中的值。 编辑: 更直接地针对您的问题,请在Mercurial忽略文件下查看此答案。似乎不支持忽略已经版本化的文件。之前我已经使用Subversion做到了,所以我可以了解您为什么要尝试它。其他答案有一些解决方法。     
首先,如果已经提交了
settings.py
,则忽略它不会改变它。您需要先
$ hg remove settings.py
$ echo \'glob:settings.py\' > .hgignore
(我知道,只是将文件名附加到
.hgignore
并不会执行任何操作,但是我知道这样做有不同的格式。无论如何,也请注意这一点。)     
我可以回答您问题的一部分: 如果文件与忽略文件(.hgignore)中的模式匹配,则它已经被mercurial跟踪了,则不会被忽略。这说明了为什么不忽略对settings.py的编辑;这是因为settings.py已被跟踪。当您执行命令
hg add
时,会将所有文件添加到存储库中。也就是说,Mercurial开始跟踪所有这些对象(当时被忽略的所有对象除外)。     

要回复问题请先登录注册