Commit Diff


commit - 102d840de78061d9f313aaa557ef64f586932143
commit + 169def413f9c30c59bd16b6ea8c65db2ccce4017
blob - 2606f615bc7170cc9db0d474f7169f2f09784c7a
blob + 0ed0622f85bbd5ae402928986b6417762d895068
--- gotd/session.c
+++ gotd/session.c
@@ -496,13 +496,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;