Allow explicit publication stores in Git metadata

This commit is contained in:
2026-11-02 22:18:51 +00:00
parent d2b1329095
commit 9a7b9b9301
4 changed files with 64 additions and 0 deletions

View File

@@ -56,6 +56,23 @@ func normalizeRepositoryRoot(root string) (string, error) {
return resolved, nil
}
// MetadataDirectories returns the checkout's private and shared Git directories.
func MetadataDirectories(ctx context.Context, directory string) ([]string, error) {
var directories []string
for _, flag := range []string{"--absolute-git-dir", "--git-common-dir"} {
output, err := run(ctx, directory, nil, "rev-parse", "--path-format=absolute", flag)
if err != nil {
return nil, fmt.Errorf("resolve Git metadata directory: %w", err)
}
resolved, err := normalizeRepositoryRoot(output)
if err != nil {
return nil, err
}
directories = append(directories, resolved)
}
return directories, nil
}
// DiscoverRepositoryRoot finds a containing checkout or confirms standalone use.
func DiscoverRepositoryRoot(ctx context.Context, directory string) (string, bool, error) {
if directory == "" {