Fix worktree creation handling

This commit is contained in:
2022-01-24 17:03:37 +01:00
parent fd6400ed68
commit 14c95f2704
2 changed files with 8 additions and 7 deletions

View File

@@ -474,15 +474,16 @@ pub fn add_worktree(
let config = repo::read_worktree_root_config(directory)?;
let path = match subdirectory {
Some(dir) => dir.join(name),
None => Path::new(name).to_path_buf(),
};
if repo.find_worktree(&path).is_ok() {
if repo.find_worktree(&name).is_ok() {
return Err(format!("Worktree {} already exists", &name));
}
let path = match subdirectory {
Some(dir) => directory.join(dir).join(name),
None => directory.join(Path::new(name).to_path_buf()),
};
let mut remote_branch_exists = false;
let default_checkout = || repo.default_branch()?.to_commit();

View File

@@ -672,9 +672,9 @@ impl Repo {
self.0.config().map_err(convert_libgit2_error)
}
pub fn find_worktree(&self, path: &Path) -> Result<(), String> {
pub fn find_worktree(&self, name: &str) -> Result<(), String> {
self.0
.find_worktree(path.to_str().expect("Worktree path is not valid utf-8"))
.find_worktree(&name)
.map_err(convert_libgit2_error)?;
Ok(())
}