diff --git a/lua/diffview/tests/functional/hg_adapter_spec.lua b/lua/diffview/tests/functional/hg_adapter_spec.lua index ae6163d5..e728abaf 100644 --- a/lua/diffview/tests/functional/hg_adapter_spec.lua +++ b/lua/diffview/tests/functional/hg_adapter_spec.lua @@ -86,6 +86,28 @@ describe("diffview.vcs.adapters.hg", function() end) end) + describe("get_log_args", function() + it("prepends user-configured global flags from `hg_cmd`", function() + local adapter = HgAdapter({ toplevel = "/tmp", path_args = {} }) + adapter.get_command = function(_) + return { "hg", "-R", "/some/path" } + end + local args = adapter:get_log_args({ "abc123" }) + + -- `-R /some/path` must come before `log` so hg honours the flag. + local log_idx + for i, arg in ipairs(args) do + if arg == "log" then + log_idx = i + break + end + end + assert.is_not_nil(log_idx, "get_log_args must include the `log` subcommand") + eq("-R", args[log_idx - 2]) + eq("/some/path", args[log_idx - 1]) + end) + end) + -- ------------------------------------------------------------------ -- Integration tests: require hg -- ------------------------------------------------------------------ diff --git a/lua/diffview/vcs/adapters/hg/init.lua b/lua/diffview/vcs/adapters/hg/init.lua index c46a01b7..a4915019 100644 --- a/lua/diffview/vcs/adapters/hg/init.lua +++ b/lua/diffview/vcs/adapters/hg/init.lua @@ -158,7 +158,7 @@ function HgAdapter:get_show_args(path, rev) end function HgAdapter:get_log_args(args) - return utils.vec_join("log", "--stat", "--rev", args) + return utils.vec_join(self:args(), "log", "--stat", "--rev", args) end function HgAdapter:get_dir(path)