libgit2 / git2go:如何获取blob的文件模式?

时间:2013-09-09 07:06:24

标签: go libgit2

我正在使用libgit2git2go - documentation on godoc.org)的Go绑定,我想知道是否有可能获得blob的文件模式(例如“100644”)。

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

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分: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。