@@ -125,8 +125,9 @@ pub(super) mod inner {
125125 ) -> Result < merge:: Command , Error > {
126126 fn write_data (
127127 data : & [ u8 ] ,
128+ directory : & Path ,
128129 ) -> std:: io:: Result < ( gix_tempfile:: Handle < gix_tempfile:: handle:: Closed > , PathBuf ) > {
129- let mut file = gix_tempfile:: new ( Path :: new ( "" ) , ContainingDirectory :: Exists , AutoRemove :: Tempfile ) ?;
130+ let mut file = gix_tempfile:: new ( directory , ContainingDirectory :: Exists , AutoRemove :: Tempfile ) ?;
130131 file. write_all ( data) ?;
131132 let mut path = Default :: default ( ) ;
132133 file. with_mut ( |f| {
@@ -146,17 +147,22 @@ pub(super) mod inner {
146147 kind : ResourceKind :: OtherOrTheirs ,
147148 } ) ?;
148149
149- let ( base_tmp, base_path) = write_data ( base) . map_err ( |err| Error :: CreateTempfile {
150+ let tmp_dir = context
151+ . worktree_dir
152+ . as_deref ( )
153+ . or ( context. git_dir . as_deref ( ) )
154+ . unwrap_or ( Path :: new ( "" ) ) ;
155+ let ( base_tmp, base_path) = write_data ( base, tmp_dir) . map_err ( |err| Error :: CreateTempfile {
150156 rela_path : self . ancestor . rela_path . into ( ) ,
151157 kind : ResourceKind :: CommonAncestorOrBase ,
152158 source : err,
153159 } ) ?;
154- let ( ours_tmp, ours_path) = write_data ( ours) . map_err ( |err| Error :: CreateTempfile {
160+ let ( ours_tmp, ours_path) = write_data ( ours, tmp_dir ) . map_err ( |err| Error :: CreateTempfile {
155161 rela_path : self . current . rela_path . into ( ) ,
156162 kind : ResourceKind :: CurrentOrOurs ,
157163 source : err,
158164 } ) ?;
159- let ( theirs_tmp, theirs_path) = write_data ( theirs) . map_err ( |err| Error :: CreateTempfile {
165+ let ( theirs_tmp, theirs_path) = write_data ( theirs, tmp_dir ) . map_err ( |err| Error :: CreateTempfile {
160166 rela_path : self . other . rela_path . into ( ) ,
161167 kind : ResourceKind :: OtherOrTheirs ,
162168 source : err,
0 commit comments