Skip to content

Commit a111d19

Browse files
committed
fix(git): Better handle unexpected outcomes when parsing rev args
(rel. #414)
1 parent da23b9a commit a111d19

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

lua/diffview/vcs/adapters/git/init.lua

+10-3
Original file line numberDiff line numberDiff line change
@@ -1344,13 +1344,19 @@ function GitAdapter:symmetric_diff_revs(rev_arg)
13441344
))
13451345
end
13461346

1347-
out, code, stderr = self:exec_sync({ "merge-base", r1, r2 }, self.ctx.toplevel)
1347+
out, code, stderr = self:exec_sync(
1348+
{ "merge-base", r1, r2 },
1349+
{ cwd = self.ctx.toplevel, fail_on_empty = true, retry = 2 }
1350+
)
13481351
if code ~= 0 then
13491352
return err()
13501353
end
13511354
local left_hash = out[1]:gsub("^%^", "")
13521355

1353-
out, code, stderr = self:exec_sync({ "rev-parse", "--revs-only", r2 }, self.ctx.toplevel)
1356+
out, code, stderr = self:exec_sync(
1357+
{ "rev-parse", "--revs-only", r2 },
1358+
{ cwd = self.ctx.toplevel, fail_on_empty = true, retry = 2 }
1359+
)
13541360
if code ~= 0 then
13551361
return err()
13561362
end
@@ -1407,7 +1413,8 @@ function GitAdapter:parse_revs(rev_arg, opt)
14071413
end
14081414
else
14091415
local rev_strings, code, stderr = self:exec_sync(
1410-
{ "rev-parse", "--revs-only", rev_arg }, self.ctx.toplevel
1416+
{ "rev-parse", "--revs-only", rev_arg },
1417+
{ cwd = self.ctx.toplevel, fail_on_empty = true, retry = 2 }
14111418
)
14121419
if code ~= 0 then
14131420
utils.err(utils.vec_join(

0 commit comments

Comments
 (0)