未从Github语言统计中排除的路径

时间:2017-03-02 00:36:46

标签: github github-linguist

我已经阅读了相关的SO帖子herehere以及Github Linguist manual override,但我似乎无法排除某些顶级目录语言统计。

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

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

  • 包/ NUnit.2.5.7.10213 /工具/ 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#位于顶部:

enter image description here

我做错了什么?

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

2 个答案:

答案 0 :(得分:4)

您可以使用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不同,禁止使用负面模式。

您正在寻找的是/**

  

尾随&#34; / **&#34;匹配里面的一切。例如,&#34; abc / **&#34;匹配目录&#34; abc&#34;内的所有文件,相对于.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

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

  

以#开头的行作为评论。对于以散列开头的模式,在第一个散列前加一个反斜杠(&#34; \&#34;)。

答案 1 :(得分:1)

有几件事情可以发生:

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

您错过了一些HTML文件显示每种语言文件的搜索结果都已缓存,并不总是最新的。因此,您的存储库中可能存在一些您忘记供应商的HTML文件。

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

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

此命令将输出Linguist结果,其中包含为每种语言检测到的文件和计算的百分比。

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

**/NSpec/Domain/Formatters/Templates/*