mirror of
https://github.com/vee1e/gittuf.git
synced 2026-09-01 18:27:06 +00:00
LoadRepository did os.Chdir(repositoryPath) to run 'git rev-parse --git-dir', and Status/RestoreWorktree/tree-restore did the same to run worktree-relative commands. os.Chdir is process-global; concurrent LoadRepository calls for different paths could each resolve the wrong gitDirPath. Adds executor.withDir(dir) which sets cmd.Dir. LoadRepository now runs 'git rev-parse --absolute-git-dir' with cmd.Dir set to the repository path (and EvalSymlinks the result to match prior behaviour). The worktree commands use withDir(worktree). TestLoadRepositoryConcurrent runs 20 pairs of LoadRepository for two distinct repos in parallel under -race and asserts each gets its own gitDirPath. Signed-off-by: Andrew Nesbitt <andrewnez@gmail.com> |
||
|---|---|---|
| .. | ||
| blob.go | ||
| blob_test.go | ||
| changes.go | ||
| changes_test.go | ||
| commit.go | ||
| commit_test.go | ||
| common.go | ||
| config.go | ||
| config_test.go | ||
| hash.go | ||
| hash_test.go | ||
| log.go | ||
| log_test.go | ||
| object.go | ||
| object_test.go | ||
| README.md | ||
| references.go | ||
| references_test.go | ||
| remote.go | ||
| remote_test.go | ||
| repository.go | ||
| repository_test.go | ||
| signature.go | ||
| signature_test.go | ||
| status.go | ||
| status_test.go | ||
| sync.go | ||
| sync_test.go | ||
| tag.go | ||
| tag_test.go | ||
| tree.go | ||
| tree_test.go | ||
| utils.go | ||
| utils_test.go | ||
gittuf's gitinterface Package
gittuf's gitinterface package is a lightweight Go API for interacting with Git
repositories. It is similar to go-git in
its goal, but differs as, unlike go-git, gitinterface uses the Git binary
for its operations.
To operate correctly, gitinterface requires a Git binary version of 2.34 or
higher.