我正在尝试在我的Mac(笔记本电脑)和PC(桌面)之间共享存储库.项目有一些外部依赖项存储在每台机器的不同位置,并在Eclipse项目的.classpath文件中注明.共享项目更改时,依赖项会中断.我正在试图弄清楚如何防止这种情况发生.
我尝试过将.hgignore与以下设置一起使用,但没有成功:
syntax: glob
*.classpath
Run Code Online (Sandbox Code Playgroud)
基于此问题,似乎.hgignore文件不允许Mercurial忽略也提交到存储库的文件.还有另一种方法吗?配置项目以使其工作的其他方法?
There's a particular file in my repository, libraries/database.php, that I need ignored. However, I can't get the syntax to recognize the file - I've tried **/libraries/**/database.php
and libraries/database.php
in glob, and ^.libraries/database.php
in regex, but neither of them work. What should I do?
这是正常的吗?所以你只需要添加\.hgignore
到列表中忽略自己?
我正在将我的Mercurial存储库转换为Git.部分文件系统如下所示:
|-- .gitignore
|-- .hgignore
`-- var
|-- .dummy
|-- asdf
`-- log
|-- .dummy
`-- asdf
Run Code Online (Sandbox Code Playgroud)
我的.hgignore文件使用正则表达式.我的.hgignore文件的一部分如下:
^var/(?!\log|.dummy)
^var/log/(?!\.dummy)
Run Code Online (Sandbox Code Playgroud)
我想跟踪.dummy
文件而不是asdf
文件.hg status
收益:
? var/.dummy
? var/log/.dummy
Run Code Online (Sandbox Code Playgroud)
如何在.gitignore中获得相同的效果?我尝试过以下方法:
/var/**/*
!/var/.dummy
!/var/log/.dummy
Run Code Online (Sandbox Code Playgroud)
但这不会忽视var/asdf
所希望的.如何跟踪var/.dummy
和var/log/.dummy
而忽略var/asdf
和var/log/asdf
?
情况
$ cat .hgignore
.hgignore
$ hg status
M file1
M file2
M src/project.xml
Run Code Online (Sandbox Code Playgroud)
我不想跟踪,project.xml
所以我跑
echo "project.xml" >> .hgignore
Run Code Online (Sandbox Code Playgroud)
结果是
$ cat .hgignore
.hgignore
project.xml
$ hg status
M .hgignore
M file1
M file2
M src/project.xml
Run Code Online (Sandbox Code Playgroud)
所以.hgignore
即使它不应该被跟踪而且没有任何事情发生,现在它已被修改project.xml
.这是什么意思?
当我在vim中打开一些文件时,我试图进行一些更改,并且在提交和合并以及排序时,最终提出了:
alex@adebian:~/cs4290/p3$ hg status
R test
! project3_framework/protocols/.MI_protocol.cpp.swp
! project3_framework/protocols/.MSI_protocol.cpp.swp
Run Code Online (Sandbox Code Playgroud)
我.hgignore
在项目中添加了一个文件,其中包含以下内容:
syntax: glob
*.cpp.swp
Run Code Online (Sandbox Code Playgroud)
我已经关闭了我的vim会话(删除文件)但文件仍在显示.如何让mercurail忽略.swp文件?
我的(未来)Mercurial存储库中有很多对象(.o)文件.我有大部分内容的来源,但有些是由合作者下载/提供的,我没有来源.当然,版本化二进制文件很糟糕,但是我想为那些我没有源代码的文件做这件事(假设它们很少,如果有的话,会被修改,另一方面我我自己不能再生它们.
假设我有一个简单的方法来确定.o对应的.c是否存在(例如,总是在同一个文件夹中),是否有一种简单的方法可以实现这一点?
谢谢.
我创建了.hgignore文件,但在此之前我将项目结构发送到服务器.现在,hgignore不适用于之前发送的文件.我在某处读到我需要从跟踪列表中删除这些文件和目录,或者以某种"私有"方式添加它,但我无法弄清楚我是如何做到的.问题更加复杂,因为我写了sh脚本,它将这个结构的一部分复制到其他地方(项目由一些客户端应用程序和www服务器组成,这些服务器文件在每个hg push命令之后被复制到其他地方).所以我想忽略一些文件(但希望这些文件存在于服务器上,只需用一些配置推送一次)我想用我的sh脚本复制那些被忽略的文件(这个脚本中最重要的是我正在使用的事实'hg archive'来处理我要复制的内容).我希望这对某人来说是可以理解的:)
我试图让mercurial忽略差异.我根据Mercurial忽略文件执行了以下操作:
$ echo "*.diff" >> .hgignore
Run Code Online (Sandbox Code Playgroud)
状态现在给我一个错误(为了便于阅读,我添加了'...'):
$ hg status
abort: .../.hgignore: invalid pattern (relre): *.diff
Run Code Online (Sandbox Code Playgroud)
在Web上搜索错误消息会返回一些不相关的结果.关于如何忽略diff文件的任何想法?
gitignore
能够通过使用可选前缀来定义忽略异常!,例如,为了不忽略特定文件foo.dll
:
*.dll # Exclude all dlls
!foo.dll # Except for foo.dll
Run Code Online (Sandbox Code Playgroud)
我们如何定义此类例外hgignore
?