From 63785a24dabd5759eb6918f15d36f7ba69e3b56b Mon Sep 17 00:00:00 2001 From: Yuya Nishihara Date: Fri, 25 Oct 2024 18:14:39 +0900 Subject: [PATCH] cli: bookmark list: simply apply --remote filter to source remote_refs --- cli/src/commands/bookmark/list.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/cli/src/commands/bookmark/list.rs b/cli/src/commands/bookmark/list.rs index 13187d5d1..194853ad1 100644 --- a/cli/src/commands/bookmark/list.rs +++ b/cli/src/commands/bookmark/list.rs @@ -147,18 +147,16 @@ pub fn cmd_bookmark_list( for (name, bookmark_target) in bookmarks_to_list { let local_target = bookmark_target.local_target; let remote_refs = bookmark_target.remote_refs; - let (mut tracking_remote_refs, mut untracked_remote_refs) = remote_refs + let (mut tracking_remote_refs, untracked_remote_refs) = remote_refs .iter() .copied() + .filter(|&(remote_name, _)| { + args.remotes + .as_ref() + .map_or(true, |names| names.iter().any(|r| r == remote_name)) + }) .partition::, _>(|&(_, remote_ref)| remote_ref.is_tracking()); - if let Some(names) = &args.remotes { - let filter = |refs: &mut Vec<_>| { - refs.retain(|&(remote_name, _)| names.iter().any(|r| r == remote_name)); - }; - filter(&mut tracking_remote_refs); - filter(&mut untracked_remote_refs); - } if args.tracked { tracking_remote_refs .retain(|&(remote, _)| remote != git::REMOTE_NAME_FOR_LOCAL_GIT_REPO);