1

我正在使用 libgit2 的 Go 绑定 git2go - godoc.org上的文档),我想知道是否可以获得 blob 的文件模式(例如“100644”)。

背景:我想解析符号引用,似乎符号链接有一个文件模式,符号链接120000的内容是我想要获得的原始文件的(相对)路径。

4

2 回答 2

4

我刚刚推送了一个提交,它将Filemode条目添加到结构中。我不太清楚为什么在第一次添加时错过了它。

一旦你有了你的var entry TreeEntry,你可以entry.Filemode用来获取模式。还定义了一些常量,因此您不必使用大的八进制数或 unix 函数。对于符号链接,它是git.FilemodeLink.

你应该记住这是关于模式和条目类型的,因为 git 不存储权限本身,你不应该将任何权限读取到这些值中。

于 2013-09-09T12:52:37.123 回答
0

我不确定我是否正确理解了你的问题。无论如何,也许您正在寻找:

func Lstat(name string) (fi FileInfo, err error)

Lstat 返回描述命名文件的 FileInfo。如果文件是符号链接,则返回的 FileInfo 描述符号链接。Lstat 不会尝试跟踪该链接。如果有错误,它将是 *PathError 类型。

func Stat(name string) (fi FileInfo, err error)

Stat 返回描述命名文件的 FileInfo。如果有错误,它将是 *PathError 类型。

于 2013-09-09T07:38:22.867 回答