← Ultimi articoli
💻 computer science

Was It Never Collected, or Rewritten Away? A Commit-Provenance Dataset Separating Ingestion Gaps from Upstream History Edits across the World of Code

Questo articolo introduce un dataset di provenienza dei commit che distingue tra i commit mancanti causati da riscritture della cronologia a monte (force-push) e quelli derivanti da veri gap di ingestione nei mirror globali del codice, rivelando che circa il 6,5% dei commit mancanti è stato riscritto anziché perso e fornendo fattori di correzione per migliorare l'accuratezza del conteggio dei contributi e della segnalazione della completezza dei mirror.

Autori originali: Audris Mockus

Pubblicato 2026-07-07
📖 5 min di lettura🧠 Approfondimento

Autori originali: Audris Mockus

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immagina di cercare di tenere un album fotografico perfetto e completo di ogni singolo momento in un enorme progetto artistico globale, dove migliaia di persone stanno costantemente dipingendo, cancellando e ridipingendo sopra il lavoro altrui.

Questo articolo parla di un nuovo strumento che ci aiuta a capire perché alcune foto mancano dal nostro album.

Il Problema: Il mistero della "Foto Mancante"

Per anni, i ricercatori hanno cercato di raccogliere ogni singolo commit (una "foto" delle modifiche al codice) da GitHub in un enorme database chiamato World of Code (WoC). Ma hanno notato un problema: l'album è incompleto. Ci sono milioni di "foto" che avrebbero dovuto esserci, ma non ci sono.

In precedenza, i ricercatori assumevano semplicemente che queste foto fossero perse per sempre perché il sistema di raccolta non era riuscito a prenderle. Pensavano: "Oh, abbiamo perso il 40% delle foto; la nostra collezione è guasta."

Ma questo articolo sostiene: Aspetta un attimo. Forse le foto non sono perse; forse sono state eliminate apposta.

I Due Sospetti

L'autrice, Audris Mockus, identifica due ragioni molto diverse per cui una foto potrebbe mancare:

  1. Il Gap di Raccolta (Lo "Scatto Mancato"): La fotocamera (il sistema di raccolta) ha sbattuto le palpebre, o il trasferimento del file è fallito, e la foto non è mai stata salvata. Si tratta di un errore genuino.
  2. La Riscrittura della Storia (La "Bozza Cancellata"): L'artista (il proprietario del progetto) ha deciso che non gli piaceva una specifica versione del dipinto. Ha usato un "force-push" (un cancellatore digitale) per eliminare quella versione dalla storia e sostituirla con una nuova. La foto non è mai esistita nella versione finale perché l'artista l'ha cancellata.

Il vecchio modo di contare accorpava queste due cose. Diceva: "Ci mancano il 46% delle foto!" Questo faceva apparire la collezione molto peggiore di quanto non fosse in realtà.

Il Lavoro da Detective: Due Punti di Vista Diversi

Per risolvere questo mistero, l'autrice ha usato due "fotocamere" diverse per guardare lo stesso evento:

  • Fotocamera A (GHArchive): Questa è come una telecamera di sicurezza che registra tutto ciò che è stato pubblicizzato nel momento esatto in cui è accaduto. Non le importa se una foto viene poi eliminata; registra semplicemente: "Alle ore 2:00 PM, qualcuno ha caricato una foto chiamata 'Commit X'".
  • Fotocamera B (World of Code): Questo è l'album fotografico attuale. Contiene tutto ciò che ha raccolto finora, ma non conserva le foto eliminate.

Confrontando il registro della telecamera di sicurezza (ciò che è stato pubblicizzato) con l'album attuale (ciò che viene conservato), l'autrice è riuscita a dividere ogni foto mancante in tre pile ordinate:

  1. Presente: La foto è nell'album. (5er il 53% delle volte)
  2. Riscritta: La foto è stata pubblicizzata, ma l'artista l'ha cancellata in seguito. La telecamera di sicurezza l'ha vista, ma l'album non ce l'ha perché è stata eliminata. (6,5% delle volte)
  3. Mai Ingestata: La foto è stata pubblicizzata, l'artista non l'ha cancellata, ma l'album non ce l'ha comunque. Questo è il vero gap di raccolta. (40% delle volte)

La Grande Sorpresa

I risultati sono stati scioccanti. In precedenza, si pensava che il tasso di "mancanza" fosse quasi del 47%.

  • La Realtà: Solo il 40% è realmente mancante (gap di raccolta).
  • Il Colpo di Scena: Circa il 6,5% delle foto "mancanti" era in realtà stato cancellato dagli artisti stessi.

Ciò significa che per ogni 15 foto mancanti, una di esse non era un errore del raccoglitore; era un'edizione deliberata del progetto.

Perché Questo È Importante (In termini semplici)

1. Reportistica Onesta
Se sei un ricercatore che studia il software, non devi più dire: "I nostri dati sono incompleti del 47%". Puoi dire: "I nostri dati sono incompleti del 40%, e il restante 7% è stato eliminato dai creatori". Questo rende il tuo studio molto più accurato.

2. Contare il Lavoro Correttamente
Immagina un lavoratore che scrive 100 righe di codice, poi le cancella e le riscrive come 100 nuove righe.

  • Vecchio Conteggio: Vedi solo le 100 nuove righe. Pensi che abbia fatto 100 righe di lavoro.
  • Nuovo Conteggio: Questo strumento vede che ha scritto 100 righe, le ha cancellate e ne ha scritte altre 100. Si rende conto che quelle 100 righe "eliminate" erano un lavoro reale che è stato solo nascosto.
  • Il Risultato: L'articolo mostra che se conti solo ciò che è attualmente visibile, stai sottostimando la produttività totale di circa il 10,8%. È come pensare che una fabbrica abbia prodotto 90 auto quando in realtà ne ha fatte 100, perché 10 sono state scartate e ricostruite.

3. Evitare il Doppio Conteggio
Se uno sviluppatore riscrive un commit (cancella l'originale e ne crea uno nuovo con un nuovo ID), si tratta dello stesso "patch" di codice. Senza questo strumento, un computer potrebbe contare la vecchia versione e la nuova versione come due contributi separati. Questo strumento li segnala come duplicati per non creare confusione.

In Breve

Questo articolo fornisce una lente d'ingrandimento da detective. Separa la "fotocamera rotta" (gap di raccolta) dalle "bozze cancellate" (riscritture della storia).

Ci dice che il World of Code è in realtà più bravo a raccogliere dati di quanto pensassimo (perché parte dei dati "mancanti" non dovevano nemmeno esserci) ma ci dice anche che stiamo sottostimando quanto lavoro fanno gli sviluppatori perché non riusciamo a vedere il lavoro che hanno cancellato.

L'autrice ha rilasciato tutti i dati e gli strumenti in modo che chiunque possa usare questa "lente da detective" per ottenere un'immagine più chiara e onesta del mondo del codice.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →