我正在使用 libgit2 的 Go 绑定( git2go - godoc.org上的文档),我想知道是否可以获得 blob 的文件模式(例如“100644”)。
背景:我想解析符号引用,似乎符号链接有一个文件模式,符号链接120000
的内容是我想要获得的原始文件的(相对)路径。
我正在使用 libgit2 的 Go 绑定( git2go - godoc.org上的文档),我想知道是否可以获得 blob 的文件模式(例如“100644”)。
背景:我想解析符号引用,似乎符号链接有一个文件模式,符号链接120000
的内容是我想要获得的原始文件的(相对)路径。
我刚刚推送了一个提交,它将Filemode
条目添加到结构中。我不太清楚为什么在第一次添加时错过了它。
一旦你有了你的var entry TreeEntry
,你可以entry.Filemode
用来获取模式。还定义了一些常量,因此您不必使用大的八进制数或 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 类型。