Enhance ServeSession to fetch git metadata before initial patch computation

- Updated the `ServeSession:start` function to retrieve git metadata from the API before computing the initial patch. This change ensures that the server information includes relevant git details, improving synchronization accuracy.
- Disabled the polling feature in `App:startSyncReminderPolling` due to performance concerns, as it was deemed unnecessary.
- Adjusted the API service to set `git_metadata` to `None` instead of computing it, streamlining the response handling.

These changes aim to optimize the synchronization process and reduce unnecessary API calls.
This commit is contained in:
Joe 2026-03-01 16:49:54 -06:00
parent 8b4573b578
commit 491d433a6b
3 changed files with 55 additions and 64 deletions

View file

@ -404,28 +404,6 @@ impl ApiService {
Vec::new()
};
let git_metadata = if let Some(repo_root) = self.serve_session.git_repo_root() {
let tree_handle = self.serve_session.tree_handle();
let repo_root = repo_root.to_owned();
let initial_head = self
.serve_session
.initial_head_commit()
.map(|s| s.to_owned());
let t = Instant::now();
let result = tokio::task::spawn_blocking(move || {
crate::git::compute_git_metadata(&tree_handle, &repo_root, initial_head.as_deref())
})
.await
.ok();
log::debug!(
"[TIMING] handle_api_rojo: compute_git_metadata {}ms",
t.elapsed().as_millis()
);
result
} else {
None
};
log::debug!(
"[TIMING] handle_api_rojo: total {}ms",
handler_start.elapsed().as_millis()
@ -446,7 +424,7 @@ impl ApiService {
sync_scripts_only: self.serve_session.sync_scripts_only(),
ignore_hidden_services,
visible_services,
git_metadata,
git_metadata: None,
})
}