Utfordringen med store commits

Moderne utvikling involverer ofte commits som endrer mange filer. Enten det er en stor funksjonsaddisjon, en refaktoreringsinnsats eller sammenslåing av en langvarig branch, kan store commits overskride størrelsesbegrensningene for AI-leverandører. AI Diff Review løser dette med intelligent batchbehandling som automatisk deler store commits i håndterbare biter.

Hvordan batchbehandling fungerer

Når en commit eller valgt omfang overskrider det aktive budsjettet (256 KB for skyleverandører, 128 KB for lokale), deler AI Diff Review forespørselen automatisk i flere batches. Men den deler ikke bare tilfeldig—den bruker en sofistikert relaterings-først-strategi for å holde relaterte filer sammen, noe som forbedrer analysekvaliteten.

Relateringsstrategi

Batchbehandlingssystemet bruker lette heuristikker for å bestemme hvilke filer som er relaterte:

Import- og pakkereferanser

Filer som importerer symboler definert i andre endrede filer anses som relaterte. Hvis UserService.java for eksempel importerer User fra User.java, og begge er endret, vil de bli gruppert sammen.

Symbolnevninger

Filer som nevner klasse-, objekt- eller funksjonsnavn definert i andre endrede filer grupperes sammen. Dette fanger relasjoner selv når eksplisitte importer ikke er tilstede.

Katalognærhet

Filer i samme pakke eller katalog anses som svakt relaterte og fungerer som tie-breaker når andre relasjoner ikke er klare.

Klyngingsalgoritme

Batchbehandlingssystemet bygger en urettet graf av filer koblet av relasjonene ovenfor, og beregner deretter tilkoblede komponenter som innledende grupper. Dette sikrer at filer som refererer til hverandre forblir sammen i samme batch.

Pakkingstrategi

Grupper plasseres i batches ved å bruke en first-fit-decreasing algoritme etter estimert forespørselsstørrelse. Dette:

  • Bevarer grupper når mulig (holder relaterte filer sammen)
  • Maksimerer batchstørrelse-effektivitet
  • Sikrer at hver batch holder seg under størrelsesbegrensningen

Håndtering av overdimensionerte grupper

Hvis en enkelt gruppe relaterte filer overskrider budsjettet, deles den i bredde-først-søk (BFS) rekkefølge mens høye vektkanter bevares. Dette betyr at de sterkeste relasjonene opprettholdes selv når oppdeling er nødvendig.

Brukeropplevelse

Når batchbehandling skjer, viser verktøysvinduet fremgang som "Batch X/Y", noe som tydeliggjør at flere batches behandles. Resultater slås sømløst sammen på tvers av batches, så du ser en enhetlig visning av alle funn. Sortering, filtrering og søk fungerer på tvers av alle resultater som om de kom fra en enkelt analyse.

Standard batchstørrelser

Systemet foretrekker batches på 3-7 filer hver når mange filer er tilstede, men eksakte størrelser varierer basert på:

  • Diff- og innholdsstørrelse per fil
  • Leverandørspesifikke størrelsesbegrensninger
  • Relateringsrelasjoner

Denne balansen sikrer effektiv behandling samtidig som analysekvaliteten opprettholdes.

Fordeler med intelligent batchbehandling

Bedre analysekvalitet

Ved å holde relaterte filer sammen kan AI-en forstå kontekst og relasjoner, noe som fører til mer nøyaktige funn. Hvis du for eksempel endrer både en modellklasse og dens tjeneste, hjelper det å analysere dem sammen AI-en med å forstå den fullstendige effekten av endringene dine.

Automatisk håndtering

Du trenger ikke manuelt dele opp commits eller bekymre deg for størrelsesbegrensninger. Pluginet håndterer det automatisk, så du kan fokusere på koden din.

Sømløs opplevelse

Resultater slås automatisk sammen, så du ser en enhetlig visning uansett hvor mange batches som ble nødvendig. Du trenger ikke manuelt kombinere resultater eller bytte mellom forskjellige analyser.

Når batchbehandling skjer

Batchbehandling utløses når:

  • En commit endrer mange filer (typisk 10+ filer)
  • Filer er store (selv noen få store filer kan utløse batchbehandling)
  • Fullstendig filinnhold er inkludert (øker størrelsen betydelig)
  • Den kombinerte størrelsen overskrider leverandørbegrensninger

Beste praksis

Holde commits fokusert

Selv om batchbehandling håndterer store commits godt, er mindre, fokuserte commits fortsatt bedre for kodegjennomgang og forståelse. Vurder å dele opp store endringer i logiske commits når mulig.

Stole på systemet

Batchbehandlingsalgoritmen er designet for å bevare relasjoner og opprettholde analysekvalitet. Stole på at relaterte filer vil bli analysert sammen, selv på tvers av batches om nødvendig.

Gjennomgå alle resultater

Siden resultater slås sammen, sørg for å gjennomgå funn fra alle batches. Den enhetlige visningen gjør dette enkelt, men vær oppmerksom på at store commits kan ha mange funn på tvers av flere batches.

Tekniske detaljer

Batchbehandlingssystemet bruker en rask forespørselsstørrelsesestimator som tilnærmer JSON-omsluttet nyttelaststørrelse for å holde seg under grensen per batch. Denne estimeringen skjer før sending, noe som sikrer effektiv bruk av leverandørbegrensninger.

Konklusjon

Intelligent batchbehandling gjør det mulig å analysere store commits uten manuell intervensjon. Ved å holde relaterte filer sammen og automatisk administrere batchstørrelser sikrer AI Diff Review omfattende analyse uavhengig av commitstørrelse.

Relaterings-først-strategien opprettholder analysekvalitet mens den automatiske oppdelingen sikrer at du kan analysere commits av hvilken størrelse som helst. Kombinert med sømløs resultatsammenslåing gir batchbehandling en jevn opplevelse selv for de største endringene.

Klar til å analysere store commits? Installer AI Diff Review og se hvordan den håndterer de største endringene dine.