ok/jj
1
0
Fork 0
forked from mirrors/jj

view: extract remove_remote() from git module

This will be just self.data.remote_views.remove(remote_name), so I'm not gonna
refactor the implementation at this point.
This commit is contained in:
Yuya Nishihara 2023-10-07 02:58:47 +09:00
parent 1d3c830e85
commit 198dfa5cbe
3 changed files with 17 additions and 9 deletions

View file

@ -841,12 +841,7 @@ pub fn remove_remote(
}
fn remove_remote_refs(mut_repo: &mut MutableRepo, remote_name: &str) {
let mut branches_to_delete = vec![];
for (branch, target) in mut_repo.view().branches() {
if target.remote_targets.contains_key(remote_name) {
branches_to_delete.push(branch.clone());
}
}
mut_repo.remove_remote(remote_name);
let prefix = format!("refs/remotes/{remote_name}/");
let git_refs_to_delete = mut_repo
.view()
@ -855,9 +850,6 @@ fn remove_remote_refs(mut_repo: &mut MutableRepo, remote_name: &str) {
.filter(|&r| r.starts_with(&prefix))
.cloned()
.collect_vec();
for branch in branches_to_delete {
mut_repo.set_remote_branch_target(&branch, remote_name, RefTarget::absent());
}
for git_ref in git_refs_to_delete {
mut_repo.set_git_ref_target(&git_ref, RefTarget::absent());
}

View file

@ -1007,6 +1007,10 @@ impl MutableRepo {
.set_remote_branch_target(name, remote_name, target);
}
pub fn remove_remote(&mut self, remote_name: &str) {
self.view_mut().remove_remote(remote_name);
}
pub fn rename_remote(&mut self, old: &str, new: &str) {
self.view_mut().rename_remote(old, new);
}

View file

@ -272,6 +272,18 @@ impl View {
})
}
pub fn remove_remote(&mut self, remote_name: &str) {
let mut branches_to_delete = vec![];
for (branch, target) in &self.data.branches {
if target.remote_targets.contains_key(remote_name) {
branches_to_delete.push(branch.clone());
}
}
for branch in branches_to_delete {
self.remove_remote_branch(&branch, remote_name);
}
}
pub fn rename_remote(&mut self, old: &str, new: &str) {
for branch in self.data.branches.values_mut() {
let target = branch.remote_targets.remove(old).flatten();