Agent Eval: Check if SHA already fetched (#28846)

Michael Sloan created

Release Notes:

- N/A

Change summary

crates/eval/src/example.rs | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)

Detailed changes

crates/eval/src/example.rs 🔗

@@ -140,13 +140,21 @@ impl Example {
     pub async fn setup(&mut self) -> Result<()> {
         let repo_path = repo_path_for_url(&self.base.url);
 
-        println!("{}Fetching", self.log_prefix);
-
-        run_git(
-            &repo_path,
-            &["fetch", "--depth", "1", "origin", &self.base.revision],
-        )
-        .await?;
+        let revision_exists = run_git(&repo_path, &["rev-parse", "--verify", &self.base.revision])
+            .await
+            .is_ok();
+
+        if !revision_exists {
+            println!(
+                "{}Fetching revision {}",
+                self.log_prefix, &self.base.revision
+            );
+            run_git(
+                &repo_path,
+                &["fetch", "--depth", "1", "origin", &self.base.revision],
+            )
+            .await?;
+        }
 
         let worktree_path = self.worktree_path();