From a9a81ed040990a8431c4b4b05bf5deb551732b09 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Tue, 20 Aug 2024 11:58:17 +0100 Subject: fix(remote): `push` tags use correct oid use ^{} postfix for the commit id and without postfix for the tag id --- src/git_remote_helper.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/git_remote_helper.rs b/src/git_remote_helper.rs index e55a2eb..2019bd2 100644 --- a/src/git_remote_helper.rs +++ b/src/git_remote_helper.rs @@ -1063,6 +1063,28 @@ fn generate_updated_state( if from.is_empty() { // delete new_state.remove(to); + if to.contains("refs/tags") { + new_state.remove(&format!("{to}{}", "^{}")); + } + } else if to.contains("refs/tags") { + new_state.insert( + format!("{to}{}", "^{}"), + git_repo + .get_commit_or_tip_of_reference(from) + .unwrap() + .to_string(), + ); + new_state.insert( + to.to_string(), + git_repo + .git_repo + .find_reference(to) + .unwrap() + .peel(git2::ObjectType::Tag) + .unwrap() + .id() + .to_string(), + ); } else { // add or update new_state.insert( -- cgit v1.2.3