mirror of
https://github.com/gitbutlerapp/gitbutler.git
synced 2024-12-02 07:53:55 +03:00
chore: remove unused fileGroup function and related code
This commit is contained in:
parent
b2fe090633
commit
1df251baca
@ -366,13 +366,6 @@ impl App {
|
|||||||
Ok(diff)
|
Ok(diff)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn git_match_paths(&self, project_id: &str, pattern: &str) -> Result<Vec<String>> {
|
|
||||||
let project = self.gb_project(project_id)?;
|
|
||||||
let project_repository = project_repository::Repository::open(&project)
|
|
||||||
.context("failed to open project repository")?;
|
|
||||||
project_repository.git_match_paths(pattern)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn git_remote_branches(&self, project_id: &str) -> Result<Vec<git::RemoteBranchName>> {
|
pub fn git_remote_branches(&self, project_id: &str) -> Result<Vec<git::RemoteBranchName>> {
|
||||||
let project = self.gb_project(project_id)?;
|
let project = self.gb_project(project_id)?;
|
||||||
let project_repository = project_repository::Repository::open(&project)
|
let project_repository = project_repository::Repository::open(&project)
|
||||||
|
@ -260,25 +260,6 @@ async fn git_wd_diff(
|
|||||||
Ok(diff)
|
Ok(diff)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tauri::command(async)]
|
|
||||||
#[instrument(skip(handle))]
|
|
||||||
async fn git_match_paths(
|
|
||||||
handle: tauri::AppHandle,
|
|
||||||
project_id: &str,
|
|
||||||
match_pattern: &str,
|
|
||||||
) -> Result<Vec<String>, Error> {
|
|
||||||
let app = handle.state::<app::App>();
|
|
||||||
let paths = app
|
|
||||||
.git_match_paths(project_id, match_pattern)
|
|
||||||
.with_context(|| {
|
|
||||||
format!(
|
|
||||||
"failed to get git match paths for project {} and pattern {}",
|
|
||||||
project_id, match_pattern
|
|
||||||
)
|
|
||||||
})?;
|
|
||||||
Ok(paths)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tauri::command(async)]
|
#[tauri::command(async)]
|
||||||
#[instrument(skip(handle))]
|
#[instrument(skip(handle))]
|
||||||
async fn git_remote_branches(
|
async fn git_remote_branches(
|
||||||
@ -602,7 +583,6 @@ fn main() {
|
|||||||
delete_user,
|
delete_user,
|
||||||
get_user,
|
get_user,
|
||||||
search,
|
search,
|
||||||
git_match_paths,
|
|
||||||
git_remote_branches,
|
git_remote_branches,
|
||||||
git_remote_branches_data,
|
git_remote_branches_data,
|
||||||
git_head,
|
git_head,
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
use std::path;
|
use std::path;
|
||||||
|
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
use walkdir::WalkDir;
|
|
||||||
|
|
||||||
use crate::{git, keys, projects, reader, users};
|
use crate::{git, keys, projects, reader, users};
|
||||||
|
|
||||||
@ -71,51 +70,6 @@ impl Repository {
|
|||||||
self.git_repository.path().parent().unwrap()
|
self.git_repository.path().parent().unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn git_match_paths(&self, pattern: &str) -> Result<Vec<String>> {
|
|
||||||
let workdir = self
|
|
||||||
.git_repository
|
|
||||||
.workdir()
|
|
||||||
.with_context(|| "failed to get working directory")?;
|
|
||||||
|
|
||||||
let pattern = pattern.to_lowercase();
|
|
||||||
let mut files = vec![];
|
|
||||||
for entry in WalkDir::new(workdir)
|
|
||||||
.into_iter()
|
|
||||||
.filter_entry(|entry| {
|
|
||||||
// need to remove workdir so we're not matching it
|
|
||||||
let relative_path = entry
|
|
||||||
.path()
|
|
||||||
.strip_prefix(workdir)
|
|
||||||
.unwrap()
|
|
||||||
.to_str()
|
|
||||||
.unwrap();
|
|
||||||
// this is to make it faster, so we dont have to traverse every directory if it is ignored by git
|
|
||||||
entry.path().to_str() == workdir.to_str() // but we need to traverse the first one
|
|
||||||
|| ((entry.file_type().is_dir() // traverse all directories if they are not ignored by git
|
|
||||||
|| relative_path.to_lowercase().contains(&pattern)) // but only pass on files that match the regex
|
|
||||||
&& !self.git_repository.is_path_ignored(entry.path()).unwrap_or(true))
|
|
||||||
})
|
|
||||||
.filter_map(Result::ok)
|
|
||||||
{
|
|
||||||
if entry.file_type().is_file() {
|
|
||||||
// only save the matching files, not the directories
|
|
||||||
let path = entry.path();
|
|
||||||
let path = path
|
|
||||||
.strip_prefix::<&std::path::Path>(workdir.as_ref())
|
|
||||||
.with_context(|| {
|
|
||||||
format!(
|
|
||||||
"failed to strip prefix from path {}",
|
|
||||||
path.to_str().unwrap()
|
|
||||||
)
|
|
||||||
})?;
|
|
||||||
let path = path.to_str().unwrap().to_string();
|
|
||||||
files.push(path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
files.sort();
|
|
||||||
Ok(files)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn git_remote_branches(&self) -> Result<Vec<git::RemoteBranchName>> {
|
pub fn git_remote_branches(&self) -> Result<Vec<git::RemoteBranchName>> {
|
||||||
self.git_repository
|
self.git_repository
|
||||||
.branches(Some(git2::BranchType::Remote))?
|
.branches(Some(git2::BranchType::Remote))?
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
import { invoke } from '$lib/ipc';
|
|
||||||
|
|
||||||
export function matchFiles(params: { projectId: string; matchPattern: string }) {
|
|
||||||
return invoke<string[]>('git_match_paths', params);
|
|
||||||
}
|
|
@ -1,5 +1,4 @@
|
|||||||
import type { Project } from '$lib/api/ipc/projects';
|
import type { Project } from '$lib/api/ipc/projects';
|
||||||
import { matchFiles } from '$lib/api/git';
|
|
||||||
import * as events from '$lib/events';
|
import * as events from '$lib/events';
|
||||||
import {
|
import {
|
||||||
IconFile,
|
IconFile,
|
||||||
@ -144,31 +143,6 @@ const navigateGroup = ({ project, input }: { project?: Project; input: string })
|
|||||||
].filter(({ title }) => input.length === 0 || title.toLowerCase().includes(input.toLowerCase()))
|
].filter(({ title }) => input.length === 0 || title.toLowerCase().includes(input.toLowerCase()))
|
||||||
});
|
});
|
||||||
|
|
||||||
const fileGroup = ({
|
|
||||||
project,
|
|
||||||
input
|
|
||||||
}: {
|
|
||||||
project: Project;
|
|
||||||
input: string;
|
|
||||||
}): Group | Promise<Group> =>
|
|
||||||
input.length === 0
|
|
||||||
? {
|
|
||||||
title: 'Files',
|
|
||||||
description: 'type part of a file name',
|
|
||||||
commands: []
|
|
||||||
}
|
|
||||||
: matchFiles({ projectId: project.id, matchPattern: input }).then((files) => ({
|
|
||||||
title: 'Files',
|
|
||||||
description: files.length === 0 ? `no files containing '${input}'` : '',
|
|
||||||
commands: files.map((file) => ({
|
|
||||||
title: file,
|
|
||||||
action: {
|
|
||||||
href: '/'
|
|
||||||
},
|
|
||||||
icon: IconFile
|
|
||||||
}))
|
|
||||||
}));
|
|
||||||
|
|
||||||
const supportGroup = ({ input }: { input: string }): Group => ({
|
const supportGroup = ({ input }: { input: string }): Group => ({
|
||||||
title: 'Help & Support',
|
title: 'Help & Support',
|
||||||
commands: [
|
commands: [
|
||||||
@ -203,7 +177,6 @@ export default (params: { projects: Project[]; project?: Project; input: string
|
|||||||
groups.push(commandsGroup({ project, input }));
|
groups.push(commandsGroup({ project, input }));
|
||||||
groups.push(navigateGroup({ project, input }));
|
groups.push(navigateGroup({ project, input }));
|
||||||
!project && groups.push(projectsGroup({ projects, input }));
|
!project && groups.push(projectsGroup({ projects, input }));
|
||||||
project && groups.push(fileGroup({ project, input }));
|
|
||||||
groups.push(supportGroup({ input }));
|
groups.push(supportGroup({ input }));
|
||||||
|
|
||||||
return groups;
|
return groups;
|
||||||
|
Loading…
Reference in New Issue
Block a user