修复git未跟踪文件目录显示不全
This commit is contained in:
@@ -1307,10 +1307,18 @@ pub async fn git_stash_show(
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn git_status(path: String) -> Result<Vec<GitStatusEntry>, AppCommandError> {
|
||||
pub async fn git_status(
|
||||
path: String,
|
||||
show_all_untracked: Option<bool>,
|
||||
) -> Result<Vec<GitStatusEntry>, AppCommandError> {
|
||||
let untracked_mode = if show_all_untracked.unwrap_or(false) {
|
||||
"-uall"
|
||||
} else {
|
||||
"-unormal"
|
||||
};
|
||||
let output = crate::process::tokio_command("git")
|
||||
.args(["-c", "core.quotePath=false"])
|
||||
.args(["status", "--porcelain=v1", "-unormal"])
|
||||
.args(["status", "--porcelain=v1", untracked_mode])
|
||||
.current_dir(&path)
|
||||
.output()
|
||||
.await
|
||||
|
||||
@@ -583,7 +583,7 @@ export function GitChangesTab() {
|
||||
setError(null)
|
||||
|
||||
try {
|
||||
const statusEntries = await gitStatus(folder.path)
|
||||
const statusEntries = await gitStatus(folder.path, true)
|
||||
const hasTrackedEntries = statusEntries.some(
|
||||
(entry) => !isUntrackedStatus(entry.status)
|
||||
)
|
||||
@@ -739,7 +739,7 @@ export function GitChangesTab() {
|
||||
setDirectoryGitLoading(true)
|
||||
|
||||
try {
|
||||
const statusEntries = await gitStatus(folder.path)
|
||||
const statusEntries = await gitStatus(folder.path, true)
|
||||
const scopedEntries = scopeGitStatusEntriesForDirectory(
|
||||
statusEntries,
|
||||
target.path
|
||||
|
||||
@@ -318,7 +318,7 @@ export function CommitWorkspace({
|
||||
setLoadingStatus(true)
|
||||
setError(null)
|
||||
try {
|
||||
const result = await gitStatus(folderPath)
|
||||
const result = await gitStatus(folderPath, true)
|
||||
setEntries(result)
|
||||
const tracked = result.filter(
|
||||
(entry) => entry.status !== UNTRACKED_STATUS
|
||||
|
||||
@@ -762,8 +762,14 @@ export async function gitSetRemoteUrl(
|
||||
return invoke("git_set_remote_url", { path, name, url })
|
||||
}
|
||||
|
||||
export async function gitStatus(path: string): Promise<GitStatusEntry[]> {
|
||||
return invoke("git_status", { path })
|
||||
export async function gitStatus(
|
||||
path: string,
|
||||
showAllUntracked?: boolean
|
||||
): Promise<GitStatusEntry[]> {
|
||||
return invoke("git_status", {
|
||||
path,
|
||||
showAllUntracked: showAllUntracked ?? null,
|
||||
})
|
||||
}
|
||||
|
||||
export async function gitDiff(path: string, file?: string): Promise<string> {
|
||||
|
||||
Reference in New Issue
Block a user