From 3e8a7386320303f4a78254445578bf23077dba1e Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Mon, 10 Sep 2012 21:03:52 +0100 Subject: REPOSITORY: Support merge-base via luagit2 --- lib/gall/repository.lua | 19 +++++++++++++++++++ luagit2 | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/gall/repository.lua b/lib/gall/repository.lua index 3a4bb75..0e2c2d5 100644 --- a/lib/gall/repository.lua +++ b/lib/gall/repository.lua @@ -212,6 +212,25 @@ function repomethod:merge_base(sha_1, sha_2, get_all) return unpack(ret) end +if ll.git2 then + local old_merge_base = repomethod.merge_base + function repomethod:merge_base(sha_1, sha_2, get_all) + if get_all then + return old_merge_base(self, sha_1, sha_2, get_all) + end + local oid_1 = ll.git2.OID.hex(sha_1) + local oid_2 = ll.git2.OID.hex(sha_2) + local oid_base, err = ll.git2.merge.base(self.git2.repo, oid_1, oid_2) + if not oid_base then + if tostring(err) == "ENOTFOUND" then + return true + end + return nil, err + end + return tostring(oid_base), err + end +end + function repomethod:rev_list(oldhead, newhead, firstonly) local args = { newhead, "^" .. oldhead } if firstonly then diff --git a/luagit2 b/luagit2 index 854e356..8ad8200 160000 --- a/luagit2 +++ b/luagit2 @@ -1 +1 @@ -Subproject commit 854e356e566e3c410781b3d0fac71aafd48e4cd8 +Subproject commit 8ad8200fd7e40095f152b4a3a44da12c8ee817dd -- cgit v1.2.1