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