2016-06-07 3 views
1

При запросе символической ссылки через API GitHub я получаю разные результаты, если символическая ссылка указывает на файл, а не на каталог. Последний более хорошо себя ведет в том, что он возвращает "type": "symlink" как часть своего JSON, тогда как первый возвращает "type": "file". Пример file symlink, пример directory symlink.API GitHub - Как узнать, действительно ли файл является символической ссылкой?

Это очень запутанно, когда символическая реклама рекламирует себя как файл, , так как 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

Смежные вопросы