mirror of
https://github.com/zed-industries/zed.git
synced 2024-10-27 16:57:08 +00:00
Merge pull request #2465 from zed-industries/stream-branch-first
Send the root branch along with it's entry
This commit is contained in:
commit
deac8a6ff9
1 changed files with 22 additions and 5 deletions
|
@ -487,17 +487,37 @@ pub fn split_worktree_update(
|
||||||
let mut done_files = false;
|
let mut done_files = false;
|
||||||
let mut done_statuses = false;
|
let mut done_statuses = false;
|
||||||
let mut repository_index = 0;
|
let mut repository_index = 0;
|
||||||
|
let mut root_repo_found = false;
|
||||||
iter::from_fn(move || {
|
iter::from_fn(move || {
|
||||||
if done_files && done_statuses {
|
if done_files && done_statuses {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
let updated_entries_chunk_size = cmp::min(message.updated_entries.len(), max_chunk_size);
|
let updated_entries_chunk_size = cmp::min(message.updated_entries.len(), max_chunk_size);
|
||||||
let updated_entries = message
|
let updated_entries: Vec<_> = message
|
||||||
.updated_entries
|
.updated_entries
|
||||||
.drain(..updated_entries_chunk_size)
|
.drain(..updated_entries_chunk_size)
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
let mut updated_repositories: Vec<_> = Default::default();
|
||||||
|
|
||||||
|
if !root_repo_found {
|
||||||
|
for entry in updated_entries.iter() {
|
||||||
|
if let Some(repo) = message.updated_repositories.get(0) {
|
||||||
|
if repo.work_directory_id == entry.id {
|
||||||
|
root_repo_found = true;
|
||||||
|
updated_repositories.push(RepositoryEntry {
|
||||||
|
work_directory_id: repo.work_directory_id,
|
||||||
|
branch: repo.branch.clone(),
|
||||||
|
removed_worktree_repo_paths: Default::default(),
|
||||||
|
updated_worktree_statuses: Default::default(),
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let removed_entries_chunk_size = cmp::min(message.removed_entries.len(), max_chunk_size);
|
let removed_entries_chunk_size = cmp::min(message.removed_entries.len(), max_chunk_size);
|
||||||
let removed_entries = message
|
let removed_entries = message
|
||||||
.removed_entries
|
.removed_entries
|
||||||
|
@ -508,9 +528,8 @@ pub fn split_worktree_update(
|
||||||
|
|
||||||
// Wait to send repositories until after we've guaranteed that their associated entries
|
// Wait to send repositories until after we've guaranteed that their associated entries
|
||||||
// will be read
|
// will be read
|
||||||
let updated_repositories = if done_files {
|
if done_files {
|
||||||
let mut total_statuses = 0;
|
let mut total_statuses = 0;
|
||||||
let mut updated_repositories = Vec::new();
|
|
||||||
while total_statuses < max_chunk_size
|
while total_statuses < max_chunk_size
|
||||||
&& repository_index < message.updated_repositories.len()
|
&& repository_index < message.updated_repositories.len()
|
||||||
{
|
{
|
||||||
|
@ -555,8 +574,6 @@ pub fn split_worktree_update(
|
||||||
repository_index += 1;
|
repository_index += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updated_repositories
|
|
||||||
} else {
|
} else {
|
||||||
Default::default()
|
Default::default()
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue