- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试使用 git2go 输出文件列表,以及它们在存储库中的最新作者和最近提交日期。使用 tree.Walk
循环访问文件似乎很简单:
package main
import (
"time"
"gopkg.in/libgit2/git2go.v25"
)
// FileItem contains enough file information to build list
type FileItem struct {
AbsoluteFilename string `json:"absolute_filename"`
Filename string `json:"filename"`
Path string `json:"path"`
Author string `json:"author"`
Time time.Time `json:"updated_at"`
}
func check(err error) {
// ...
}
func getFiles(path string) (files []FileItem) {
repository, err := git.OpenRepository(path)
check(err)
head, err := repository.Head()
check(err)
headCommit, err := repository.LookupCommit(head.Target())
check(err)
tree, err := headCommit.Tree()
check(err)
err = tree.Walk(func(td string, te *git.TreeEntry) int {
if te.Type == git.ObjectBlob {
files = append(files, FileItem{
Filename: te.Name,
Path: td,
Author: "Joey", // should be last committer
Time: time.Now(), // should be last commit time
})
}
return 0
})
check(err)
return
}
我无法解决的问题是,我应该采用哪种方法?我可以在传递给 tree.Walk
的函数中,根据 git.TreeEntry
的有限信息计算提交吗?或者我是否需要单独构建一个提交列表以及相关文件并以某种方式交叉引用它们?
最佳答案
log example显示如何按路径过滤 revwalk。它涉及将每个提交与它的父项进行比较,并将路径作为 pathspec 参数。这不是微不足道的。
关于git2go : Listing files with the latest committer and commit date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42564667/
将存储库从 Git 转换为 Mercurial 会导致在每条日志消息中加载虚假的“提交者:”行。我想不出不生成这些的方法。如果我转换 SVN 存储库,则不会添加这些行。这似乎只是一个 git 的东西。
阅读文档,我发现我可以通过结合 git config user.name 来预测 Git 将使用什么作为“提交者”和 git config user.email连同 $GIT_COMMITTER_NA
我正在尝试使用 git2go 输出文件列表,以及它们在存储库中的最新作者和最近提交日期。使用 tree.Walk 循环访问文件似乎很简单: package main import ( "tim
我正在使用 github api,试图找到我在特定日期的所有提交。 正如预期的那样,此查询返回我的所有提交: https://api.github.com/search/commits?q=commi
当尝试从 bitbucket 移动到 github 时,我在一次提交中遇到了 fatal error : error in commit d8b1774aa7bd98c6494a1e31acef943
当尝试从 bitbucket 移动到 github 时,我在一次提交中遇到了 fatal error : error in commit d8b1774aa7bd98c6494a1e31acef943
我尝试将最新提交的提交者日期设置为其作者日期。通常这适用于 git rebase --committer-date-is-author-date HEAD~1。不幸的是只有一个提交,这意味着我必须使用
Git 推送被拒绝并显示以下错误消息: expected committer email '' but found 'karan@xyz.com' 我已经试过了: 在 .gitconfig 文件中设置
我正在尝试设置 spark.sql.parquet.output.committer.class而且我所做的一切似乎都没有使设置生效。 我试图让许多线程写入同一个输出文件夹,这将与 org.apach
我正在尝试使用 Apache Spark 将 Parquet 数据写入 AWS S3 目录。我在 Windows 10 上使用我的本地计算机,但没有安装 Spark 和 Hadoop,而是将它们添加为
关闭。这个问题需要debugging details .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 上个月关闭。 Improve this questio
我是一名优秀的程序员,十分优秀!