Commit Diff


commit - 4448825ab554378228429f5ac53c9cf943cc2503
commit + f8780fee7a5de8db320833efc4a30aa1ad3814e2
blob - e4c9601581a5f7e5f5944692c0f36c0130bacfdd
blob + 8f6b8985f8c929a7a85fd139238d5a1481b1fe84
--- gotd/session.c
+++ gotd/session.c
@@ -499,13 +499,15 @@ update_ref(int *shut, struct gotd_session_client *clie
 			goto done;
 		}
 
-		err = got_ref_change_ref(ref, &new_id);
-		if (err)
-			goto done;
+		if (got_object_id_cmp(&new_id, &old_id) != 0) {
+			err = got_ref_change_ref(ref, &new_id);
+			if (err)
+				goto done;
 
-		err = got_ref_write(ref, repo);
-		if (err)
-			goto done;
+			err = got_ref_write(ref, repo);
+			if (err)
+				goto done;
+		}
 
 		free(id);
 		id = NULL;