Udfordringen med store commits

Moderne udvikling involverer ofte commits, der ændrer mange filer. Uanset om det er en stor funktionsaddition, en refaktoreringsindsats eller sammenlægning af en langvarig branch, kan store commits overskride størrelsesbegrænsningerne for AI-udbydere. AI Diff Review løser dette med intelligent batchbehandling, der automatisk deler store commits i håndterbare stykker.

Hvordan batchbehandling fungerer

Når en commit eller valgt omfang overskrider det aktive budget (256 KB for skyudbydere, 128 KB for lokale), deler AI Diff Review anmodningen automatisk i flere batches. Men den deler ikke bare tilfældigt—den bruger en sofistikeret relaterings-først-strategi for at holde relaterede filer sammen, hvilket forbedrer analysekvaliteten.

Relateringsstrategi

Batchbehandlingssystemet bruger lette heuristikker til at bestemme, hvilke filer der er relaterede:

Import- og pakkereferencer

Filer, der importerer symboler defineret i andre ændrede filer, betragtes som relaterede. Hvis UserService.java for eksempel importerer User fra User.java, og begge er ændret, vil de blive grupperet sammen.

Symbolnævnelser

Filer, der nævner klasse-, objekt- eller funktionsnavne defineret i andre ændrede filer, grupperes sammen. Dette fanger relationer, selv når eksplicitte importer ikke er til stede.

Katalognærhed

Filer i samme pakke eller katalog betragtes som svagt relaterede og fungerer som tie-breaker, når andre relationer ikke er klare.

Klyngningsalgoritme

Batchbehandlingssystemet bygger en urettet graf af filer forbundet af relationerne ovenfor, og beregner derefter forbundne komponenter som indledende grupper. Dette sikrer, at filer, der refererer til hinanden, forbliver sammen i samme batch.

Pakningsstrategi

Grupper placeres i batches ved at bruge en first-fit-decreasing algoritme efter estimeret anmodningsstørrelse. Dette:

  • Bevarer grupper, når det er muligt (holder relaterede filer sammen)
  • Maksimerer batchstørrelse-effektivitet
  • Sikrer, at hver batch holder sig under størrelsesbegrænsningen

Håndtering af overdimensionerede grupper

Hvis en enkelt gruppe relaterede filer overskrider budgettet, deles den i bredde-først-søgning (BFS) rækkefølge, mens høje vægtkanter bevares. Dette betyder, at de stærkeste relationer opretholdes, selv når opdeling er nødvendig.

Brugeroplevelse

Når batchbehandling sker, viser værktøjsvinduet fremskridt som "Batch X/Y", hvilket tydeliggør, at flere batches behandles. Resultater slås sømløst sammen på tværs af batches, så du ser en enhedlig visning af alle resultater. Sortering, filtrering og søgning fungerer på tværs af alle resultater, som om de kom fra en enkelt analyse.

Standard batchstørrelser

Systemet foretrækker batches på 3-7 filer hver, når mange filer er til stede, men nøjagtige størrelser varierer baseret på:

  • Diff- og indholdsstørrelse per fil
  • Udbyderspecifikke størrelsesbegrænsninger
  • Relateringsrelationer

Denne balance sikrer effektiv behandling, mens analysekvaliteten opretholdes.

Fordele ved intelligent batchbehandling

Bedre analysekvalitet

Ved at holde relaterede filer sammen kan AI'en forstå kontekst og relationer, hvilket fører til mere præcise resultater. Hvis du for eksempel ændrer både en modelklasse og dens tjeneste, hjælper det at analysere dem sammen AI'en med at forstå den fulde effekt af dine ændringer.

Automatisk håndtering

Du behøver ikke manuelt at dele commits op eller bekymre dig om størrelsesbegrænsninger. Pluginet håndterer det automatisk, så du kan fokusere på din kode.

Sømløs oplevelse

Resultater slås automatisk sammen, så du ser en enhedlig visning, uanset hvor mange batches der blev nødvendige. Du behøver ikke manuelt at kombinere resultater eller skifte mellem forskellige analyser.

Når batchbehandling sker

Batchbehandling udløses, når:

  • En commit ændrer mange filer (typisk 10+ filer)
  • Filer er store (selv nogle få store filer kan udløse batchbehandling)
  • Fuldt filindhold er inkluderet (øger størrelsen betydeligt)
  • Den kombinerede størrelse overskrider udbyderbegrænsninger

Bedste praksis

Holde commits fokuseret

Selvom batchbehandling håndterer store commits godt, er mindre, fokuserede commits stadig bedre til kodegennemgang og forståelse. Overvej at dele store ændringer op i logiske commits, når det er muligt.

Stole på systemet

Batchbehandlingsalgoritmen er designet til at bevare relationer og opretholde analysekvalitet. Stol på, at relaterede filer vil blive analyseret sammen, selv på tværs af batches, hvis nødvendigt.

Gennemgå alle resultater

Da resultater slås sammen, sørg for at gennemgå resultater fra alle batches. Den enhedlige visning gør dette nemt, men vær opmærksom på, at store commits kan have mange resultater på tværs af flere batches.

Tekniske detaljer

Batchbehandlingssystemet bruger en hurtig anmodningsstørrelsesestimator, der tilnærmer JSON-omsluttet nyttelaststørrelse for at holde sig under grænsen per batch. Denne estimering sker før afsendelse, hvilket sikrer effektiv brug af udbyderbegrænsninger.

Konklusion

Intelligent batchbehandling gør det muligt at analysere store commits uden manuel intervention. Ved at holde relaterede filer sammen og automatisk administrere batchstørrelser sikrer AI Diff Review omfattende analyse uanset commitstørrelse.

Relaterings-først-strategien opretholder analysekvalitet, mens den automatiske opdeling sikrer, at du kan analysere commits af enhver størrelse. Kombineret med sømløs resultatsammenslåing giver batchbehandling en jævn oplevelse, selv for de største ændringer.

Klar til at analysere store commits? Installer AI Diff Review og se, hvordan den håndterer dine største ændringer.