MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / open_repository

Function open_repository

atomic-cli/src/commands/mod.rs:344–359  ·  view source on GitHub ↗

Open a repository, optionally at a specific path. If `path` is provided, opens the repository at that path. If `path` is `None`, searches upward from the current directory. # Arguments `path` - Optional path to the repository # Returns An open [`Repository`] handle. # Errors Returns an error if no repository is found or if the repository cannot be opened. # Example ```rust,ignore // Open

(path: Option<&Path>)

Source from the content-addressed store, hash-verified

342/// let repo = open_repository(Some(Path::new("/home/user/project")))?;
343/// ```
344pub fn open_repository(path: Option<&Path>) -> CliResult<Repository> {
345 let repo_path = match path {
346 Some(p) => {
347 // If a path is provided, check if it's a repository or search from there
348 let dot_dir = p.join(DOT_DIR);
349 if dot_dir.is_dir() {
350 p.to_path_buf()
351 } else {
352 find_repository_root_from(p)?
353 }
354 }
355 None => find_repository_root()?,
356 };
357
358 Repository::open(&repo_path).map_err(CliError::from)
359}
360
361/// Acquire a read-only repository for a CLI query, allowing short-lived writers
362/// (such as Stop checkpoint publication) to finish first. Only typed database

Callers 1

require_repositoryFunction · 0.85

Calls 3

find_repository_rootFunction · 0.85
is_dirMethod · 0.80

Tested by

no test coverage detected