diff --git a/gitoxide-core/src/repository/merge_base.rs b/gitoxide-core/src/repository/merge_base.rs index b6140ec9d4b..91af2323835 100644 --- a/gitoxide-core/src/repository/merge_base.rs +++ b/gitoxide-core/src/repository/merge_base.rs @@ -16,7 +16,6 @@ pub fn merge_base( let first_id = repo.rev_parse_single(first.as_str())?; let other_ids: Vec<_> = others .iter() - .cloned() .map(|other| repo.rev_parse_single(other.as_str()).map(gix::Id::detach)) .collect::>()?; diff --git a/gix-merge/src/blob/platform/merge.rs b/gix-merge/src/blob/platform/merge.rs index a19afb61957..4facff2f9cb 100644 --- a/gix-merge/src/blob/platform/merge.rs +++ b/gix-merge/src/blob/platform/merge.rs @@ -125,8 +125,9 @@ pub(super) mod inner { ) -> Result { fn write_data( data: &[u8], + directory: &Path, ) -> std::io::Result<(gix_tempfile::Handle, PathBuf)> { - let mut file = gix_tempfile::new(Path::new(""), ContainingDirectory::Exists, AutoRemove::Tempfile)?; + let mut file = gix_tempfile::new(directory, ContainingDirectory::Exists, AutoRemove::Tempfile)?; file.write_all(data)?; let mut path = Default::default(); file.with_mut(|f| { @@ -146,17 +147,22 @@ pub(super) mod inner { kind: ResourceKind::OtherOrTheirs, })?; - let (base_tmp, base_path) = write_data(base).map_err(|err| Error::CreateTempfile { + let tmp_dir = context + .worktree_dir + .as_deref() + .or(context.git_dir.as_deref()) + .unwrap_or(Path::new("")); + let (base_tmp, base_path) = write_data(base, tmp_dir).map_err(|err| Error::CreateTempfile { rela_path: self.ancestor.rela_path.into(), kind: ResourceKind::CommonAncestorOrBase, source: err, })?; - let (ours_tmp, ours_path) = write_data(ours).map_err(|err| Error::CreateTempfile { + let (ours_tmp, ours_path) = write_data(ours, tmp_dir).map_err(|err| Error::CreateTempfile { rela_path: self.current.rela_path.into(), kind: ResourceKind::CurrentOrOurs, source: err, })?; - let (theirs_tmp, theirs_path) = write_data(theirs).map_err(|err| Error::CreateTempfile { + let (theirs_tmp, theirs_path) = write_data(theirs, tmp_dir).map_err(|err| Error::CreateTempfile { rela_path: self.other.rela_path.into(), kind: ResourceKind::OtherOrTheirs, source: err,