use anyhow::Context;
use worktrunk::git::Repository;
pub fn step_diff(target: Option<&str>, extra_args: &[String]) -> anyhow::Result<()> {
let repo = Repository::current()?;
let wt = repo.current_worktree();
let integration_target = repo.require_target_ref(target)?;
let merge_base = repo
.merge_base("HEAD", &integration_target)?
.context("No common ancestor with target branch")?;
let idx = wt.temp_index()?;
idx.git(["add", "--intent-to-add", "."])
.run()
.context("Failed to register untracked files")?;
let mut diff_args = vec!["diff".to_string(), merge_base];
diff_args.extend_from_slice(extra_args);
idx.git(diff_args).stream()?;
Ok(())
}