3

我已经在这里这里阅读了相关的 SO 线程,以及 Github Linguist手动覆盖,但我似乎无法从语言统计中排除一些顶级目录。

在其当前的最新版本中,这个 repo显示了 HTML 代码的优势。单击 HTML 详细信息,将列出两个 HTML 文件:

  • packages/NUnit.2.5.7.10213/NUnitFitTests.html
    最后索引于 2016 年 12 月 30 日。

  • packages/NUnit.2.5.7.10213/Tools/NUnitFitTests.html
    最后索引于 2016 年 12 月 30 日。

但那些应该是排除路径的一部分.gitattributes

.nuget/* linguist-vendored
libs/* linguist-vendored
NUnit.Runners.2.6.4/* linguist-vendored
packages/* linguist-vendored             §§ <--- this one in particular
RubyInstallationFiles/* linguist-vendored

但在同一个详情页面中,左下角的排名清楚地显示 HTML 位于较低的位置,而 C# 位于顶部:

在此处输入图像描述

我究竟做错了什么?

附带问题:在许多更改中,我还从 .gitattribute 文件中删除了注释,因为我无法从任何参考中找到这些是否允许或什么。有谁知道你可以在那里发表评论吗?哪种格式?助教

4

2 回答 2

8

您可以检查属性git-check-attr并验证它们是否按照您认为的方式设置。

$ git check-attr --all -- packages/NUnit.2.5.7.10213/NUnitFitTests.html
$

好像没有属性。问题似乎packages/*是不是递归的。

$ git check-attr --all -- packages/NUnit.2.5.7.10213/
packages/NUnit.2.5.7.10213/: linguist-vendored: set

那么模式的规则是什么?与gitignore相同。

模式匹配路径的规则与 .gitignore 文件中的规则相同;参见 gitignore(5)。与 .gitignore 不同,否定模式是被禁止的。

您正在寻找的是/**.

尾随的“/**”匹配里面的所有内容。例如,“abc/**”匹配目录“abc”内的所有文件,相对于 .gitignore 文件的位置,具有无限深度。

把那个修复放在...

$ cat .gitattributes 
.nuget/** linguist-vendored
libs/** linguist-vendored
NUnit.Runners.2.6.4/** linguist-vendored
packages/** linguist-vendored
RubyInstallationFiles/** linguist-vendored

现在我们很好。

$ git check-attr --all packages/NUnit.2.5.7.10213/NUnitFitTests.html
packages/NUnit.2.5.7.10213/NUnitFitTests.html: linguist-vendored: set

这也回答了你关于评论的问题......

以 # 开头的行用作注释。对于以散列开头的模式,在第一个散列前放置一个反斜杠(“\”)。

于 2017-03-02T01:41:54.430 回答
1

可能会发生几件事:

语言统计信息尚未更新语言检测作业作为低优先级后台作业运行。语言统计信息可能需要一些时间才能更新(最多一天)。

您遗漏了一些 HTML 文件显示每种语言文件的搜索结果被缓存,并不总是最新的。因此,您的存储库中可能有一些您忘记提供给供应商的 HTML 文件。


如何调试?您最好的选择是在本地运行 Linguist。如果你有一个工作的 Ruby 环境,这很简单:

gem install github-linguist
linguist /path/to/your/repository --breakdown

此命令将输出语言学家结果以及为每种语言检测到的文件和计算的百分比。


注意:您的.gitattributes语法是正确的,不需要加倍星号。对于语言学家来说,路径的末尾不需要双星号。但是,您可能需要它们匹配通配符路径开头的多个目录,例如:

**/NSpec/Domain/Formatters/Templates/*
于 2017-08-12T21:11:55.873 回答