在GitHub中列出文件大小

在GitHub中列出文件大小,github,Github,GitHub文件浏览器列出文件名和上次提交的信息: 有没有办法将每个文件的大小添加到这些列表中?没有,GitHub文件浏览器不能以这种方式配置 收回这些额外的信息意味着为GitHub传输大量额外的数据(对于每笔回购协议的每页),所以我不确定这是否是您近期内会看到的功能 请注意,尽管如此(这意味着大小信息存在并且可以使用,而不仅仅是浏览文件) 将代码与标记为XML的单词“element”匹配,该单词正好有100个字节 如果没有官方的方法,这里有一个用于添加尺寸信息的bookmarklet(在

GitHub文件浏览器列出文件名和上次提交的信息:


有没有办法将每个文件的大小添加到这些列表中?

没有,GitHub文件浏览器不能以这种方式配置

收回这些额外的信息意味着为GitHub传输大量额外的数据(对于每笔回购协议的每页),所以我不确定这是否是您近期内会看到的功能


请注意,尽管如此(这意味着大小信息存在并且可以使用,而不仅仅是浏览文件)

将代码与标记为XML的单词“element”匹配,该单词正好有100个字节


如果没有官方的方法,这里有一个用于添加尺寸信息的bookmarklet(在IE中不起作用):

javascript:

未列明来源:

(函数(){
“严格使用”;
//分析当前GitHub repo url。示例:
//回购根:/Sphinxxxx/香草采摘器
//子文件夹:/Sphinxxxx/vanilla picker/tree/master/src/css
//提交时的子文件夹:/Sphinxxxx/vanilla picker/tree/382231756aac75a49f046ccee1b04263196f9a22/src/css
//标签处的子文件夹:/Sphinxxxx/vanilla picker/tree/v2.2.0/src/css
//
//如果适用,commit/branch/tag的名称始终是url路径中的第四个元素。
//在这里,我们把它放在“ref”变量中:
常量[/*前导斜杠*/,所有者,repo,/*“tree”*/,ref,…path]=window.location.pathname.split('/');
//创建URL以查询GitHub的API:https://developer.github.com/v3/repos/contents/#get-内容
//例如:
//  https://api.github.com/repos/Sphinxxxx/vanilla-picker/contents/src/css?ref=382231756aac75a49f046ccee1b04263196f9a22
常量查询=['https://api.github.com/repos'所有者,回购,'内容'].concat(路径| |[]),
url=query.join('/')+(ref?'?ref='+ref:'');
console.log(url);
//https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
fetch(url).then(r=>r.json())
.then(j=>Array.isArray(j)?j.forEach(handleFileInfo):console.warn(j));
函数handleFileInfo(信息){
//控制台日志(信息);
const link=document.querySelector(`div[role=“rowheader”]a[title=“${info.name}]”);
const timeCol=link.closest('div[role=“row”]”)。lastElementChild;
const sizeCol=document.createElement('div');
sizeCol.style.width='5em';
如果(info.type==='file'){
//http://stackoverflow.com/a/17663871/1869660
//https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Parameters
sizeCol.textContent=(info.size/1024).toLocaleString('en-US',{minimumFractionDigits:1,maximumFractionDigits:1})+'KB';
sizeCol.style.textAlign='right';
sizeCol.style.whiteSpace='nowrap';
}
timeCol.insertAdjacentElement('beforebeagin',sizeCol);
}
})();

从第一段代码开始,或者复制并粘贴到浏览器控制台。

对于Chrome浏览器,存在一个扩展:


Nice.+1.我希望这不会对API造成负担,我知道有一个调用速率限制,所以如果浏览太多…那就不行了。@VonC-好的观点!看起来限制是每小时60个请求(没有大小限制):它是否适用于私人回购。我遇到了404 XHR错误。@RaymondPeng-通过API访问私人回购可能需要身份验证,而这个书签小程序不需要身份验证:谢谢!你能将它更新到最新的Github布局吗?它似乎不再工作了。谢谢,但我看不出会是什么样子“大量的额外数据”。你能详细说明一下吗?@Sphinxxx简单:将这些额外的位乘以GitHub每天提供的页面数,你将获得GB的额外数据到transger(更不用说计算和缓存)。添加任何额外的信息(如大小)如果不是琐碎的话。如果你想更多地了解GitHub的可伸缩性问题,听我说,如果你想拥有一个流行的web应用程序,你必须传输信息。这就是我们付钱的原因。我非常希望他们有比“通过网络发送文件大小信息太贵”更好的理由“。他们可以在默认情况下关闭它,我们将通过打开它的数字来了解有多少人需要它。这是我在探索回购协议时经常遇到的麻烦。嗯,“大量额外数据”是相对的。这样的信息可以被缓存。这项功能基本上取决于github。@Blauhirn我同意,但不幸的是,在github规模上,它不是相对的,而且非常庞大。加上缓存意味着你需要保持缓存信息的一致性,考虑到GitHu托管的Git存储库,这一点并不简单b本身…通过DGit和Spoke分发(!)。因此…这确实取决于GitHub,但他们比我好:这不是一项琐碎的任务。对它的功能要求: