- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个受版本控制的项目,比如/project
和位于.hgignore
的/project/.hgignore
。它的语法似乎是正确的,但是问题是,对于某些用户,此文件将被完全忽略,而对于其他用户,仍将对其进行分析。
说,运行
su -l dipsy -c 'cd /project; hg status'
su -l laalaa -c 'cd /project; hg status'
/project/.hgignore
中列出的文件。
~/.hgrc
文件对于两个用户而言都是相同的,因此hg showconfig
的输出也是如此。 /project/.hgignore
并对其进行写入。 .hgignore
-s时获取调试输出吗?
hg --debug status
和
hg status --debug
不会打印任何有意义的内容。
hg status
(结果有所不同):
# su -l dipsy -c 'cd /project; strace hg status 2>&1 >/dev/null | grep hgignore'
open("/project/.hgignore", O_RDONLY|O_LARGEFILE) = 4
fstatat64(4, ".hgignore", {st_mode=S_IFREG|0664, st_size=214, ...}, AT_SYMLINK_NOFOLLOW) = 0
write(1, "M .hgignore\nM foo/bar/baz"..., 4096) = 4096
# su -l laalaa -c 'cd /project; strace hg status 2>&1 >/dev/null | grep hgignore'
write(1, "M .hgignore\nM foo/bar/baz"..., 4096) = 4096
hg status --ignore
(结果相同):
# su -l dipsy -c 'cd /project; strace hg status --ignore 2>&1 >/dev/null | grep hgignore'
open("/project/.hgignore", O_RDONLY|O_LARGEFILE) = 3
fstatat64(3, ".hgignore", {st_mode=S_IFREG|0664, st_size=214, ...}, AT_SYMLINK_NOFOLLOW) = 0
# su -l laalaa -c 'cd /project; strace hg status --ignore 2>&1 >/dev/null | grep hgignore'
open("/project/.hgignore", O_RDONLY|O_LARGEFILE) = 3
fstatat64(3, ".hgignore", {st_mode=S_IFREG|0664, st_size=214, ...}, AT_SYMLINK_NOFOLLOW) = 0
/project/.hgignore
时会读取
hg status --ignore
,而在仅运行
hg status
时会跳过。 WTF?
最佳答案
答案1-Dirstate存储库损坏
昨晚我也遇到了这个问题,它使我无所适从,试图找出原因。我最终在dirstate repository corruption上找到了一个Wiki页面。涉及运行hg verify
的第一步无效。第二步,克隆存储库,成功了!然后,我删除了原始的.hg目录,并将克隆的.hg目录复制到原始位置。
我猜在您的答案中,涉及提交/推送的步骤可能已修复了存储库中的损坏。
答案2-使扩展程序错误化
在我最初解决问题并发布答案之后,问题继续出现,但是以另一种方式出现:Mercurial似乎部分遵守了.hgignore文件,但是我对此所做的任何更新都没有生效。我碰巧正在创建一个脚本来创建几个相关的存储库,不久后我发现我的机器内存不足。我运行了一个ps -e
,所有这些hg
进程都卡在内存中。所有这些进程都是inotify服务器。
Inotify是Mercurial随附的扩展,它可以订阅工作目录中的所有更改,以提高大型存储库上hg status
的性能。 inotify extension page提到“绝对必须将其视为实验性的”。看来inotify服务器中的某些错误阻止Mercurial意识到.hgignore文件已被更新,因此hg status
始终使用过时的.hgignore版本。
为了尝试我的理论并暂时让hg刷新.hgignore,我执行了以下命令:
killall -s 2 hg
killall
类似于
kill
,但是将信号发送给具有给定名称的所有进程。
-s 2
参数发送INT信号,允许inotify正常关闭。)
[extensions]
hgext.inotify = !
!
指示Mercurial禁用扩展名)。我的存储库非常小,以至于我现在不需要它。
关于mercurial - .hgignore没有为特定用户解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4286430/
我正在寻找一种方法来修改我的 .hgignore 文件以忽略除“Test/”或“Tests/”子文件夹中的文件之外的所有“Properties/AssemblyInfo.cs”文件。 我尝试使用否定的
我需要一个 .hgdontignore 文件:-) 来包含某些文件并排除目录中的其他所有内容。基本上我只想包含特定目录中的 .jar 文件,而不包含其他文件。我怎样才能做到这一点?我对正则表达式语法不
我正在尝试为项目设置 .hgignore。 .hgignore 文件位于项目根目录中 .hg 文件旁边。状态的输出如下,我想忽略 sdcard.cydsn\ARM_GCC_441\Debug 和 sd
我创建了 .hgignore 文件,但在此之前我将项目结构发送到服务器。现在 hgignore 不适用于那些之前发送的文件。我在某处读到我需要从跟踪列表中删除这些文件和目录或以某种“私有(privat
我用谷歌搜索了一下,但没有找到关于该主题的任何建议。 .hgignore 中可以使用多行正则表达式吗?我正在编写一个 magento 模块,并且不想在存储库中仅包含我的模块代码,因此我想出了这个正则表
__ 大家好, 我的 hgignore 文件包含以下行: syntax:regexp ^data/dyn/.* ^data/config/.* ^data/temp/.* ^data/mediapoo
__ 大家好, 我的 hgignore 文件包含以下行: syntax:regexp ^data/dyn/.* ^data/config/.* ^data/temp/.* ^data/mediapoo
当我创建一个新的存储库时,我可以要求 TortoiseHG 给我一个 .hgignore 文件。有没有一种方法可以让我自定义该文件的外观,而不必每次都去某个地方手动获取一个文件? 最佳答案 这是一个老
我已经跟踪了不想再跟踪的文件。所以我更新了 .hgignore但这不会导致他们被遗忘。除了手动hg forget每个人都有其他选择吗? 最佳答案 使用 Mercurial 2.0,您可以指定 file
使用 Mercurial,我需要忽略除目录“tests”和“languages”以及这些目录中的文件之外的所有文件和目录。这一切都必须用正则表达式和 .hgignoere 来完成 文件: 测试\垃圾.
我试图用.hgignore忽略项目中的文件,但无法弄清楚。该文件位于app/views/patterns/_changes.erb中(相对于项目的根目录,.hgignore所在),但我尝试执行的任何操
我有一个 NetBeans 项目,Mercurial 存储库位于项目根目录中。我希望它忽略除“src”和“test”文件夹的内容以及 .hgignore 本身之外的所有内容。 我不熟悉正则表达式,也想
我对 Hg 很陌生,所以请原谅我的无知...... 我在 Windows 7 中使用 Mercurial 和 TortoiseHg。我创建了一个具有以下文件夹结构的存储库: -- My repo di
GWT 应用程序(在 Eclipse 中开发)的源代码管理忽略文件中的典型条目是什么? 最佳答案 我会推荐: 你leave the eclipse files (.project, .classpat
我在我的 .hgignore 模式中有“*.pyc” .pyc 文件确实在根级别被忽略,但不在子目录中。 有任何想法吗? 最佳答案 默认情况下,模式是 python 正则表达式。在路径的每个组件中搜索
我想知道 .hgignore 文件放在哪里;在主存储库中还是每个程序员都应该在他的克隆副本中拥有它? 请说清楚。谢谢。 最佳答案 您应该将该文件放在存储库的根目录下。 看 : https://www.
我有一个我似乎无法理解的问题。我在 Windows 上使用 TortoiseHg(版本 0.7.5),但在 Linux 上我有同样的问题。这里是: 我的 .hgignore文件: syntax: re
我将 mercurial 用于 php 项目和我的 .hgignore文件不工作。它应该放在 .hg/文件夹,不是吗? .hgignore /.hg/.hgignore file # Allow *.
.hgignore 本身是受版本控制的。我添加了一些我想忽略的对象目录,但我不想将这些更改提交到 .hgignore。我该怎么办? 最佳答案 将以下内容添加到 repo 的 .hg/hgrc : [u
我正在使用 Mercurial 管理 $HOME,以保持我的 dotfiles 良好并被跟踪,或者至少是对我来说重要的那些。 然而, ~ 中有大量不需要跟踪的文件和目录,并且该集合不断变化和不断增长。
我是一名优秀的程序员,十分优秀!