upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2024-08-20 11:58:17 +0100
committerDanConwayDev <DanConwayDev@protonmail.com>2024-08-20 11:58:17 +0100
commita9a81ed040990a8431c4b4b05bf5deb551732b09 (patch)
treef5e709128809184b857fa0e539579eb5d3794223
parent4c109e0857becca4a5d90568b7c50064436e94cb (diff)
fix(remote): `push` tags use correct oid
use ^{} postfix for the commit id and without postfix for the tag id
-rw-r--r--src/git_remote_helper.rs22
1 files changed, 22 insertions, 0 deletions
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(
1063 if from.is_empty() { 1063 if from.is_empty() {
1064 // delete 1064 // delete
1065 new_state.remove(to); 1065 new_state.remove(to);
1066 if to.contains("refs/tags") {
1067 new_state.remove(&format!("{to}{}", "^{}"));
1068 }
1069 } else if to.contains("refs/tags") {
1070 new_state.insert(
1071 format!("{to}{}", "^{}"),
1072 git_repo
1073 .get_commit_or_tip_of_reference(from)
1074 .unwrap()
1075 .to_string(),
1076 );
1077 new_state.insert(
1078 to.to_string(),
1079 git_repo
1080 .git_repo
1081 .find_reference(to)
1082 .unwrap()
1083 .peel(git2::ObjectType::Tag)
1084 .unwrap()
1085 .id()
1086 .to_string(),
1087 );
1066 } else { 1088 } else {
1067 // add or update 1089 // add or update
1068 new_state.insert( 1090 new_state.insert(