diff options
author | Squibid <me@zacharyscheiman.com> | 2024-11-19 12:53:06 -0600 |
---|---|---|
committer | Squibid <me@zacharyscheiman.com> | 2024-11-19 12:53:06 -0600 |
commit | 443a091e3e2b0c4fc0fdcaf00d878b1edc86ce91 (patch) | |
tree | a6f7e788d673f9dc29aad56b7f9cc52f934b3ae4 /lua | |
parent | 6259250120315534d31f28ffd03d36f1cdb30f7b (diff) | |
download | dep-443a091e3e2b0c4fc0fdcaf00d878b1edc86ce91.tar.gz dep-443a091e3e2b0c4fc0fdcaf00d878b1edc86ce91.tar.bz2 dep-443a091e3e2b0c4fc0fdcaf00d878b1edc86ce91.zip |
fix: accidentally jumps to FETCH_HEAD
Diffstat (limited to 'lua')
-rw-r--r-- | lua/dep.lua | 75 |
1 files 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) |