add more features

This commit is contained in:
Christoph Brandau
2026-06-27 13:49:56 +02:00
parent 3b9d636fdb
commit 6a78e768bc
7 changed files with 989 additions and 18 deletions
+23 -1
View File
@@ -1,6 +1,12 @@
import { invoke } from "@tauri-apps/api/core";
import type { GitBranch, GitCommit, GitRepositoryFile, GitStatus } from "./types";
import type {
GitBranch,
GitCommit,
GitCommitComparison,
GitRepositoryFile,
GitStatus,
} from "./types";
export function openRepository(path: string): Promise<GitStatus> {
return invoke<GitStatus>("open_repository", { path });
@@ -73,3 +79,19 @@ export function listRepositoryFiles(path: string): Promise<GitRepositoryFile[]>
export function listFileHistory(path: string, file: string, limit = 100): Promise<GitCommit[]> {
return invoke<GitCommit[]>("list_file_history", { path, file, limit });
}
export function compareCommits(
path: string,
from: string,
to: string,
): Promise<GitCommitComparison> {
return invoke<GitCommitComparison>("compare_commits", { path, from, to });
}
export function diffFileAgainstWorkingTree(
path: string,
commit: string,
file: string,
): Promise<GitCommitComparison> {
return invoke<GitCommitComparison>("diff_file_against_working_tree", { path, commit, file });
}
+17
View File
@@ -52,3 +52,20 @@ export interface GitRepositoryFile {
tracked: boolean;
status: FileStatusKind | null;
}
export interface GitDiffFile {
path: string;
old_path: string | null;
status: FileStatusKind;
additions: number;
deletions: number;
}
export interface GitCommitComparison {
from_hash: string;
from_short: string;
to_hash: string;
to_short: string;
files: GitDiffFile[];
patch: string;
}