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

Function open_repository

atomic-cli/src/commands/mod.rs:333–348  ·  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

331/// let repo = open_repository(Some(Path::new("/home/user/project")))?;
332/// ```
333pub fn open_repository(path: Option<&Path>) -> CliResult<Repository> {
334 let repo_path = match path {
335 Some(p) => {
336 // If a path is provided, check if it's a repository or search from there
337 let dot_dir = p.join(DOT_DIR);
338 if dot_dir.is_dir() {
339 p.to_path_buf()
340 } else {
341 find_repository_root_from(p)?
342 }
343 }
344 None => find_repository_root()?,
345 };
346
347 Repository::open(&repo_path).map_err(CliError::from)
348}
349
350/// Open a repository or return a user-friendly error.
351///

Callers 1

require_repositoryFunction · 0.85

Calls 3

find_repository_rootFunction · 0.85
is_dirMethod · 0.80

Tested by

no test coverage detected