MCPcopy Create free account
hub / github.com/aws/amazon-q-developer-cli / handle_diff

Method handle_diff

crates/chat-cli/src/cli/chat/cli/checkpoint.rs:320–400  ·  view source on GitHub ↗
(session: &mut ChatSession, tag1: String, tag2: Option<String>)

Source from the content-addressed store, hash-verified

318 }
319
320 fn handle_diff(session: &mut ChatSession, tag1: String, tag2: Option<String>) -> Result<ChatState, ChatError> {
321 let Some(manager) = session.conversation.checkpoint_manager.as_ref() else {
322 execute!(
323 session.stderr,
324 StyledText::warning_fg(),
325 style::Print("⚠️ Checkpoints not enabled. Use '/checkpoint init' to enable.\n"),
326 StyledText::reset(),
327 )?;
328 return Ok(ChatState::PromptUser {
329 skip_printing_tools: true,
330 });
331 };
332
333 let tag2 = tag2.unwrap_or_else(|| "HEAD".to_string());
334
335 // Validate tags exist
336 if tag1 != "HEAD" && !manager.tag_index.contains_key(&tag1) {
337 execute!(
338 session.stderr,
339 StyledText::warning_fg(),
340 style::Print(format!(
341 "⚠️ Checkpoint '{}' not found! Use /checkpoint list to see available checkpoints\n",
342 tag1
343 )),
344 StyledText::reset(),
345 )?;
346 return Ok(ChatState::PromptUser {
347 skip_printing_tools: true,
348 });
349 }
350
351 if tag2 != "HEAD" && !manager.tag_index.contains_key(&tag2) {
352 execute!(
353 session.stderr,
354 StyledText::warning_fg(),
355 style::Print(format!(
356 "⚠️ Checkpoint '{}' not found! Use /checkpoint list to see available checkpoints\n",
357 tag2
358 )),
359 StyledText::reset(),
360 )?;
361 return Ok(ChatState::PromptUser {
362 skip_printing_tools: true,
363 });
364 }
365
366 let header = if tag2 == "HEAD" {
367 format!("Changes since checkpoint {}:\n", tag1)
368 } else {
369 format!("Changes from {} to {}:\n", tag1, tag2)
370 };
371
372 execute!(
373 session.stderr,
374 StyledText::info_fg(),
375 style::Print(header),
376 StyledText::reset(),
377 )?;

Callers

nothing calls this directly

Calls 5

CustomClass · 0.85
to_stringMethod · 0.80
diffMethod · 0.80
as_refMethod · 0.45
is_emptyMethod · 0.45

Tested by

no test coverage detected