2016-06-07 54 views
1

当通过GitHub API查询符号链接时,如果符号链接指向文件而不是目录,则会得到不同的结果。后者更好地表现为返回"type": "symlink"作为其JSON的一部分,而前者返回"type": "file"。示例file symlink,示例directory symlinkGitHub API - 如何找出文件是否实际上是符号链接?

当一个符号链接宣告自己是一个文件时,它很混乱,作为GET它的下载URL只会让你成为符号链接的目标而不是文件内容

如何判断文件是否实际上是符号链接,而不是真实文件?

此外,文件符号链接的返回类型“文件”的行为是一个彻底的错误?这看起来不正确。

回答

0

Git中的符号链接不关心目标是文件还是目录。 (或者即使目标存在。)

的API是返回“文件”的符号链接问题中的文件是不一个符号链接。这是一个普通文件。克隆你的仓库后:

% ls -Flas muzhack/files/littleBitsMidiNotes.ino 
4 -rw-r--r-- 1 user group 3247 Jun 7 12:00 muzhack/files/littleBitsMidiNotes.ino 

% git ls-files --stage muzhack/files/littleBitsMidiNotes.ino 
100644 08918243048ae4a4f57e69a34776e9a0bd1ec7af 0 muzhack/files/littleBitsMidiNotes.ino 

100644(由ls-files返回的第一个字段)的方式表示这是一个普通的文件。相反,GitHub的是报告为一个符号链接进入,事实上,一个符号链接:

% ls -Flas muzhack/files/adapter-board-files 
4 lrwxr-xr-x 1 user group 25 Jun 7 12:00 muzhack/files/[email protected] -> ../../adapter-board-files 

% git ls-files --stage muzhack/files/adapter-board-files 
120000 ef17a5e7b4bef4e51f19dc6b4c360c95cbb223c8 0 muzhack/files/adapter-board-files 

所以GitHub的API似乎正确报告此信息。

+0

对不起,我暂时将符号链接到一个普通文件中,以解决这个错误。即将更改回到符号链接:) – aknuds1

+0

好的,文件恢复到符号链接。走。 – aknuds1

+0

如果你打开https://github.com/aknuds1/Littlebits-Arduino/blob/master/muzhack/files/littleBitsMidiNotes.ino,你会发现它被GitHub报告为符号链接。 – aknuds1