diff --git a/crates/git/src/repository.rs b/crates/git/src/repository.rs index b536bed710..dc7ab0af65 100644 --- a/crates/git/src/repository.rs +++ b/crates/git/src/repository.rs @@ -846,14 +846,12 @@ impl GitRepository for RealGitRepository { .stdin(Stdio::piped()) .stdout(Stdio::piped()) .spawn()?; - child - .stdin - .take() - .unwrap() - .write_all(content.as_bytes()) - .await?; + let mut stdin = child.stdin.take().unwrap(); + stdin.write_all(content.as_bytes()).await?; + stdin.flush().await?; + drop(stdin); let output = child.output().await?.stdout; - let sha = String::from_utf8(output)?; + let sha = str::from_utf8(&output)?.trim(); log::debug!("indexing SHA: {sha}, path {path:?}"); @@ -871,6 +869,7 @@ impl GitRepository for RealGitRepository { String::from_utf8_lossy(&output.stderr) ); } else { + log::debug!("removing path {path:?} from the index"); let output = new_smol_command(&git_binary_path) .current_dir(&working_directory) .envs(env.iter()) @@ -921,6 +920,7 @@ impl GitRepository for RealGitRepository { for rev in &revs { write!(&mut stdin, "{rev}\n")?; } + stdin.flush()?; drop(stdin); let output = process.wait_with_output()?;