Commit Diff


commit - e8c5d4f87401e77adfdec88437f3b973e7b47262
commit + 342fdad21f737bde2399231d772477d1b2221fe1
blob - bc9ef0d64141e9df96d93d992d4b70ec9ccf4f2f
blob + 27ecb3cb1f2dfa87ae9b75649146a015b1e45941
--- gotd/repo_write.c
+++ gotd/repo_write.c
@@ -1713,6 +1713,12 @@ repo_write_dispatch_session(int fd, short event, void 
 					    err->msg);
 					break;
 				}
+				/*
+				 * Ensure we re-read the pack index list
+				 * upon next access.
+				 */
+				repo_write.repo->pack_path_mtime.tv_sec = 0;
+				repo_write.repo->pack_path_mtime.tv_nsec = 0;
 			}
 			err = update_refs(iev);
 			if (err) {
blob - ebe568d9449b25eac52742c96be60d186d6244e8
blob + 9754b5ea953bf492a5912577904d94d66b1426a8
--- gotd/session.c
+++ gotd/session.c
@@ -367,6 +367,10 @@ install_pack(struct gotd_session_client *client, const
 		    packidx_path);
 		goto done;
 	}
+
+	/* Ensure we re-read the pack index list upon next access. */
+	gotd_session.repo->pack_path_mtime.tv_sec = 0;
+	gotd_session.repo->pack_path_mtime.tv_nsec = 0;
 
 	free(client->packidx_path);
 	client->packidx_path = NULL;