Skip to content
Arxo Arxo

Git History Integration

When you enable git history for SCC, Arxo uses commit churn to rank files inside each cycle. That gives you a practical refactor order: prioritize files that are both central in the cycle and frequently changed.

For an overview, see Circular Dependencies. For per-cycle payload details, see Cycle Microscope.

Without git historyWith git history
Cycle details include structure onlyEach node gets churn
No refactor priority scoreEach node gets hotspot_score (churn * centrality)
Harder to choose first targetSort by hotspot_score and start from the top
metrics:
- id: scc
config:
use_git_history: true

With this enabled, ui_schemas.scc.scc_details[].node_table[] includes churn and hotspot_score.

Loading git history can add noticeable runtime, especially on large repositories.

  • Use use_git_history: true when actively planning/refactoring cycle work.
  • Keep it off for fast CI checks that only gate regressions.
  • Enable caching to speed up repeated runs.
  • Confirm metrics[].config.use_git_history: true for id: scc.
  • Run with SCC debug logging:
Terminal window
ARXO_SCC_DEBUG=1 arxo analyze

Look for output similar to:

[scc] use_git_history=true git_history=Some edge_mode=all

Git history is None even with use_git_history: true

Section titled “Git history is None even with use_git_history: true”
  • Run from the repository root.
  • Confirm the project is a git repository.
  • Confirm git is available in the run environment.
  • Enable: metrics[].config.use_git_history: true for SCC.
  • Use: Sort node_table by hotspot_score in cycle microscope details.
  • Trade-off: Better prioritization, slower runs.

For full SCC config and output fields, see SCC Keys and Output Contract.