Performing a “fast-forward” merge with Rugged

寵の児 提交于 2019-12-01 08:56:23

问题


Using Rugged, what's the canonical way to perform a fast-forward "merge"?


From here I found one possible lead:

# Move branch forward
# Since there's no fast-forward merge in this lib yet, do it by hand.
br = repo.branch "master"
br.move 'master-old', true if br != nil
repo.create_branch 'master', commit_sha
#br.delete! # No real harm in this hanging around

But I'm curious if there's room for improvement here.


回答1:


There is no need for an operation called "fast-forward merge" libgit2 since a so-called ff-merge is updating the current branch to whatever commit is on the other branch, which does exist.

repo.checkout_tree(other_branch.target)
repo.references.update(repo.head.resolve, other_branch.target_id)

will update the workdir to what the other side has, and then set the current branch to point to whatever the commit at the tip of the branch to "merge", which is what an ff does.



来源:https://stackoverflow.com/questions/27072920/performing-a-fast-forward-merge-with-rugged

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!