比较 2 次提交

Ahm*_*ama 4 git libgit2 rugged

我没有找到任何关于获取两个文件之间差异的文档。我使用下面的代码使用坚固的方式提交文件

@repo=Rugged::Repository.new($reponame)
@sha=@repo.write('D:\Ruby\MyGitRepo\file1.txt','blob')
puts @sha
commit = @repo.lookup(@sha)
Run Code Online (Sandbox Code Playgroud)

如何在崎岖中看到同一对象的两次提交之间的差异?

nul*_*ken 5

在 git 中比较两个提交的方法依赖于比较过程。

brianmario最近封装了libgit2的 diffing 迭代器功能。请注意,此功能尚未合并。

下面是其未来用途的高级示例。

r = Rugged::Repository.new('.')
diff = r.diff(commit1, commit2)

diff.deltas.each do |delta|
  # ...
  delta.hunks.each do |hunk|
    # ...
    hunk.lines.each do |line|
      # ...
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

有关建议的 diff 实现和使用的更多信息,请参阅此拉取请求。