Tom*_*Tom 65 mercurial ignore hgignore
我试图让Mercurial忽略配置文件,但我没有让它工作.
我在我的服务器上创建了一个存储库,hg init并将该存储库克隆到我的计算机上.然后,我希望能够编辑configurationj文件,但不能将这些更改提交回服务器.
我尝试.hgignore在我的克隆的根目录中创建一个,但Mercurial用a标记文件,?无论我是否提交它仍然继续记录我的配置更改.
我.hgignore在错误的位置创建文件,是否需要提交此文件?是否需要在我在服务器上初始化存储库之前创建它?
Nic*_*zet 69
回购利用:
$ mkdir test
$ cd test
$ hg init
Run Code Online (Sandbox Code Playgroud)
创建一个文件
$ touch foo
$ hg st
? foo
Run Code Online (Sandbox Code Playgroud)
现在在repo的根目录中创建一个.hgignore:
$ echo 'foo' > .hgignore
Run Code Online (Sandbox Code Playgroud)
foo 现在被忽略了:
$ hg st
? .hgignore
Run Code Online (Sandbox Code Playgroud)
请注意,.hgignore不需要为此提交.
如果配置文件和.hgignore(忽略配置文件)都在repo中提交,则是,将跟踪配置文件更改(换句话说,.hgignore将不起作用)
创建配置并提交它
$ touch config
$ hg ci config -Am 'adding conf'
Run Code Online (Sandbox Code Playgroud)
忽略它:
$ echo 'config' >> .hgignore
Run Code Online (Sandbox Code Playgroud)
提交.hgignore:
$ hg ci .hgignore -Am '.hgignore'
Run Code Online (Sandbox Code Playgroud)
然后,如果你克隆回购:
$ cd ..
$ hg clone test other-user
$ cd other-user
Run Code Online (Sandbox Code Playgroud)
并修改配置:
$ echo 'new config param' >> config
Run Code Online (Sandbox Code Playgroud)
然后hg将显示更改:
$ hg st
M config
Run Code Online (Sandbox Code Playgroud)
您可能希望在存储库中拥有一个版本化的主要默认配置文件, global.cfg
并且您将要求用户创建local.cfg他们将放置其本地设置的位置.并且您的脚本将提供local.cfgif if present:本地设置覆盖全局设置.当然,添加一行.hgignore来忽略local.cfg;)
替代方案:没有全局配置文件,只有config.example用户在本地复制和修改.这里的问题是你不会轻易跟踪版本之间的变化.
Jus*_*ove 29
即使您忽略了文件,Mercurial也会在将它们添加到存储库后对其进行跟踪.
要从存储库中删除配置文件,您可以使用
hg remove -Af file.cfg
Run Code Online (Sandbox Code Playgroud)
这将从存储库中删除文件(一旦提交),而不删除本地文件.请参阅hg help remove 但是,现在在repo中记录了删除,当您或其他任何人在该修订版本中进行更新时,Mercurial将删除该文件.
您也可以重命名它并让人们将主副本复制到其本地文件,但您需要协调本地文件的更新.
hg rename file.cfg file.cfg.example
Run Code Online (Sandbox Code Playgroud)
Joh*_*don 15
将.hgignore文件本身添加到.hgignore文件:
syntax: glob
.hgignore
Run Code Online (Sandbox Code Playgroud)
或者,只需检查.hgignore文件到您的本地克隆...
| 归档时间: |
|
| 查看次数: |
47319 次 |
| 最近记录: |