libgit2の Go バインディング( git2go - godoc.org のドキュメント) を使用していますが、ブロブのファイル モード (「100644」など) を取得できるかどうか疑問に思っています。
背景: シンボリック参照を解決したいのですが、シンボリック リンクにはファイル モードが120000
あり、シンボリック リンクの内容は取得したいオリジナルの (相対) パスであるようです。
Filemode
エントリを構造体に追加するコミットをプッシュしました。最初に追加したときになぜ見逃されたのか、よくわかりません。
入手したら、モードを取得するためにvar entry TreeEntry
使用できentry.Filemode
ます。いくつかの定数も定義されているため、大きな 8 進数や UNIX 関数をいじる必要はありません。シンボリックリンクの場合、git.FilemodeLink
.
これはエントリのモードとタイプに関するものであることを覚えておく必要があります。git はアクセス許可自体を保存せず、これらの値にアクセス許可に関するものを読み取ってはならないからです。
私はあなたの質問を正しく理解しているかどうか確信が持てません。とにかく、多分あなたは探している:
func Lstat(name string) (fi FileInfo, err error)
Lstat は、指定されたファイルを説明する FileInfo を返します。ファイルがシンボリック リンクの場合、返される FileInfo はシンボリック リンクを記述します。Lstat はリンクをたどろうとはしません。エラーがある場合、タイプは *PathError になります。
func Stat(name string) (fi FileInfo, err error)
Stat は、指定されたファイルを説明する FileInfo を返します。エラーがある場合、タイプは *PathError になります。