From 443a091e3e2b0c4fc0fdcaf00d878b1edc86ce91 Mon Sep 17 00:00:00 2001 From: Squibid Date: Tue, 19 Nov 2024 12:53:06 -0600 Subject: fix: accidentally jumps to FETCH_HEAD --- lua/dep.lua | 75 +++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/lua/dep.lua b/lua/dep.lua index 911ceca..dbf6516 100644 --- a/lua/dep.lua +++ b/lua/dep.lua @@ -494,37 +494,54 @@ local function sync(package, cb) log_err(before) cb(err) else - local function continue(err, message) - if err then - log_err(message) - cb(err) - else - proc.git_rev_parse(package.dir, "FETCH_HEAD", function(err, after) - if err then - log_err(after) - cb(err) - elseif before == after then - logger:log("skip", string.format("skipped %s", package.id)) - cb(err) - else - proc.git_reset(package.dir, after, function(err, message) - if err then - log_err(message) - else - mark_reconfigure(package) - logger:log("update", string.format("updated %s; %s -> %s", package.id, before, after)) - end - - cb(err) - end) - end - end) - end - end if package.commit then - proc.git_checkout(package.dir, package.branch, package.commit, continue) + proc.git_checkout(package.dir, package.branch, package.commit, function(err, message) + if err then + log_err(message) + cb(err) + else + proc.git_rev_parse(package.dir, package.commit, function(err, after) + if err then + log_err(after) + cb(err) + elseif before == after then + logger:log("skip", string.format("skipped %s", package.id)) + cb(err) + else + mark_reconfigure(package) + logger:log("update", string.format("updated %s; %s -> %s", package.id, before, after)) + end + end) + end + end) else - proc.git_fetch(package.dir, "origin", package.branch or "HEAD", continue) + proc.git_fetch(package.dir, "origin", package.branch or "HEAD", function(err, message) + if err then + log_err(message) + cb(err) + else + proc.git_rev_parse(package.dir, "FETCH_HEAD", function(err, after) + if err then + log_err(after) + cb(err) + elseif before == after then + logger:log("skip", string.format("skipped %s", package.id)) + cb(err) + else + proc.git_reset(package.dir, after, function(err, message) + if err then + log_err(message) + else + mark_reconfigure(package) + logger:log("update", string.format("updated %s; %s -> %s", package.id, before, after)) + end + + cb(err) + end) + end + end) + end + end) end end end) -- cgit v1.2.1